




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、人工智能實驗二一.題目:基于規(guī)則的動物識別專家系統(tǒng)二.實驗?zāi)康?,熟悉產(chǎn)生式的特點(diǎn),基本結(jié)構(gòu)和設(shè)計思想;2 .掌握基于規(guī)則推理的基本過程和方法;3 .學(xué)會用高級程序設(shè)計語言開發(fā)基于規(guī)則的動物識別系統(tǒng)。三.實驗內(nèi)容動物識別專家系統(tǒng)是流行的專家系統(tǒng)實驗?zāi)P停卯a(chǎn)生式規(guī)則來表示知識,共15條規(guī)則、可以識別七種動物,這些規(guī)則既少又簡單,可以改造他們,也可以加進(jìn)新的規(guī)則,還可以用來識別其他東西的新規(guī)則來取代這些規(guī)則。動物識別15條規(guī)則:ri毛發(fā)哺乳動物r2奶哺乳動物r3羽毛鳥r4會飛|下蛋鳥r5吃肉食肉動物r6犬齒|爪|眼睛盯著前方食肉動物r7哺乳動物蹄有蹄類動物r8哺乳動物|反芻有蹄類動物r9哺乳動
2、物|食肉動物|黃褐色|暗斑點(diǎn)金錢豹r10哺乳動物|食肉動物|黃褐色|黑色條紋虎r11有蹄類動物|長脖子|長月11暗斑點(diǎn)長頸鹿r12有蹄類動物|黑條紋斑馬r13鳥|不會飛|長脖子|長腿|黑白色鴕鳥r14鳥|不會飛|游泳|黑白色企鵝r15鳥|善飛信天翁四.實驗要求1、確定推理方法(正向還是反向),并根據(jù)問題設(shè)計實現(xiàn)一個簡單的不通用推理機(jī)(匹配、沖突消解);2、規(guī)則庫要求至少包含15條規(guī)則;3、初始事實可以任意給定,輸入初始事實后能夠得到推理結(jié)果;4、設(shè)計人機(jī)界面,解釋模塊提供查詢規(guī)則的功能;5、可以不考慮知識庫管理模塊;6、提交實驗報告,以word文檔形式“學(xué)號+姓名”命名;報告中要有程序源代碼;
3、有程序運(yùn)行結(jié)果截圖;要有推理樹;報告提交到:53/xstjzy/任建平/人工智能五.實驗原理1 .基于規(guī)則產(chǎn)生式系統(tǒng)結(jié)構(gòu)基于規(guī)則的產(chǎn)生式系統(tǒng)一般由規(guī)則庫(知識庫)、綜合數(shù)據(jù)庫和推理引擎(推理機(jī))三部分組成,規(guī)則庫中它的基本組成框架如下圖1所示。知識庫由謂詞演算事實和有關(guān)討論主題的規(guī)則構(gòu)成,綜合庫又稱為上下文,用來暫時存儲推理過程中的結(jié)論和數(shù)據(jù)。推理機(jī)是用規(guī)則進(jìn)行推理的過程和行為。知識采集系統(tǒng)是領(lǐng)域?qū)<野严嚓P(guān)領(lǐng)域的知識表示成一定的形式,并輸入到知識庫中。解釋系統(tǒng)通過用戶輸入的條件來分析被系統(tǒng)執(zhí)行的推理結(jié)構(gòu),并將專家知識以易理解的方式并把知識解釋給用戶。翅域?qū)<?/p>
4、圖1規(guī)則產(chǎn)生式系統(tǒng)的基本結(jié)構(gòu)2 .簡單動物識別產(chǎn)生式系統(tǒng)結(jié)構(gòu):知識庫ANIMAL的知識庫非常小,僅僅包含15條規(guī)則(一般說來,一個產(chǎn)生式系統(tǒng)的知識庫應(yīng)包含幾百條規(guī)則);解空間很小,在一個特定的動物園里,共有虎、金錢豹、長頸鹿、斑馬、鴕鳥、企鵝和信天翁等7種動物;初始事實集合很小,僅僅包含30個事實,cha數(shù)據(jù)(即事實、證據(jù)、斷言),知識(即淺層知識,規(guī)則)和推理都是精確的,即確定性的;知識庫。3 .正向推理過程分析:下面以一個具體的動物識別產(chǎn)生式系統(tǒng)模型來說明其原理。初始事實集:動物身上有暗斑點(diǎn)、有長脖子、有長腿、有奶、有蹄要求解的問題是判斷滿足該事實集的是何種動物?推理過程:首先從規(guī)則庫取出
5、第一條規(guī)則r1,將ri中的前提部分與初始事實集中的事實相比較,匹配失??;于是繼續(xù)取第二條規(guī)則再試,匹配成功!將此規(guī)則的結(jié)論部分作為新事實加入到綜合數(shù)據(jù)庫的初始事實集中。于是初始事實集變?yōu)椋涸搫游锷砩嫌邪蛋唿c(diǎn)、有長脖子、有長腿、有奶、有蹄、是哺乳動物。接著依次取r3、r4、r5、r6與初始事實集匹配、均不成功,當(dāng)執(zhí)行到r7時再次獲得匹配,于是事實集中以增加一條事實:該動物身上有暗斑點(diǎn)、有長脖子、有長腿、有奶、有蹄、是哺乳動物、是有蹄類動物。此后,當(dāng)搜索到r11時又一次匹配成功,事實集變?yōu)椋涸搫游锷砩嫌邪蛋唿c(diǎn)、有長脖子、有長腿、有奶、有蹄、是哺乳動物、是有蹄類動物、該動物是長頸鹿。于是得到最終結(jié)論
6、-該動物是長頸鹿。上述問題的求解過程是一個不斷地從規(guī)則庫中選取可用規(guī)則與綜合數(shù)據(jù)庫中的已知事實進(jìn)行匹配的過程,規(guī)則的每一次匹配都會使綜合數(shù)據(jù)庫增加新的內(nèi)容,并朝著問題的解決前進(jìn)了一步。這就是一個推理過程。4 .逆向推理過程分析:初始事實集:動物身上有暗斑點(diǎn)、有長脖子、有長腿、有奶、有蹄要求解的問題是判斷滿足該事實集的是何種動物?推理過程:我們假設(shè)這個動物是長頸鹿的話,為了檢驗這個假設(shè),根據(jù)規(guī)則r11,要求這個動物是長脖子,長腿,暗斑點(diǎn)且是有蹄類動物。這時數(shù)據(jù)庫中已經(jīng)有了長脖子,長腿,暗斑點(diǎn)事實,為此我們還要驗證“動物是有蹄類動物”,根據(jù)規(guī)則r8要求動物反芻,且是哺乳動物,而事實庫中沒有反芻,根
7、據(jù)規(guī)則r7要求動物有蹄,且是哺乳動物,事實中動物有蹄。為此我們要驗證動物是哺乳動物我們要驗證動物是哺乳動物,根據(jù)規(guī)則r2知道,要求動物有奶,事實中動物有奶,此時各個子目標(biāo)都是已知事實,所以逆向推理成功。上述問題的求解過程是從目標(biāo)的(作為假設(shè))狀態(tài)出發(fā),朝著出事狀態(tài)前進(jìn),逆向適用規(guī)則的一種方法。老虎長頸鹿有黑色條紋黃褐色食肉動物有蹄動物哺乳動物有蹄會飛羽毛有犬齒有爪有奶有毛發(fā)目盯前方長腿長脖子不會飛七.具體代碼如下#include<string.h>#include<math.h>#include<stdio.h>#include<iostream.h&
8、gt;# defineTrue1# defineFalse0# defineDontKnow-1char*str="chew_cud反芻動物","hooves蹄類動物","mammal哺孚L動物","forward_eyes眼盯前方","claws有爪","pointed_teeth有犬齒","eat_meat吃肉","lay_eggs會下蛋","fly會飛”,"feathers有羽毛"ungulate有蹄
9、"carnivore食肉動物","bird鳥","give_milk能產(chǎn)奶","has_hair有毛發(fā)","fly_well善飛","black&white_c010r黑白色","can_swim會防I泳","long_legs長月退","long_neck長脖子","black_stripes黑條紋","dark_spots黑斑點(diǎn)","tawny_c010r
10、黃褐色","albatross信天翁","penguin企鵝","ostrich駝鳥","zebra斑馬","giraffe長頸鹿","tiger老虎","cheetah獵豹",0;intrulep口6=22,23,12,3,0,0,21,23,12,3,0,0,22,19,20,11,0,0,21,11,0,0,0,0,17,19,20,13,-9,0,17,18,13,-9,0,0,16,13,0,0,0,0,15,0,0,0,0,0,14,
11、0,0,0,0,0,10,0,0,0,0,0,8,7,0,0,0,0),7,0,0,0,0,0,4,5,6,0,0,0,2,3,0,0,0,0,1,3,0,0,0,0;intrulec尸30,29,28,27,26,25,24,3,3,13,13,12,12,11,11,0;classfactprivate:intNumber;charName21;intActive;intSucc;public:fact*Next;fact(intNum,char*L)strcpy(Name,L);Number=Num;Active=False;-1是已經(jīng)推理,不符合。1是已經(jīng)推理,符合。Succ=Dont
12、Know;/0是無,-1是不知道,1是有。Next=NULL;char*GetName()char*L;L=newchar21;strcpy(L,Name);returnL;intGetNumber()returnNumber;intGetAct()returnActive;intGetSucc()returnSucc;voidPutAct(constintAct0,intSuc0)(Active=Act0;Succ=Suc0;);fact*Fact;classlist(private:intNumber;public:list*Next;list(intNum)(Number=Num;Nex
13、t=NULL;)intGetNumber()(returnNumber;);classrule(char*Name;list*Pre;intConc;public:rule*Next;rule(char*N,intP口,intC);rule();intQuery();voidGetName()(cout<<Name;);rule:rule()(list*L;while(Pre)(L=Pre->Next;deletePre;Pre=L;)deleteName;)rule:rule(char*N,intP,intC)(inti;list*L;Pre=NULL;Next=NULL;
14、Name=newcharstrlen(N)+1;strcpy(Name,N);i=0;while(Pi!=0)(L=newlist(Pi+);L->Next=Pre;Pre=L;)Conc=C;)intrule:Query()(charc;intTag=0;list*L;fact*F;F=Fact;L=Pre;if(L=NULL)cout<<"nError"while(L!=NULL)(F=Fact;for(;)(if(abs(L->GetNumber()=F->GetNumber()break;F=F->Next;/查找與規(guī)則前提鏈中前
15、提號相同的事實if(L->GetNumber()>0)(if(F->GetSucc()=true)L=L->Next;continue;if(F->GetSucc()=false)returnfalse;/如果事實的斷言為真則判斷下一個前提,為假,則表示該規(guī)則不適合elseif(F->GetSucc()=True)returnFalse;if(F->GetSucc()=False)L=L->Next;continue;cout<<F->GetName()<<"(Y/N)"<<endl;
16、c=getchar();/事實斷言為不知道的時候,向用戶詢問flushall();if(c='Y')|(c='y')if(L->GetNumber()>0)F->PutAct(1,True);/設(shè)置事實的斷言和激活標(biāo)志if(L->GetNumber()<0)F->PutAct(1,True);Tag=-1;returnFalse;elseif(L->GetNumber()<0)F->PutAct(-1,False);elseF->PutAct(-1,False);Tag=-1;/已經(jīng)推理,不符合。ret
17、urnFalse;L=L->Next;F=Fact;for(;)(if(Conc=F->GetNumber()break;/查找結(jié)論斷言對應(yīng)的事實F=F->Next;if(Conc<24)(F->PutAct(1,True);returnFalse;if(Tag!=-1)(F=Fact;for(;)(if(Conc=F->GetNumber()break;F=F->Next;if(Conc<24)(F->PutAct(1,True);returnFalse;cout<<"nThisaniamalis"<
18、<F->GetName()<<endl;returnTrue;returnFalse;intmain()(fact*F,*T;rule*Rule,*R;charch8;inti=1;Fact=NULL;printf("請按提示選擇:(Y:是N:不是ENTER:確認(rèn))n");while(stri-1)/初始化事實庫,倒序排列。(F=newfact(i,stri-1);F->Next=Fact;Fact=F;i+;)F=Fact;Fact=NULL;while(F)/把倒序排列正過來。(T=F;F=F->Next;T->Next=Fact;Fact=T;)i=0;ch0='R'ch1='U'ch2='L'ch3='E'ch4='_'ch5='a'ch6='0'Rule=NULL;for(i=0;i&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 遼寧省朝陽市朝陽縣柳城高中2025年全國高三模擬考試(六)生物試題含解析
- 洛陽科技職業(yè)學(xué)院《專業(yè)技能訓(xùn)練》2023-2024學(xué)年第二學(xué)期期末試卷
- 山東省棗莊市四十一中市級名校2024-2025學(xué)年初三一輪復(fù)習(xí)基礎(chǔ)知識檢測試題生物試題含解析
- 江蘇省鹽城市響水實驗、一中學(xué)2024-2025學(xué)年初三下學(xué)期第四次月考試卷化學(xué)試題含解析
- 寧夏大學(xué)《傳統(tǒng)人居文化研究》2023-2024學(xué)年第二學(xué)期期末試卷
- 上海民航職業(yè)技術(shù)學(xué)院《工程數(shù)值分析及實驗》2023-2024學(xué)年第一學(xué)期期末試卷
- 樂安縣2025年三年級數(shù)學(xué)第二學(xué)期期末復(fù)習(xí)檢測試題含解析
- 山東陽谷縣達(dá)標(biāo)名校2024-2025學(xué)年初三一輪復(fù)習(xí)階段性考試(化學(xué)試題文)試題含解析
- 沈陽工程學(xué)院《商務(wù)英語視聽》2023-2024學(xué)年第二學(xué)期期末試卷
- 遼寧省沈陽市沈河區(qū)第八十二中學(xué)2025屆下學(xué)期期中考初三試卷物理試題含解析
- CJJT191-2012 浮置板軌道技術(shù)規(guī)范
- 2024年同等學(xué)力申碩-同等學(xué)力(法學(xué))筆試參考題庫含答案
- 部編版二年級語文下冊第一單元大單元整體作業(yè)設(shè)計
- 黑臭水系治理工程監(jiān)理大綱
- 二年級下冊遞等式計算練習(xí)400題及答案
- 高三下學(xué)期綜評自我陳述報告
- 國際人權(quán)法與非洲人權(quán)體系的重要案例研究
- 國有土地使用權(quán)的評估與出讓管理
- 2023年標(biāo)準(zhǔn)化工程師考試真題模擬匯編(共402題)
- 中建懸挑卸料平臺專項施工方案
- 中建總工程師的職業(yè)基本素養(yǎng)
評論
0/150
提交評論