產(chǎn)生式動物識別系統(tǒng)_第1頁
產(chǎn)生式動物識別系統(tǒng)_第2頁
產(chǎn)生式動物識別系統(tǒng)_第3頁
產(chǎn)生式動物識別系統(tǒng)_第4頁
產(chǎn)生式動物識別系統(tǒng)_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、實驗?zāi)康膶嶒?:產(chǎn)生式動物識別系統(tǒng)理解和掌握產(chǎn)生式系統(tǒng)的推理方法,能夠用選定的編程語言實現(xiàn)推理機(jī)。二、編程環(huán)境本文主要編譯環(huán)境是Win dows 10 Visual Studio 2015三、問題描述設(shè)計一個用于動物識別的產(chǎn)生式系統(tǒng),該系統(tǒng)通過規(guī)則庫識別老虎、金錢豹、斑馬、長 頸鹿、企鵝、信天翁、鴕鳥7種動物。四、解決方案1.規(guī)則庫:用于描述相應(yīng)領(lǐng)域內(nèi)知識的產(chǎn)生式集合稱為規(guī)則庫。 本規(guī)則庫包括以下規(guī)則R1 :ifR2:R3:ifif動物有毛發(fā) 動物有奶 動物有羽毛then動物是哺乳動物then動物是哺乳動物then動物是鳥R4 :ifR5:R6:R7:R8:R9:是豹if if if if i

2、f動物會飛 and 動物吃肉then 動物有犀利牙齒 動物是哺乳動物 動物是哺乳動物 動物是哺乳動物會生蛋then動物是鳥動物是食肉動物and有爪and眼向前方then動物是食肉動物and有蹄then動物是有蹄類動物and反芻then動物是有蹄類動物and是食肉動物and有黃褐色and有暗斑點then動物and有黑色條紋 then動R10 : if物是虎R11: if動物是有蹄類動物是長頸鹿R12 : if動物是有蹄類動物R13 : if動物是鳥and不會飛物是鴕鳥R14 : if動物是鳥 and不會飛 and會游泳and有黑白二色then動物是企鵝R15 : if動物是鳥 and善飛then

3、動物是信天翁動物是哺乳動物and是食肉動物and有黃褐色and有長脖子and有長腿and有暗斑點then動物and有黑色條紋 the n動物是斑馬and有長脖子and有長腿 and有黑白二色 then動2.綜合數(shù)據(jù)庫char *ansO ="抱歉,我也不知道這是什么動物H.char *ans1 ="這個動物是金錢豹 ”;char *ans3 ="這個動物是長頸鹿 ”;char *ans4 ="這個動物有斑馬"char *ans5 ="這個動物是企鵝"char *ans6 ="這個動物是鴕鳥"char *a

4、ns7 ="這個動物是信天翁 "3.推理機(jī)(1) 初始化綜合數(shù)據(jù)庫,即把欲解決問題的已知事實送入綜合數(shù)據(jù)庫中;(2) 檢查規(guī)則庫中是否有未使用過的規(guī)則,若無轉(zhuǎn) (7);(3) 檢查規(guī)則庫的未使用規(guī)則中是否有其前提可與綜合數(shù)據(jù)庫中已知事實相匹配的規(guī)則,若有,形成當(dāng)前可用規(guī)則集;否則轉(zhuǎn)(6);(4) 按照沖突消解策略,從當(dāng)前可用規(guī)則集中選擇一個規(guī)則執(zhí)行,并對該規(guī)則作 上標(biāo)記。把執(zhí)行該規(guī)則后所得到的結(jié)論作為新的事實放入綜合數(shù)據(jù)庫;如果該規(guī)則 的結(jié)論是一些操作,則執(zhí)行這些操作;(5) 檢查綜合數(shù)據(jù)庫中是否包含了該問題的解,若已包含,說明解已求出,問題 求解過程結(jié)束;否則,轉(zhuǎn)(2);

5、(6) 當(dāng)規(guī)則庫中還有未使用規(guī)則,但均不能與綜合數(shù)據(jù)庫中的已有事實相匹配時,要求用戶進(jìn)一步提供關(guān)于該問題的已知事實,若能提供,則轉(zhuǎn)(2);否則,執(zhí)行下一步;(7) 若知識庫中不再有未使用規(guī)則,也說明該問題無解,終止問題求解過程。輸 出“抱歉,沒有相符合的動物”,程序退出。4.流程圖 箱孔動犧還惑>'否/逆予/捕斷咄痂、剤S爼您為鶴,魚”壬匚是斑耳、至;、尊豔 /會不會飛/ 卜遜繪食草動撲” 7玉是長頸樽/IX I 工 Vi否炯理廟患、.否Ln頤老泌、;、還業(yè)信天護(hù)<“一"得a結(jié)果戰(zhàn)功追出T沒於果失畋二世出五、源代碼#include<stdio.h> i

