




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、動物識別課課人工智能實驗三產(chǎn)生式系統(tǒng)推理一、實驗?zāi)康谋緦嶒炚n程是計算機(jī)、智能、物聯(lián)網(wǎng)等專業(yè)學(xué)生的一門專業(yè)課程,通過實驗,幫助學(xué)生更好地掌握人工智能相關(guān)概念、技術(shù)、原理、應(yīng)用等;通過實驗提高學(xué)生編寫實驗報告、總結(jié)實驗結(jié)果的能力;使學(xué)生對智能程序、智能算法等有比較深入的認(rèn)識。1.掌握人工智能中涉及的相關(guān)概念、算法;2熟悉人工智能中的知識表示方法;3掌握問題表示、求解及編程實現(xiàn);4.理解產(chǎn)生式系統(tǒng)的結(jié)構(gòu)原理與實際應(yīng)用;5掌握產(chǎn)生式規(guī)則表示及規(guī)則庫組建的實現(xiàn)方法;6熟悉和掌握產(chǎn)生式系統(tǒng)的運行機(jī)制,掌握基于規(guī)則推理的基本方法。二、基本要求1實驗前,復(fù)習(xí)人工智能課程中的有關(guān)內(nèi)容。2準(zhǔn)備好實驗數(shù)據(jù)。3編程要
2、獨立完成,程序應(yīng)加適當(dāng)?shù)淖⑨尅?完成實驗報告。三、實驗軟件使用C或C+(Visualstudio或其它開發(fā)環(huán)境)(不限制語言使用)。四、實驗內(nèi)容:以動物識別系統(tǒng)為例,用選定的編程語言建造規(guī)則庫和綜合數(shù)據(jù)庫,開發(fā)能進(jìn)行正確的正向推理或反向推理的推理機(jī)。正向推理過程從已知事實出發(fā),通過規(guī)則庫求得結(jié)論,或稱數(shù)據(jù)驅(qū)動方式。推理過程是:&規(guī)則集中的規(guī)則前件與事實庫中的事實進(jìn)行匹配,得匹配的規(guī)則集合。&從匹配規(guī)則集合中選擇一條規(guī)則作為使用規(guī)則。&執(zhí)行使用規(guī)則的后件,將該使用規(guī)則的后件送入事實庫中。&重復(fù)這個過程直至達(dá)到目標(biāo)。1動物分類規(guī)則集(1)若某動物有奶,則它是哺乳動物。若某動物有毛發(fā),則它是哺乳動物
3、。若某動物有羽毛,則它是鳥。若某動物會飛且生蛋,則它是鳥。若某動物是哺乳動物且有爪且有犬齒且目盯前方,則它是食肉動物。若某動物是哺乳動物且吃肉,則它是食肉動物。若某動物是哺乳動物且有蹄,則它是有蹄動物。若某動物是有蹄動物且反芻食物,則它是偶蹄動物。若某動物是食肉動物且黃褐色且有黑色條紋,則它是老虎。若某動物是食肉動物且黃褐色且有黑色斑點,則它是金錢豹。若某動物是有蹄動物且長腿且長脖子且黃褐色且有暗斑點,則它是長頸鹿。若某動物是有蹄動物且白色且有黑色條紋,則它是斑馬。若某動物是鳥且不會飛且長腿且長脖子且黑白色,則它是駝鳥。若某動物是鳥且不會飛且會游泳且黑白色,則它是企鵝。若某動物是鳥且善飛且不怕
4、風(fēng)浪,則它是海燕。下面是該規(guī)則集所形成的(部分)推理網(wǎng)絡(luò):圖1動物識別系統(tǒng)部分推理網(wǎng)絡(luò)1.問2題描述由上述動物識別規(guī)則組成規(guī)則庫,推理機(jī)采用正向推理算法或反向推理算法,實現(xiàn)對動物的查詢。如給出初始事實:F1:某動物有毛發(fā)F2:吃肉F3:黃褐色F4:有黑色條紋目標(biāo)條件為:該動物是什么?3規(guī)則庫擴(kuò)充(選做)在上述規(guī)則集(丨)基礎(chǔ)上增加以下規(guī)則集(II):兔子:有毛發(fā),有奶,善跳躍,唇裂;(2貓:有毛發(fā),有奶,善捕鼠,腳有肉墊;犀牛:有毛發(fā),有奶,鼻子上有角,褐色,皮糙肉后,皮糙肉厚,有蹄;熊貓:有毛發(fā),有奶,黑眼圈,四肢短??;鸚鵡:鳥類,上嘴鷹鉤,會模仿人說話;鴨子:鳥類,腿短,嘴扁平,善潛水游泳
5、;鷹:鳥類,上嘴鷹鉤,有爪,吃肉;鴨子:有羽毛,卵生,善游泳,嘴扁平,腿短;鵝:有羽毛,卵生,善潛水游泳,白色或黑色,頸長,嘴大,腿長,頸部有肉只凸起;鴉:有羽毛,卵生,黑色,嘴大;鷹:有羽毛,卵生,有爪,吃肉,上嘴鷹鉤;鸚鵡:有羽毛,卵生,上嘴鷹鉤,能模仿人說話;青蛙:卵生,生活在水中,生活在陸地,有皮膚呼吸,用肺呼吸,皮膚光滑,吃昆蟲,會變色;蠑螈:卵生,生活在水中,生活在陸地,有皮膚呼吸,用肺呼吸,吃昆蟲,皮膚粗糙,四肢扁,背部黑色;蟾蜍:卵生,生活在水中,生活在陸地,有皮膚呼吸,用肺呼吸,吃昆蟲,皮膚粗糙;比目魚:用鰓呼吸,身體有鰭,生活在海洋中,身體扁平,兩眼在頭部同側(cè);鯽魚:用鰓呼
6、吸,身體有鰭,生活在淡水中,身體扁平,頭高尾部窄;蛇:生活在陸地,用肺呼吸,胎生,身體有鱗或甲,身體圓而細(xì)長,吃小動物;壁虎:生活在陸地,用肺呼吸,胎生,身體有鱗或甲,有四肢,尾巴細(xì)長易斷,吃昆蟲;烏龜:生活在陸地,用肺呼吸,胎生,身體有鱗或甲,身體圓而扁,有堅硬的殼;玳瑁:生活在陸地,用肺呼吸,胎生,身體有鱗或甲,殼為黃褐色,皮膚光滑,有黑斑;鱷魚:生活在陸地,用肺呼吸,胎生,身體有鱗或甲,有四肢,善游泳,皮硬黑褐色。要求在動物分類規(guī)則集(丨)的基礎(chǔ)上添加上述22條知識,共構(gòu)成29種動物的知識庫系統(tǒng),對原有動物分類系統(tǒng)進(jìn)行擴(kuò)充和修改。五、實驗程序組成使用的結(jié)構(gòu)Rule類,類中存放一個int類
7、型的指針和重載了一個運算符=,用于后續(xù)與int類型的數(shù)組作比較。使用的各種函數(shù)/用于中間狀態(tài)操作的函數(shù)Boolinclude(Rulerule,int*ch);/判斷ch中含有rule全部元素Voidclean(Rulerule,int*ch);刪除ch中與rule相同的元素boolzero(int*ch);判斷ch中是否全部元素都為0Boolcheck(int*ch,int*p);判斷ch中是否還含有p中元素/規(guī)則庫函數(shù)Intrule1(int*ch);/一級規(guī)則,可以直接由條件推理出Intrule2(int*ch,intrule1);二級規(guī)則,需要結(jié)合一級推理結(jié)果Intrule3(int*
8、ch,intrule2);三級規(guī)則,需要結(jié)合二級推理結(jié)果/推理結(jié)果處理函數(shù)Intresult(int*ch,intrule3);/根據(jù)rule3的結(jié)果進(jìn)行分析Voidshow(inta);根據(jù)推理得出的序號輸出相應(yīng)文字部分實驗代碼:規(guī)則庫intrulel(int*ch)if(!zero(ch)有奶哺乳動物Rulerulel;Rulerulel;intt1=1;rulel.rule=&t1;if(include(rule1,ch)clean(rule1,ch);return24;有毛發(fā)哺乳動物Rulerule2;intt2=2;rule2.rule=&t2;if(include(rule2,ch
9、)clean(rule2,ch);return24;有羽毛鳥Rulerule3;intt3=3;rule3.rule=&t3;if(include(rule3,ch)clean(rule3,ch);return25;會飛,能生蛋鳥Rulerule4;intt2=4,5;rule4.rule=&t0;if(include(rule4,ch)clean(rule4,ch);return25;elsereturn0;intrule2(int*ch,intrule1)if(!zero(ch)switch(rule1)哺乳動物case24:有爪,有犬齒,目盯前方食肉動物Rulerule5;intt3=6
10、,7,8;rule5.rule=&t0;if(include(rule5,ch)clean(rule5,ch);return26;吃肉食肉動物Rulerule6;intt1=9;rule6.rule=&t1;if(include(rule6,ch)clean(rule6,ch);return26;有蹄有蹄動物Rulerule7;intt2=10;rule7.rule=&t2;if(include(rule7,ch)clean(rule7,ch);return27;return24;return24;;鳥case25:不會飛,長腿,長脖子,黑白色鴕鳥Rulerule8;intt4=14,15,1
11、9,20;rule8.rule=&t0;if(include(rule8,ch)clean(rule8,ch);return33;不會飛,會游泳,黑白色企鵝Rulerule9;intt13=19,20,21;rule9.rule=&t10;if(include(rule9,ch)clean(rule9,ch);return34;善飛,不怕風(fēng)浪海燕Rulerule10;intt22=22,23;rule10.rule=&t22;if(include(rule10,ch)clean(rule10,ch);return35;return25;elsereturnrule1;intrule3(int*
12、ch,intrule2)if(!zero(ch)switch(rule2)食肉動物case26:黃褐色,黑色條紋老虎Rulerule11;intt12=12,17;rule11.rule=&t10;if(include(rule11,ch)clean(rule11,ch);return29;黃褐色,黑色斑點金錢豹Rulerule12;intt22=12,13;rule12.rule=&t20;if(include(rule12,ch)clean(rule12,ch);return30;return26;有蹄動物case27:反芻偶蹄動物Rulerule13;intt1=11;rule13.ru
13、le=&t1;if(include(rule13,ch)if(include(rule13,ch)clean(rule13,ch);return28;/長腿,長脖子,黃褐色,暗斑點長頸鹿Rulerule15;intt34=12,14,15,16;rule15.rule=&t30;if(include(rule15,ch)clean(rule15,ch);return31;/白色,黑色條紋斑馬Rulerule14;intt42=17,18;rule14.rule=&t40;if(include(rule14,ch)clean(rule14,ch);return32;return27;return
14、rule2;elsereturnrule2;六、實驗結(jié)果分析:初始界面:輸入題設(shè)條件:得出結(jié)果:S2:VSproectAI3DebjgiAl3exe實驗中采用了對規(guī)則的分級保證了推理的中間過程的完善性,不過這也使得本程序中的可用規(guī)則全為最基本的規(guī)則,若是從中間過程開始的推理,如推理條件以哺乳動物為基本條件的推理,需要用于自行推理出哺乳動物的基本條件。規(guī)則庫與記錄用戶輸入條件的數(shù)組以指針*ch的形式存放,原本在確定條件數(shù)量的時候想用ch!=NULL的,可是會出現(xiàn)越界的情況,后來觀察錯誤發(fā)現(xiàn)越界后數(shù)值都十分大或小,故重新設(shè)置邊界條件為-5050用來計算條件數(shù)量,也算一種取巧。完整代碼:#inclu
15、deusingnamespacestd;單條規(guī)則形式classRulepublic:int*rule;booloperator=(int*ch);boolRule:operator=(int*ch)inti=0;while(chi-50&chi50)if(rulei!=chi)returntrue;i+;returnfalse;讀取擁有函數(shù)boolinclude(Rulerule,int*ch)intrulelong=0,same=0;while(-50rule.rulerulelong&rule.rulerulelong-50&chi50;i+)for(intm=0;m-50&rule.ru
16、lerulelong-50&chi50)intm=0;while(m-50&chi-50&chchlong50)chlong+;復(fù)制ch數(shù)組int*chcopy=newintchlong;for(inti=0;ichlong;i+)chcopyi=chi;先將0項加入same值中for(inti=0;ichlong;i+)if(chcopyi=0)same+;做相同分析for(inti=0;ichlong;i+)for(intm=0;-50pm&pm哺乳動物Rulerule2;Rulerule2;intt2=2;rule2.rule=&t2;if(include(rule2,ch)clean(
17、rule2,ch);return24;有羽毛鳥Rulerule3;intt3=3;rule3.rule=&t3;if(include(rule3,ch)clean(rule3,ch);return25;會飛,能生蛋鳥Rulerule4;intt2=4,5;rule4.rule=&t0;if(include(rule4,ch)clean(rule4,ch);return25;elsereturn0;intrule2(int*ch,intrule1)if(!zero(ch)switch(rule1)哺乳動物case24:有爪,有犬齒,目盯前方食肉動物Rulerule5;intt3=6,7,8;ru
18、le5.rule=&t0;if(include(rule5,ch)clean(rule5,ch);return26;吃肉食肉動物Rulerule6;intt1=9;rule6.rule=&t1;if(include(rule6,ch)clean(rule6,ch);return26;有蹄有蹄動物Rulerule7;intt2=10;rule7.rule=&t2;if(include(rule7,ch)clean(rule7,ch);return27;return24;鳥case25:不會飛,長腿,長脖子,黑白色鴕鳥Rulerule8;intt4=14,15,19,20;rule8.rule=&t0;if(include(rule8,ch)if(include(rule8,ch)clean(rule8,ch);return33;不會飛,會游泳,黑白色企鵝Rulerule9;intt13=19,20,21;rule9.rule=&t10;if(include(rule9,ch)clean(rule9,ch);return34;善飛,不怕風(fēng)浪海燕Rulerule10;intt22=22,23;rule10.rule=&t22;if(include(rule10,ch)clean(rule10,ch);return35;return25;elsere
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 山西省運城市景勝中學(xué)2025屆高三5月高考模擬考試(二模)生物試題含解析
- 天津藝術(shù)職業(yè)學(xué)院《體育V》2023-2024學(xué)年第一學(xué)期期末試卷
- 四川大學(xué)錦江學(xué)院《生產(chǎn)運營管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 重慶市外國語校2025年初三最后一卷語文試題含解析
- 山東省諸城市桃林鎮(zhèn)桃林2025屆初三下學(xué)期第十二次重點考試化學(xué)試題含解析
- 運城護(hù)理職業(yè)學(xué)院《聚合物反應(yīng)工程基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 泉州信息工程學(xué)院《詩詞與人生》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖南石油化工職業(yè)技術(shù)學(xué)院《隸書理論與技法II》2023-2024學(xué)年第二學(xué)期期末試卷
- 遼寧省沈陽市重點中學(xué)2025年高三考前訓(xùn)練歷史試題試卷含解析
- 四川長江職業(yè)學(xué)院《生態(tài)循環(huán)種養(yǎng)殖技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 小額貸款公司內(nèi)部控制制度
- 抖音員工號申請在職證明參考模板
- 輔導(dǎo)《領(lǐng)導(dǎo)學(xué)基礎(chǔ)》教學(xué)輔導(dǎo)
- 農(nóng)家樂安全應(yīng)急預(yù)案
- 讓時間陪你慢慢變富
- 體育心理學(xué)(第三版)PPT全套教學(xué)課件
- invt英威騰CHF100A變頻器說明書
- 社會主義經(jīng)濟(jì)理論習(xí)題與答案
- 2023年天津市普通高中學(xué)業(yè)水平考試地理試題(含答案)
- 民航概論全套課件
- 生物技術(shù)概論
評論
0/150
提交評論