




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
人工智能ArtificialIntelligence(AI)2024/9/14Prolog語(yǔ)言簡(jiǎn)介
Prolog語(yǔ)言是一種以一階謂詞為基礎(chǔ)的邏輯性語(yǔ)言(ProgramminginLogic)
2024/9/14Prolog語(yǔ)言的特點(diǎn)Prolog語(yǔ)言的基本內(nèi)容簡(jiǎn)單的例子2024/9/14Prolog語(yǔ)言(或者系統(tǒng))是以一階謂詞邏輯的Horn
子句集為語(yǔ)法,以Robinson的消解原理為工具,加上深度優(yōu)先的控制策略而形成的人工智能通用程序設(shè)計(jì)語(yǔ)言
Prolog語(yǔ)言的特點(diǎn)2024/9/14Horn子句集消解原理深度優(yōu)先Prolog系統(tǒng)2024/9/14Prolog具有下列特點(diǎn):
①是一種描述性語(yǔ)言。只需要告訴“系統(tǒng)做什么”,不要告訴系統(tǒng)“如何做”②數(shù)據(jù)與程序的統(tǒng)一表達(dá)。提供一種統(tǒng)一的符號(hào)結(jié)構(gòu)“項(xiàng)”,數(shù)據(jù)與程序都是由項(xiàng)組成
2024/9/14③自動(dòng)實(shí)現(xiàn)模式匹配與回溯。這是人工智能中最常用的兩項(xiàng)操作,Prolog自動(dòng)實(shí)現(xiàn)這些操作④程序易于編寫與閱讀。它是面向人的自然語(yǔ)言
⑤語(yǔ)句句型少,語(yǔ)法簡(jiǎn)明。只有三種句型
2024/9/14參考資料:雷英杰,張雷,邢清華,孫金萍。VisualProlog語(yǔ)言教程。西安:陜西科學(xué)技術(shù)出版社,2002年2月(380頁(yè),35元)雷英杰,邢清華,孫金萍,張雷。VisualProlog編程、環(huán)境及接口。北京:國(guó)防工業(yè)出版社,2004年1月(412頁(yè),36元)2024/9/14Prolog語(yǔ)言的基本內(nèi)容1項(xiàng)2Prolog中的語(yǔ)句3表結(jié)構(gòu)4Prolog程序的結(jié)構(gòu)5常用內(nèi)部謂詞6Prolog程序設(shè)計(jì)步驟2024/9/14符號(hào)說(shuō)明:“::=”表示“定義為”“|”表示“或”,可選“{}”表示“重復(fù)或者出現(xiàn)多個(gè)”1項(xiàng)
2024/9/14項(xiàng)的定義:<項(xiàng)>::=<常量>|<變量>|<復(fù)合項(xiàng)>2024/9/14<常量>::=<原子>|<數(shù)><原子>::=
<標(biāo)識(shí)符原子>|<字符串原子>|<特殊原子><項(xiàng)>::=<常量>|<變量>|<復(fù)合項(xiàng)>2024/9/14命名:用小寫字母或者小寫字母開(kāi)頭的小寫字母數(shù)字串用途:用于標(biāo)識(shí)對(duì)象的名字、謂詞(對(duì)象間的關(guān)系)或函數(shù)名標(biāo)識(shí)符原子例:john,marry,classmate,teacher2024/9/14字符串原子是用引號(hào)括起來(lái)的符號(hào)串特殊原子指一些特殊符號(hào),如+、-、*、
/等
2024/9/14變量:用于表示暫時(shí)不能命名或者不需要命名的對(duì)象,用大寫字母開(kāi)頭
<項(xiàng)>::=<常量>|<變量>|<復(fù)合項(xiàng)>2024/9/14特殊變量:空變量,記作:“_”含義:我們對(duì)問(wèn)題的某一個(gè)變量的值不關(guān)心
2024/9/14<復(fù)合項(xiàng)>::=<原子>(<項(xiàng)>{,<項(xiàng)>})|
<項(xiàng)><原子><項(xiàng)>
{<原子><項(xiàng)>}
<項(xiàng)>::=<常量>|<變量>|<復(fù)合項(xiàng)>2024/9/14復(fù)合項(xiàng):由一組其它對(duì)象組成的單個(gè)對(duì)象例:函數(shù)項(xiàng):like(john,apple)表:[sa,sb],[1,2,3]表達(dá)式:(12+59)*49-962024/9/14項(xiàng)常量變量復(fù)合項(xiàng)原子數(shù)標(biāo)識(shí)符原子字符串原子特殊原子<原子>(<項(xiàng)>{,<項(xiàng)>})<項(xiàng)><原子><項(xiàng)>{<原子><項(xiàng)>}2024/9/142
Prolog中的語(yǔ)句
①事實(shí):P.含義:無(wú)條件成立,恒為真例:like(monkey,banana)Prolog中的語(yǔ)句分成三種形式:2024/9/14②規(guī)則:P:-P1,P2,…,Pn
.“:-
”表示“蘊(yùn)涵”“,”表示“合取”含義:若P1,…,Pn
均為真時(shí),P為真
2024/9/14③問(wèn)題(目標(biāo))GoalQ1,Q2,…,Qm.含義:待回答的問(wèn)題,即Q1,…,Qm
同時(shí)為真嗎?2024/9/14從消解角度來(lái)看:①(事實(shí))中,P是Horn子句2024/9/14②(規(guī)則)可以表示為P1∧P2∧…∧Pn
P可以轉(zhuǎn)化為~P1∨~P2∨…∨~Pn∨P也是Horn子句,并受全稱量詞約束2024/9/14③(問(wèn)題)是
Q1∧…∧Qm
受存在量詞約束,取非后~Q1∨…∨~Qm受全稱量詞約束,是Horn子句2024/9/14Prolog三種形式的語(yǔ)言都是Horn子句問(wèn)題求解就是Horn子句集消解2024/9/143表結(jié)構(gòu)
表:若干個(gè)元素的有序序列表中的元素:常量、變量、項(xiàng)、表
表用“[]”來(lái)表示,元素之間用逗號(hào)或者空格分開(kāi)2024/9/14例:[1,2,3][a,b,c,d]2024/9/14用符號(hào)“|
”來(lái)劃分表頭(第一個(gè)元素)和表尾(其余元素)特例:當(dāng)只用一個(gè)元素時(shí),表尾為空空表(無(wú)元素),既無(wú)表頭又無(wú)表尾
2024/9/14例:P([the,cat,sat,down]).?-P([X|Y]).答案:X=the,Y=[cat,sat,down]
?-P([X,Y|Z]).答案:X=the,Y=cat,Z=[sat,down]
2024/9/144Prolog程序的結(jié)構(gòu)Prolog的程序分為兩部分:
前提部分:所有事實(shí)和規(guī)則
問(wèn)題部分:目標(biāo)子句序列
2024/9/14注意:這兩部分不能顛倒。必須前提部分寫在前面,問(wèn)題部分寫在后面
2024/9/14likes(m,f).likes(m,w).(事實(shí))likes(j,w).likes(j,s).goallikes(m,X),likes(j,X).(問(wèn)題)問(wèn)題:是否m
和j
都喜歡什么東西?(X=?)
fwsmj2024/9/14Prolog的求解過(guò)程現(xiàn)在有兩個(gè)問(wèn)題:likes(m,X)和likes(j,X))第一步:第一個(gè)問(wèn)題likes(m,X)去與事實(shí)匹配(置換與合一),按順序得到{f/X}likes(m,f).likes(m,w).likes(j,w).likes(j,s).2024/9/14第二步:f代替第二個(gè)問(wèn)題likes(j,X)中的X,則得likes(j,f)。再與事實(shí)匹配,不能匹配,失敗,則回溯,忘掉剛才的匹配likes(m,f).likes(m,w).likes(j,w).likes(j,s).likes(m,X)likes(j,X)2024/9/14第三步:回到第一個(gè)問(wèn)題likes(m,X),重新匹配,得到{w/X}第四步:第二個(gè)問(wèn)題變成likes(j,w)。再與事實(shí)匹配,成功第五步:答案就是X=wlikes(m,f).likes(m,w).likes(j,w).likes(j,s).likes(m,X)likes(j,X)2024/9/14說(shuō)明:實(shí)際運(yùn)行中,要逐個(gè)試探(搜索),失敗則要回溯,成功也要回溯(求出所有解)2024/9/14例:father(a,b).a是b的父親father(c,d).brother(a,c).a與c是兄弟關(guān)系uncle(X,Y):-brother(X,Z),father(Z,Y).?-uncle(a,U).問(wèn)題:
a
是誰(shuí)的叔叔?(U=?
)2024/9/14第一步:?jiǎn)栴}uncle(a,U)與事實(shí)逐個(gè)匹配,不成功Prolog的求解過(guò)程:father(a,b).father(c,d).brother(a,c).2024/9/14第二步:與規(guī)則頭(左部)匹配,即尋找合一者,有{a/X,U/Y}轉(zhuǎn)化為兩個(gè)子問(wèn)題:brother(a,Z)和father(Z,U)uncle(X,Y):-brother(X,Z),father(Z,Y).uncle(a,U)2024/9/14第一個(gè)子問(wèn)題brother(a,Z)與事實(shí)匹配,得到{c/Z}代人第二個(gè)子問(wèn)題,有father(c,U)。與事實(shí)匹配,得到{d/U},即U=d,解是:a是d的叔叔father(a,b).father(c,d).brother(a,c).brother(a,Z)father(Z,U)2024/9/14Prolog的實(shí)現(xiàn)方法主要是:匹配與回溯匹配:合一過(guò)程、消解過(guò)程回溯:搜索,而且是深度優(yōu)先搜索2024/9/14關(guān)于匹配的幾點(diǎn)說(shuō)明:第一、一個(gè)變量被置換后,代入了另一個(gè)項(xiàng),則稱該變量為實(shí)例化的變量2024/9/14①若與另一個(gè)未實(shí)例化的變量匹配,則視為同一變量,兩者共享②若與另一個(gè)實(shí)例化的變量匹配,也變成了實(shí)例化的變量,且兩者同值③若與常量匹配,也變成了實(shí)例化變量,并取常量的值第二、一個(gè)未實(shí)例化的變量可以與任何項(xiàng)匹配:2024/9/14第三、常量只能與相同的常量匹配第四、實(shí)例化的變量與另一個(gè)實(shí)例化的值相同的變量匹配,也可以與另一個(gè)未實(shí)例化的變量匹配,使另一個(gè)變量實(shí)例化,且約束值相同2024/9/145常用的內(nèi)部謂詞內(nèi)部謂詞:Prolog系統(tǒng)本身定義的一些基本謂詞注意:可以直接使用,用戶不能修改2024/9/14①算術(shù)運(yùn)算算術(shù)表達(dá)式由操作數(shù)(數(shù)、變量)、操作符和括號(hào)組成算術(shù)運(yùn)算符號(hào):“+、-、*、/”(加減乘除)2024/9/14優(yōu)先級(jí):與通常的數(shù)學(xué)運(yùn)算一致形式:中綴:X+Y*Z
前綴:+(X,*(Y,Z))2024/9/14②比較謂詞eq(X,Y)X=Yne(X,Y)X<>Ygt(X,Y)X>Yls(X,Y)X<Y2024/9/14對(duì)于“=、<>”,X,Y可以取常量變量謂詞表2024/9/14第一、當(dāng)一個(gè)變量已經(jīng)實(shí)例化,則可以與任意未實(shí)例化的變量相等,且將其實(shí)例化(賦值功能)第二、兩者均未實(shí)例化,eq(X,Y)恒為真,并視為同一變量對(duì)于“=”(賦值與比較)的幾點(diǎn)說(shuō)明:2024/9/14第三、均以實(shí)例化,由當(dāng)前值來(lái)決定第四、如果為表,要求對(duì)應(yīng)的元素相等,才為真第五、如果是謂詞,謂詞同名,變?cè)獋€(gè)數(shù)相等,對(duì)應(yīng)的變?cè)嗟?024/9/14③輸入輸出謂詞第一、write(X):向輸出設(shè)備輸出實(shí)例化結(jié)果第二、read(X):
當(dāng)X
未實(shí)例化時(shí),輸入一個(gè)項(xiàng)當(dāng)X
在輸入前已經(jīng)實(shí)例化,則讀入項(xiàng)將與X
匹配,根據(jù)匹配的成功與否,決定其真假值
2024/9/14④謂詞cut與fail(特殊謂詞):cut(!):禁止回溯fail:強(qiáng)迫回溯2024/9/14第一、只允許作為一個(gè)子目標(biāo)出現(xiàn)在程序中第二、第一次遇到它時(shí),總是立刻被滿足,但是不能被重新滿足第三、用戶可以使用它來(lái)控制回溯方式,切斷一些不必要的回溯,提高程序運(yùn)行效率關(guān)于cut的幾點(diǎn)說(shuō)明:2024/9/14關(guān)于fail的說(shuō)明:作為一個(gè)子目標(biāo),使Prolog程序運(yùn)行到fail,必定引起回溯2024/9/14例:求1到n
之間的和定義一個(gè)二元謂詞sum(N,X),其中X
表示和答案是:X=21去掉“!”,會(huì)發(fā)生什么?sum(1,1):-!.sum(N,R):-N1=N-1,sum(N1,R1),R=R1+N.?-sum(6,X).2024/9/146Prolog程序設(shè)計(jì)步驟第一、說(shuō)明事實(shí):說(shuō)明與待求解的問(wèn)題有關(guān)的事實(shí)。例如,人物事及相互關(guān)系,對(duì)應(yīng)于敘述性知識(shí)對(duì)應(yīng)于Prolog程序的組成部分,設(shè)計(jì)步驟分為:2024/9/14第二、定義規(guī)則:定義個(gè)體及其相互關(guān)系的推理規(guī)則,反映與待求解問(wèn)題有關(guān)的過(guò)程性知識(shí)第三:確定目標(biāo)(問(wèn)題):提出待求解的問(wèn)題或者確定邏輯推理的目標(biāo)2024/9/14程序的一般結(jié)構(gòu)(組成部分)
VisualProlog程序包括三到四個(gè)基本程序段:第一、域段:說(shuō)明謂詞變量的域(類型)第二、謂詞段:說(shuō)明非標(biāo)準(zhǔn)謂詞(用戶自己的謂詞)2024/9/14第三、子句段:核心部分,可以寫出事實(shí)與規(guī)則第四、目標(biāo)段:設(shè)置內(nèi)部目標(biāo)2024/9/14域段(domains)Prolog語(yǔ)言中的域用于區(qū)分不同變量類型的數(shù)據(jù)相當(dāng)于其它高級(jí)語(yǔ)言中的數(shù)據(jù)類型2024/9/14基本標(biāo)準(zhǔn)域有:char:用單引號(hào)括起來(lái)的單個(gè)字符,例如,’a’integer:整數(shù),范圍為32767到-32768real:實(shí)數(shù),例如,86.72,5.1e+212024/9/14string:用雙引號(hào)括起來(lái)的字符序列
例:“IamfromNanjing”2024/9/14symbol:有兩種形式:以小寫字母開(kāi)頭的字母、數(shù)字和下劃線組成的序列用雙引號(hào)括起來(lái)的字符串序列
2024/9/14Prolog中表示成下列形式:
integerlist=integer*“integer”說(shuō)明表中元素的類型“*
”告訴編譯系統(tǒng),這是一張表
表:2024/9/14例domainstitle,author=symbolpages=integer注:每一個(gè)說(shuō)明的最后無(wú)句號(hào)“.”2024/9/14謂詞段(predicates)說(shuō)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 八下語(yǔ)文期中小卷1(答案)
- 專業(yè)英語(yǔ) Unit 3教案學(xué)習(xí)資料
- 2024年份9月家庭昆蟲(chóng)飼養(yǎng)員物種逃逸應(yīng)急處理?xiàng)l款
- 角膜塑形鏡驗(yàn)配基礎(chǔ)知識(shí)
- 建筑行業(yè)會(huì)計(jì)基礎(chǔ)知識(shí)
- 《優(yōu)雅弧線:撐桿跳高》課件
- 激光開(kāi)孔最小直徑
- 電子商務(wù)合作協(xié)議委托書(shū)
- 貨車合伙協(xié)議書(shū)二零二五年
- 2024-2025學(xué)年中考?xì)v史復(fù)習(xí)- 階段檢測(cè)卷四(世界史)(含答案)
- 江西省八所重點(diǎn)2025屆高三下學(xué)期4月聯(lián)考(二模)政治試卷(含答案)
- 2025年03月福建省氣象局事業(yè)單位筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 2025年青藏鐵路集團(tuán)有限公司招聘(184人)筆試參考題庫(kù)附帶答案詳解
- 2025資陽(yáng)輔警考試題庫(kù)
- 第一篇 專題三 計(jì)算題培優(yōu)3 帶電粒子在交變場(chǎng)和立體空間中的運(yùn)動(dòng)-2025高考物理二輪復(fù)習(xí)
- 學(xué)校保潔方案
- T-SCSF 0004-2020 海洋牧場(chǎng)海藻場(chǎng)建設(shè)技術(shù)規(guī)范
- 血液透析患者心力衰竭的護(hù)理
- 2025高職單招考試(語(yǔ)文)試題(附答案)
- 江蘇省2021-2022學(xué)年二年級(jí)下學(xué)期數(shù)學(xué)期中備考卷一(南京專版)
- 大學(xué)生創(chuàng)新創(chuàng)業(yè)思維導(dǎo)圖
評(píng)論
0/150
提交評(píng)論