6、nt main() char a1; char flag0 ;/ 是否識別出動物的標(biāo)志 char *strO ="本系統(tǒng)可識別七種動物,請用丫和N表示是和否n"?" JH.?" J?" Jchar *str1 = "這個動物有毛發(fā)嗎 char *str2 = "這個動物有奶嗎? char *str3 = "這個動物有羽毛嗎 char *str4 = "這個動物會下蛋嗎char *str5 = "這個動物吃肉嗎? "char *str6 = "這個動物有犬齒有爪嗎? char

7、*str7 = "這個動物有蹄嗎? "char *str8 = "這個動物是嚼反芻動物嗎 ?" char *str9 = "這個動物身上是黃褐色而且有暗斑點嗎? char *str1O = "這個動物身上是黃褐色而且有黑色條紋 char *str11 = "這個動物長腿長脖子且身上有暗斑點嗎 char *str12 = "這個動物身上有黑色條紋嗎 ?"char *str13 = "這個動物長腿長脖子? " char *str14 = "這個動物會游泳并有黑白兩色 t"

8、;char *str15 = "這個動物擅飛 " char *str16 = " 這個動物會不會飛 "char *ansO = "抱歉,我也不知道這是什么動物 " char *ans1 = "這個動物是金錢豹 char *ans2 = "這個動物是老虎 " char *ans3 = "這個動物是長頸鹿 char *ans4 = "這個動物有斑馬 " char *ans5 = "這個動物是企鵝 " char *ans6 = "這個動物是鴕鳥 &qu

9、ot; char *ans7 = "這個動物是信天翁 char *a4 = str1,str2,str3,str4 ;HH.HHH?" J?" J/判斷哺乳動物和鳥類char *bl4 = str5,str6,str7,str8 ;/bL 判斷是食草動物還是食肉動物char *b2 = str16 ;/判斷鳥類會不會飛/CL 判斷金錢豹和老虎/ 判斷長頸鹿和斑馬 / 判斷企鵝和鴕鳥/ 判斷是不是信天翁/* 判斷具體是那種動物 */char *cl = str9,str10 ;char *c2 = str11,str12 ;char *c3 = str13,str1

10、4 ;char *c4 = str15 ;puts(str0);for (int k = 0; k < 4; k+) puts(ak);scanf_s("%c", &a1, 1);getchar();if (a1 = 'Y')/ 區(qū)分哺乳動物和鳥類 if (k = 1) printf_sC初步判定是哺乳動物 n"); flagO = 0; break; else if (k > 2)printf_s("初步判定是鳥類 n"); flagO = 1; break; if (flag0 = 0) / 判定是哺乳動

11、物for (int k = 0; k < 4; k+) puts(blk); scanf_s("%c", &a1, 1); getchar();if (a1 = 'Y')/ 區(qū)分食肉動物和食草類動物 if (k = 1) printf_s("初步判定是食肉動物n"); for (int k = 0; k < 2; k+) puts(clk);scanf_s("%c", &a1, 1); getchar();/ 區(qū)分金錢豹和老虎if (a1 = 'Y')printf_s(&qu

12、ot;這是是金錢豹");break;else if (a1 = 'N'&&k = 1) printf_s("這是老虎");break;break;else if (k > 2)printf_sC初步判定是食草類動物n");for (int k = 0; k < 2; k+) puts(c2k); scanf_s("%c", &a1, 1); getchar();/ 確定是長頸鹿還是斑馬if (a1 = 'Y')printf_s("這是長頸鹿");b

13、reak; else if (a1 = 'N'&&k = 1) printf_s("這是斑馬");break;break;else if (flag0 = 1) / 判定是鳥類 puts(b20);scanf_s("%c", &a1, 1); getchar();if (a1 = 'Y')/ 判斷鳥類會不會飛 puts(c40);scanf_s("%c", &a1, 1);getchar();if (a1 = 'Y') /判斷是不是信天翁 printf_s

14、("這是信天翁");else if(a1 = 'N')puts(ans0);else if (a1 = 'N') for (int k = 0; k < 2; k+) puts(c3k); scanf_s("%c", &a1, 1);getchar();/確定是企鵝和鴕鳥if (a1 = 'Y')printf_s("這是鴕鳥");break;else if (a1 = 'N'&&k = 1) printf_s("這是企鵝");break; getchar(); return 0;六、實驗結(jié)果相關(guān)截圖截圖一達(dá)個動物有毛發(fā)嗎?這個動物有奶嗎? 這個動物有羽毛耶這個動物會下蛋嗎?義判定最歿E個動物薈不會飛M農(nóng)個動物長腿長脖子?N這個動物會游泳幷有黑白兩色 £這是企掰.截圖Ggl鞏動物壓嗦昴氐詁動砌iHS原統(tǒng)"亡本殺綜皿識®I七種動機(jī)請用Y和H恚示杲和音該個動物有毛發(fā)嗎?這個動物有奶嗎?b史劉疋星"g乳動物這個動

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論