- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十二章Prolog程式语言ppt课件
第十二章 Prolog 程式語言 陳維魁 博士 wkchen@.tw 儒林圖書公司 大綱 簡介 基本資料結構 Prolog語言的陳述 Prolog語言推論的過程 精選習題 簡介 Prolog(PROgramming in LOGic)是在1970年代初期發展 主要應用在人工智慧(Artificial Intelligence),又稱為人工智慧的高階語言 日本發展的第五代電腦計劃採用Prolog為其語言,使得Prolog語言漸受世人注意,且廣泛地被使用 Prolog為適用於處理符號和非數值運算之程式語言 邏輯式程式語言 基本資料結構 – 原子 (atom) 原子的組成有三種可能的方式 由單引號所括住的字串組成: ’Peter’,’Visual Basic’,’Prolog’ 由特殊的字元所組成的字串 ,::=,=,.... 由字母,數字或「底線字元」所組成的字串,但須注意,該字串的第一個字元絕對必須是小寫字母 peter,visualbasic,visual_basic 基本資料結構 – 變數(variable) 變數是由字母,數字或「底線字元」所組成的字串 注意 字串的第一個字元,必須是大寫字母 Peter,Visualbasic,Visual_basic 基本資料結構–結構化資料型態 串列(list) 串列結構(list structure)中,前端與後端皆必須以方括號作記號且串列中的元素必須以“,”作區分。如:〔Pascal, C, Basic, Cobol, Fortran〕 b.在Prolog中以〔H│X〕來表示一個串列的頭部與尾部。以上例來說,H=Pascal(相當於Lisp之CAR)且X=〔C, Basic, Cobol, Fortran〕(相當於LISP之CDR) 結構(structure)結構的語法為 原子名稱 (參數串列) date(日,月,年)date(25,8,83) Prolog 語言的陳述 事實陳述(fact statement) 規則陳述(rule statement) 目的陳述(goal statement) 事實陳述 事實陳述指明“事實” 事實陳述宣告一些無條件成立的事情 通常事實陳述是用來描述個體的性質或個體與個體之間的關係 又稱為無首霍恩子句(Headless Horn clause) 事實陳述 實例 個體的性質female(helen).male(peter).female(jane).male(john). 個體與個體之間的關係son(john, helen).son(john, peter).daughter(jane, helen).daughter(jane, peter). 注意 Prolog的敘述之後,必須有句點作為結束 規則陳述 規則陳述是用來描述事實之間的邏輯關係,即必須在某種條件成立的條件下才為真的事情 又稱為有首霍恩子句(Headed Horn clause) 規則陳述結構: 結論部份:- 條件部份其中結論部份又稱為首項,而條件部份所有的子條件皆成立時結論部份自然成立 規則陳述 實例mother(helen, jane):- daughter(jane, helen), female(helen). “:-”右邊的敘述為陳述的來歷或規則 “:-”左邊的敘述,為陳述的結論 若來歷為真則結論也必定為真 陳述的來歷若有多個,則以逗號連接而其意義與邏輯運算子AND相同 目的陳述 目的陳述即是用來作為查詢(query)資料之用 目的陳述在程式段中是看不到的 實例?- daughter(jane, helen).Yes.?- daughter(X, helen).jane;No.?- daughter( _ , helen).jane;No. Prolog 語言推論的過程 以目的陳述為目標,根據程式中的事實與規則陳述來進行推論,並以敘述定義之先後順序來進行推理動作 以目的陳述的函元(functor)以搜尋之依據,若符合者為 事實陳述:直接回答 規則陳述: 以每個規則為子目標 深度優先搜尋(DFS- Depth First Search) 回溯處理(backtracking):在推理的過程中若產生錯誤,此時系統會自動回溯到另一個可能正確的推理方向 精選習題 以下的PROLOG程式執行後,結果為何? append (〔〕,X,X).append (〔H|X〕,Y,〔H|Z〕):-append(X,Y,Z).?- append (〔a,b〕,〔c,d〕,Z). 精選習題 假設有一PROLOG程式如下: first (Xs,Ys,IP):- second(Xs,Ys,O,IP).secon
文档评论(0)