人工智能與專家系統(tǒng)試驗(yàn)報(bào)告_第1頁
人工智能與專家系統(tǒng)試驗(yàn)報(bào)告_第2頁
人工智能與專家系統(tǒng)試驗(yàn)報(bào)告_第3頁
人工智能與專家系統(tǒng)試驗(yàn)報(bào)告_第4頁
人工智能與專家系統(tǒng)試驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、.專業(yè)整理.暨南大學(xué)本科實(shí)驗(yàn)報(bào)告專用紙課程名稱人工智能與專家系統(tǒng)成績評(píng)定0實(shí)驗(yàn)項(xiàng)目名稱 動(dòng)物識(shí)別系統(tǒng)設(shè)計(jì)指導(dǎo)教師0實(shí)驗(yàn)項(xiàng)目編號(hào)實(shí)驗(yàn)項(xiàng)目類型 綜合型0實(shí)驗(yàn)地點(diǎn) 南校區(qū) 學(xué)生姓名學(xué)號(hào)0學(xué)院 信息科學(xué)技術(shù)學(xué)院 系 計(jì)算機(jī)科學(xué)系 專業(yè)0實(shí)驗(yàn)時(shí)間2017年12月日- 年_月日 溫度濕度(一)實(shí)驗(yàn)?zāi)康耐ㄟ^建立動(dòng)物識(shí)別產(chǎn)生式系統(tǒng),理解并體會(huì)知識(shí)庫與控制系統(tǒng)相互獨(dú)立的智 能產(chǎn)生式系統(tǒng)與一般程序的區(qū)別。(二)實(shí)驗(yàn)要求1. 系統(tǒng)的設(shè)計(jì)和完成可以使用各種編程語言和實(shí)用工具,不采用人工智能語 言和工具,這樣能夠使你更加了解專家系統(tǒng)。2. 推薦使用語言:C、java、php、javascript 、delphi。也可以

2、使用其他語 言。3如果使用數(shù)據(jù)庫做后臺(tái),要求使用最簡單的 Access o4.系統(tǒng)可以使用圖形界面,簡單的也可以使用字符界面,不要求。(三)設(shè)計(jì)并完成知識(shí)庫本課程設(shè)計(jì)的主旨是設(shè)計(jì)并實(shí)現(xiàn)具有 15條規(guī)則能自動(dòng)識(shí)別7種動(dòng)物的產(chǎn)生 式系統(tǒng)。知識(shí)庫與控制系統(tǒng)相互獨(dú)立,系統(tǒng)完成后除了能識(shí)別已有的7種動(dòng)物外, 按產(chǎn)生式知識(shí)表示方法向知識(shí)庫中添加、修改新的知識(shí)后,系統(tǒng)能在不修改控制 系統(tǒng)程序的情況下仍然能正確識(shí)別。1.綜合數(shù)據(jù)庫中數(shù)據(jù)結(jié)構(gòu)說明;產(chǎn)生式通過滿足前件,得到后件的結(jié)論或者執(zhí)行后件的相應(yīng)動(dòng)作, 即后 件由前件來觸發(fā)。同時(shí),一個(gè)產(chǎn)生式生成的結(jié)論可以作為另一個(gè)產(chǎn)生式的前提或語言變量使用,進(jìn)一步可構(gòu)成產(chǎn)生

