資源描述:
《prolog語言(耐心看完,你就入門了)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、人工智能ArtificialIntelligence(AI)2021/7/6Prolog語言簡介Prolog語言是一種以一階謂詞為基礎(chǔ)的邏輯性語言(ProgramminginLogic)2021/7/6Prolog語言的特點Prolog語言的基本內(nèi)容簡單的例子2021/7/6Prolog語言(或者系統(tǒng))是以一階謂詞邏輯的Horn子句集為語法,以Robinson的消解原理為工具,加上深度優(yōu)先的控制策略而形成的人工智能通用程序設(shè)計語言Prolog語言的特點2021/7/6Horn子句集消解原理深度優(yōu)先Prolog系統(tǒng)2021/7/6Prolog具有下列特點:①是一種描述性語言。只需要告訴“系統(tǒng)做什
2、么”,不要告訴系統(tǒng)“如何做”②數(shù)據(jù)與程序的統(tǒng)一表達。提供一種統(tǒng)一的符號結(jié)構(gòu)“項”,數(shù)據(jù)與程序都是由項組成2021/7/6③自動實現(xiàn)模式匹配與回溯。這是人工智能中最常用的兩項操作,Prolog自動實現(xiàn)這些操作④程序易于編寫與閱讀。它是面向人的自然語言⑤語句句型少,語法簡明。只有三種句型2021/7/6參考資料:雷英杰,張雷,邢清華,孫金萍。VisualProlog語言教程。西安:陜西科學(xué)技術(shù)出版社,2002年2月(380頁,35元)雷英杰,邢清華,孫金萍,張雷。VisualProlog編程、環(huán)境及接口。北京:國防工業(yè)出版社,2004年1月(412頁,36元)2021/7/6Prolog語言的基本
3、內(nèi)容1項2Prolog中的語句3表結(jié)構(gòu)4Prolog程序的結(jié)構(gòu)5常用內(nèi)部謂詞6Prolog程序設(shè)計步驟2021/7/6符號說明:“::=”表示“定義為”“
4、”表示“或”,可選“{}”表示“重復(fù)或者出現(xiàn)多個”1項2021/7/6項的定義:<項>::=<常量>
5、<變量>
6、<復(fù)合項>2021/7/6<常量>::=<原子>
7、<數(shù)><原子>::=<標識符原子>
8、<字符串原子>
9、<特殊原子><項>::=<常量>
10、<變量>
11、<復(fù)合項>2021/7/6命名:用小寫字母或者小寫字母開頭的小寫字母數(shù)字串用途:用于標識對象的名字、謂詞(對象間的關(guān)系)或函數(shù)名標識符原子例:john,marry,classmate,t
12、eacher2021/7/6字符串原子是用引號括起來的符號串特殊原子指一些特殊符號,如+、-、*、/等2021/7/6變量:用于表示暫時不能命名或者不需要命名的對象,用大寫字母開頭<項>::=<常量>
13、<變量>
14、<復(fù)合項>2021/7/6特殊變量:空變量,記作:“_”含義:我們對問題的某一個變量的值不關(guān)心2021/7/6<復(fù)合項>::=<原子>(<項>{,<項>})
15、<項><原子><項>{<原子><項>}<項>::=<常量>
16、<變量>
17、<復(fù)合項>2021/7/6復(fù)合項:由一組其它對象組成的單個對象例:函數(shù)項:like(john,apple)表:[sa,sb],[1,2,3]表達式:(12+59
18、)*49-962021/7/6項常量變量復(fù)合項原子數(shù)標識符原子字符串原子特殊原子<原子>(<項>{,<項>})<項><原子><項>{<原子><項>}2021/7/62Prolog中的語句①事實:P.含義:無條件成立,恒為真例:like(monkey,banana)Prolog中的語句分成三種形式:2021/7/6②規(guī)則:P:-P1,P2,…,Pn.“:-”表示“蘊涵”“,”表示“合取”含義:若P1,…,Pn均為真時,P為真2021/7/6③問題(目標)GoalQ1,Q2,…,Qm.含義:待回答的問題,即Q1,…,Qm同時為真嗎?2021/7/6從消解角度來看:①(事實)中,P是Horn子句20
19、21/7/6②(規(guī)則)可以表示為P1∧P2∧…∧Pn?P可以轉(zhuǎn)化為~P1∨~P2∨…∨~Pn∨P也是Horn子句,并受全稱量詞約束2021/7/6③(問題)是Q1∧…∧Qm受存在量詞約束,取非后~Q1∨…∨~Qm受全稱量詞約束,是Horn子句2021/7/6Prolog三種形式的語言都是Horn子句問題求解就是Horn子句集消解2021/7/63表結(jié)構(gòu)表:若干個元素的有序序列表中的元素:常量、變量、項、表表用“[]”來表示,元素之間用逗號或者空格分開2021/7/6例:[1,2,3][a,b,c,d]2021/7/6用符號“
20、”來劃分表頭(第一個元素)和表尾(其余元素)特例:當只用一個元素時,
21、表尾為空空表(無元素),既無表頭又無表尾2021/7/6例:P([the,cat,sat,down]).?-P([X
22、Y]).答案:X=the,Y=[cat,sat,down]?-P([X,Y
23、Z]).答案:X=the,Y=cat,Z=[sat,down]2021/7/64Prolog程序的結(jié)構(gòu)Prolog的程序分為兩部分:前提部分:所有事實和規(guī)則問題部分:目標子句序列2021/7/6注意:這兩部