3、式系統(tǒng)。因此在通過有關(guān)特征識(shí)別動(dòng)物的特征中規(guī)定:識(shí)別動(dòng)物的前件(即動(dòng)物的特征):0:有毛發(fā)1:有奶2:有羽毛3:會(huì)飛4:會(huì)生蛋5:吃肉6:有鋒利牙齒7:有爪8:眼向前方9:有蹄10:反芻11:黃褐色皮毛12:有暗斑點(diǎn)13:有黑色條紋 14:長脖子15:長腿16:不會(huì)飛17:會(huì)游泳18:黑白二色19:善飛產(chǎn)生的中間結(jié)果(即動(dòng)物的類別)20:哺乳動(dòng)物 最終結(jié)論:|21.鳥22.食肉動(dòng)物23.有蹄類動(dòng)物24.虎 25.豹26.斑馬27.長頸鹿28.企鵝29.鴕鳥30.信天翁于是在綜合數(shù)據(jù)庫中,將設(shè)定int型數(shù)組facts30,數(shù)組的編號(hào)對(duì)應(yīng) 著以上事實(shí)的編號(hào),數(shù)組的值為1時(shí),意味著對(duì)應(yīng)編號(hào)的事實(shí)為真

4、,否則為假。2. 規(guī)則的格式的數(shù)據(jù)結(jié)構(gòu)說明;每條規(guī)則都擁有前件與后件,建立規(guī)則的數(shù)據(jù)結(jié)構(gòu)時(shí)將前件與后件定義 即可。前件往往有一個(gè)或多個(gè),而后件只有一個(gè)。為了方便采用序號(hào)代替前后件, 因此定義前件為數(shù)組int condition6;定義后件int outcome;規(guī)則的數(shù)據(jù)結(jié)構(gòu)也隨之敲定。typedef struct /存放規(guī)則的結(jié)構(gòu)體,由條件和結(jié)果構(gòu)成皆用序號(hào)int型表示int condition6;/ 條件int outcome; / 結(jié)論Rule;將15條規(guī)則轉(zhuǎn)化為符號(hào):0,20,有毛發(fā)一哺乳動(dòng)物1,20,有奶一哺乳動(dòng)物2,21,有羽毛一鳥3,4,21,會(huì)飛&會(huì)生蛋一鳥5,22,吃肉一食肉

5、動(dòng)物6,7,8,22,有鋒利牙齒&有爪別眼向前方一食肉動(dòng)物20,8,23,哺乳動(dòng)物&有蹄一有蹄類動(dòng)物20,9,23,哺乳動(dòng)物&反芻一有蹄類動(dòng)物20,22,11,12,25,哺乳動(dòng)物&食肉動(dòng)物&有黃褐色皮毛&有暗斑點(diǎn)一豹20,22,11,13,24,哺乳動(dòng)物&食肉動(dòng)物&有黃褐色皮毛&有黑色條紋-虎23,14,15,12,27,有蹄類動(dòng)物&長脖子&長腿&有暗斑點(diǎn)一長頸鹿23,13,26,有蹄類動(dòng)物&有黑色條紋一斑馬21,16,14,15,18,29,鳥&不會(huì)飛&長脖子&長腿&黑白兩色一鴕鳥21,16,17,18,28,鳥&不會(huì)飛&會(huì)游泳&黑白兩色一企鵝21,19,24;鳥&善飛一信天翁3. 推理機(jī)

6、(包括正向和反向推理)過程。在上述規(guī)則的基礎(chǔ)上,可以利用推理機(jī)對(duì)給出條件進(jìn)行推理:(1)正向推理:從下向上進(jìn)行推理。在建立規(guī)則庫時(shí)需要使子規(guī)則在父規(guī)則前。在進(jìn)行正向推理是只要將規(guī)則庫從前到后遍歷下來看是否能由給定規(guī)則推出 相應(yīng)結(jié)果即可。通過判斷每次與規(guī)則匹配得到的結(jié)果,如果結(jié)果不是動(dòng)物, 則更新事實(shí)庫,將此次結(jié)果作為前件匹配下一個(gè)規(guī)則。若有多條規(guī)則可用, 則使用沖突消解策略,選取一條規(guī)則執(zhí)行。直到最終結(jié)果是動(dòng)物時(shí),視為 推理成功。具體步驟如下:a. 輸入得到當(dāng)前事實(shí)facts,針對(duì)15條rules輪流篩查可用規(guī) 貝U。b. 將rules所需的前件提取出來與facts中的事實(shí)進(jìn)行比對(duì)。若有 多條

7、規(guī)則可用時(shí),沖突消解的方法是:選取規(guī)則表rules中順序最前的規(guī) 貝U。找到可用規(guī)則。擴(kuò)充facts,重復(fù)b步驟。c. 在無可擴(kuò)充時(shí),檢查facts ,若其中沒有結(jié)果是動(dòng)物,則推理失.學(xué)習(xí)幫手.專業(yè)整理.??;若其中推理出超過兩個(gè)動(dòng)物時(shí),仍記為推理失敗。在只有一個(gè)結(jié)果是 動(dòng)物時(shí),則推理成功。(2)反向推理:反向推理的思路是從事實(shí)庫的動(dòng)物開始從前向后進(jìn)行匹配,如果所 有動(dòng)物都不能推出為識(shí)別失敗,若能推出其中一個(gè),則識(shí)別成功。若有多 條規(guī)則可用,則從中選出一條規(guī)則,將規(guī)則的前件添加到綜合數(shù)據(jù)庫。具體步驟如下:a. 假設(shè)有動(dòng)物m若其已經(jīng)在facts中,則假設(shè)成立搜索終止。b. 若該假設(shè)動(dòng)物不在fact

8、s中,則從rules中所有后件中含有該動(dòng) 物m的規(guī)則組成表。若該表為空,貝U詢問用戶 fact的真假,若為真,則 將fact添加到facts,搜索中止。c. 若該表不為空,則逐個(gè)判斷表內(nèi)規(guī)則是否有規(guī)則的全部前件都包 含在facts中,如果有,則證明假設(shè)可以直接被推出。識(shí)別成功。d. 如果不能直接推出,則重新進(jìn)行步驟b,直至滿足步驟c。這時(shí), 我們認(rèn)為假設(shè)可以被間接推出,識(shí)別成功。否則若沒有可用規(guī)則,則識(shí)別 失敗。(四)開發(fā)環(huán)境1. 工具:C-free 5.02. 語言:C+3.OS平臺(tái)說明:win10(五)綜合數(shù)據(jù)庫與推理機(jī)1.綜合數(shù)據(jù)庫char *a nimalBase = 0.有毛發(fā),1.

9、有奶,2.有羽毛,3.會(huì)飛,4.會(huì)生蛋,5 .吃肉,6.有鋒利牙齒,7.有爪,8.眼向前方,9.有蹄, 10.反芻, 11.有黃褐色皮毛,12.有暗斑點(diǎn),13.有黑色條紋, 14.長脖子, 15.長腿, 16.不會(huì)飛,17.會(huì)游泳, 18.黑白二色, 19.善飛I!20.哺乳動(dòng)物,21.鳥,22.食肉動(dòng)物,23.有蹄類動(dòng)物,24.虎,25.豹, 26.斑馬,27.長頸鹿,28.企鵝,29.鴕鳥,30.信天翁;5.學(xué)習(xí)幫手.專業(yè)整理.對(duì)應(yīng)以上特征,設(shè)定整型數(shù)組存儲(chǔ)求解過程中產(chǎn)生的各種信息,包括初始 事實(shí)、推理得到的中間結(jié)論,以及最終結(jié)論。int facts30 = 0 ;/記錄被選擇的事實(shí),初始

10、化都為0,被選擇后賦值為1對(duì)三種不同的信息進(jìn)行區(qū)分的方法是利用序號(hào)區(qū)間進(jìn)行區(qū)分。0-19序號(hào)部分是存放原始信息,20-23存放的是中間結(jié)論,24-30存放了最后的結(jié)論。2.推理機(jī)推理部分主要使用了兩個(gè)函數(shù),分別是 deduce函數(shù)和animal函數(shù)。Deduce函數(shù)是用于根據(jù)原始信息,進(jìn)行規(guī)則的遍歷,不斷正向推理的函 數(shù);animal函數(shù)是利用deduce函數(shù)推理得出的facts數(shù)組,即綜合數(shù)據(jù)庫,進(jìn) 行結(jié)果的判斷,如果推理得出的結(jié)果唯一,則返回推理成功的信息,輸出最終的 結(jié)果,否則判定為推理失敗。for (i = 0;i15;i+)/依次對(duì)15條規(guī)則進(jìn)行檢測j = 0;f = rulei.c

11、on diti on j;while (f != -1)/推理是否滿足第i條規(guī)則if (factsf = 0)/第i條規(guī)則有一個(gè)條件不滿足,即為不滿足該條規(guī)則break;/從此次i規(guī)則檢驗(yàn)循環(huán)中跳岀j+;f = rulei.conditionj;/取岀i規(guī)則中所需的條件序號(hào)if (f = -1)/若經(jīng)過上一個(gè)循環(huán)有f=-1 ,則代表滿足第i條規(guī)則out1 = rulei.outcome;factsout1 = 1;/將得岀的結(jié)論加入已知事實(shí)printf(運(yùn)用了規(guī)則(%d) :, i);/并輸岀所用規(guī)則,以便查看j = 0;while (rulei.conditionj != -1)cout a

12、nimalBaserulei.conditionj ; / 輸岀規(guī)則所用先決條件j+;cout animalBaseout1 endl; / 輸岀規(guī)則所用結(jié)果上述就是Deduce函數(shù)的主要內(nèi)容,取出每一條規(guī)則的全部前件與事實(shí)庫facts中進(jìn)行比對(duì),若滿足該規(guī)則,則該規(guī)則的后件將會(huì)被擴(kuò)充到facts數(shù)組中, 同時(shí)也文字輸出,以便使用者確認(rèn)運(yùn)行過程中使用的規(guī)則。遍歷完15條規(guī)則后,facts數(shù)組中就存放了推理得出的全部事實(shí)。接下來就將facts數(shù)組傳入animal函數(shù),從綜合數(shù)據(jù)庫中遴選最終結(jié)論:int animal( int facts ) /判斷知識(shí)庫中是否有符合描述的動(dòng)物int i = 24

13、, a = 0, b = 0;/判斷有多少結(jié)果滿足特定動(dòng)物區(qū)間while (i 2,說明有多個(gè)動(dòng)物滿足描述條件,仍然不能確定最終結(jié)果。 只有當(dāng)a=1時(shí),有唯一的動(dòng)物符合描述,這時(shí)推理成功,返回該動(dòng)物的編號(hào)并輸 出。(六) 實(shí)驗(yàn)結(jié)果1.輸入0 5 11 12 -1(這里末尾輸入-1代表結(jié)束輸入)3會(huì)飛7 一有爪1L有黃褐色皮毛15.往陰la H飛21看蹄類動(dòng)物即輸入有毛發(fā)、吃肉、有黃褐色皮毛、有暗斑點(diǎn)這四個(gè)特點(diǎn),讓系統(tǒng)進(jìn)行 推理。可得到唯一的結(jié)果:豹0一有毛發(fā)L有奶2有羽毛4一會(huì)生蛋匚有鋒利牙憐艮眼向前方9.10,反芻12.有時(shí)斑點(diǎn) 有黑色條紅14,棧脖子 応不會(huì)飛17.fr游泳13.白二色加哺

14、乳功物21鳥22食離動(dòng)初請(qǐng)輸入動(dòng)物特征蕭號(hào)(-1): 0 0 11 1 1RULE(O): 0.有毛發(fā) 20.哺乳勃物25. ftRULE 眾一債肉動(dòng)物RULE:ZOL哺乳劫物ZZ.-fr肉劫物1L有黃趨色皮毛12-Wffi斑點(diǎn)慨終推理蟲您所描述的動(dòng)物為:跆是否堇新推理:(Y/M2.輸入0 2 3 14 17 -1即輸入有毛發(fā)、有羽毛、會(huì)飛、長脖子、會(huì)游泳這五個(gè)特點(diǎn)交由程序進(jìn)行推理。由于不存在這樣的動(dòng)物,因此結(jié)果是:1.WW2-有羽毛3一會(huì)飛4.余牛慣5吃肉6.有鐳利牙齒7 WMS.眼向前方d有瑋10.反芻1L有黃褐色皮毛吐有暗斑點(diǎn)13.有黑邑黑紋14.栓脖子15.區(qū)腿不會(huì)飛17.會(huì)游泳18.

15、黑自二色19,善飛20.哺乳勁物21.fi22合肉功軻23.有蹄類動(dòng)物聲輸人動(dòng)皈特征辭導(dǎo)結(jié)東);0 2 3 14 17 -1klE(O):反有W發(fā) Z0,哺乳動(dòng)物KITE(2): 有期毛 21.鳥推理失??!沒有芫全符合條件的動(dòng)物.是習(xí)重新推理,:Y/N)3.輸入20 22 11 12 13 -1即輸入哺乳動(dòng)物、食肉動(dòng)物、有黃褐色皮毛、有暗斑點(diǎn)、有黑色條紋,根據(jù)這五個(gè)特點(diǎn)可以推導(dǎo)出兩種動(dòng)物:豹和虎。因此也無法推理出正確的結(jié)果卩有毛喪1 一克奶2-有羽毛3一盤飛5.吃肉6.有粋耗牙齒7.WM8.眼向前方9.右蹄10.反芻1L有黃福色皮毛有昂丟點(diǎn)1生有黑隹條紋2一長畔子is 屜BB16.瑋會(huì)飛1會(huì)游

16、沬1圧黑白二色19.善飛面-哺乳幼柳21.522.肉動(dòng)物23有眸類動(dòng)物聲輸入動(dòng)物特征絢號(hào)卜1軸束):20 器 11 1Z 13-1Rllt -lB) : 20. 25.fiRL1E(9)! 20. 乳砂物 盟-您肉動(dòng)物11.有黃福色皮毛1工有詈色條紋- 24.虎推理失??!沒有完全符合爭件的動(dòng)物口辱否篁新推理:(V/N)(七)實(shí)驗(yàn)體會(huì)通過本次實(shí)驗(yàn)我對(duì)于人工智能的產(chǎn)生式系統(tǒng)有了進(jìn)一步的認(rèn)識(shí),對(duì)于正向推理、反向推理兩種基本方式的原理和步驟都加深了理解。尤其是通過設(shè)計(jì)正向推理機(jī),深切體會(huì)到了專家系統(tǒng)是根據(jù)知識(shí)和推理來求解問題的,這種模式與普通程序完全不同,就像我平日里處理問題時(shí),是收集信息,而后根據(jù)常

17、識(shí)與知識(shí) 得出自己的結(jié)論這樣的模式,在寫這次實(shí)驗(yàn)的過程中帶來了很新奇的編程體驗(yàn), 讓我受益匪淺。(八)源代碼#include #inelude using n amespace std;char *results = 虎,豹,斑馬,長頸鹿,”企鵝,鴕鳥,信天翁;char *animalBase = 0.有毛發(fā),1.有奶,2.有羽毛,3.會(huì)飛,4.會(huì)生蛋,5.吃肉,”6.有鋒利牙齒,7.有爪,”8.眼向前方,”9.有蹄, 10.反芻,11.有黃褐色皮毛 ,12.有暗斑點(diǎn)”,13.有黑色條紋,”14.長脖子”,15.長腿”,16.不會(huì)飛”,17.會(huì)游泳 ,18.黑白二色, 19.善飛,20.哺乳動(dòng)

18、物,21.鳥, 22.食肉動(dòng)物,23.有蹄類動(dòng)物,24.虎 ”,25.豹 ”,”26.斑馬 ”,27.長頸鹿,28.企鵝 ”,”29.鴕鳥 ”,”30.信天翁 ” ;typedef struct /存放規(guī)則的結(jié)構(gòu)體,由條件和結(jié)果構(gòu)成皆用序號(hào)int型表示int condition6;/條件,末尾用-1表示結(jié)束int outcome; / 結(jié)論 Rule;/有毛發(fā)t哺乳動(dòng)物/有奶t哺乳動(dòng)物/有羽毛t鳥/會(huì)飛&會(huì)生蛋t鳥Rule rule15 = / 定義 15 個(gè)規(guī)則 0,-1 ,20 , 1,-1 ,20 , 2,-1 ,21 , 3,4,-1 ,21 , 5,-1 ,22 , II吃肉t食肉動(dòng)

19、物 6,7,8,-1 ,22 ,II有鋒利牙齒&有爪&眼向前方t食肉動(dòng)物 20,8,-1 ,23 , 20,9,-1 ,23 ,II哺乳動(dòng)物&有蹄t有蹄類動(dòng)物II哺乳動(dòng)物&反芻t有蹄類動(dòng)物 20,22,11,12,-1 ,25 , 20,22,11,13,-1 ,24 , 23,14,15,12,-1 ,27 ,II哺乳動(dòng)物&食肉動(dòng)物&有黃褐色皮毛&有暗斑點(diǎn)t豹II哺乳動(dòng)物&食肉動(dòng)物&有黃褐色皮毛&有黑色條紋t虎II有蹄類動(dòng)物&長脖子&長腿&有暗斑點(diǎn)T長頸鹿 23,13,-1 ,26 ,II有蹄類動(dòng)物&有黑色條紋t斑馬 21,16,14,15,18,-1 ,29 ,II鳥&不會(huì)飛&長脖子&長腿

20、&黑白兩色t鴕鳥 21,16,17,18,-1 ,28 ,II鳥&不會(huì)飛&會(huì)游泳&黑白兩色t企鵝 21,19,-1 ,24 ;II鳥&善飛T信天翁int facts30 = 0 ;II記錄被選擇的事實(shí),初始化都為0,被選擇后賦值為1 void list(); II列出事實(shí)可供描述者選擇void input(); II描述者輸入特征事實(shí)int deduce(); II推理機(jī)根據(jù)既得事實(shí)推理int animal( int facts ); II判斷知識(shí)庫中是否有符合描述的動(dòng)物 void list() II列出事實(shí)可供描述者選擇int i;for (i = 0;i = 30;i+)factsi =

21、0;for (i = 0;i24;i+)if (i % 4 = 0 & i != 0) cout endl; / 每列出 4 個(gè)事實(shí)換行printf( %-15s , animalBasei); / 列出前 24 個(gè)事實(shí)void input() II描述者輸入特征事實(shí)int f = 0; I/f用于接收描述者輸入的特征編號(hào)cout f;if (f = 0 & f = 23)factsf = 1; II接收描述者輸入的事實(shí),并在flag數(shù)組將其賦值為1II其余未接收的事實(shí)仍為0else if (f != -1)cout error!請(qǐng)輸入023之間的數(shù)字! endl; II因?yàn)檫@里接收的事實(shí)僅限0-23區(qū)間內(nèi)cin. clear();int deduce()cin.syn c();II推理機(jī)根據(jù)既得事實(shí)推理int f;int i, j;int out1;cout endl;for (i = 0;i15;i+) II依次對(duì)15條規(guī)則進(jìn)行檢測j = 0;f = rulei.c on diti on j;while (f != -1) II推理是否滿足第i條規(guī)則if (factsf = 0)/第i條規(guī)則有一個(gè)條件不滿足,即為不滿足該條規(guī)則break;/從此次i規(guī)則檢驗(yàn)循環(huán)中跳出j+;f = rulei.conditionj;/取出i規(guī)則中所需的條件序號(hào)if (f =

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論