![人工智能與專家系統(tǒng)試驗報告_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/9/2b6a3131-e34f-4d76-8efa-e6734751824c/2b6a3131-e34f-4d76-8efa-e6734751824c1.gif)
![人工智能與專家系統(tǒng)試驗報告_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/9/2b6a3131-e34f-4d76-8efa-e6734751824c/2b6a3131-e34f-4d76-8efa-e6734751824c2.gif)
![人工智能與專家系統(tǒng)試驗報告_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/9/2b6a3131-e34f-4d76-8efa-e6734751824c/2b6a3131-e34f-4d76-8efa-e6734751824c3.gif)
![人工智能與專家系統(tǒng)試驗報告_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/9/2b6a3131-e34f-4d76-8efa-e6734751824c/2b6a3131-e34f-4d76-8efa-e6734751824c4.gif)
![人工智能與專家系統(tǒng)試驗報告_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/9/2b6a3131-e34f-4d76-8efa-e6734751824c/2b6a3131-e34f-4d76-8efa-e6734751824c5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、.專業(yè)整理.暨南大學本科實驗報告專用紙課程名稱人工智能與專家系統(tǒng)成績評定0實驗項目名稱 動物識別系統(tǒng)設計指導教師0實驗項目編號實驗項目類型 綜合型0實驗地點 南校區(qū) 學生姓名學號0學院 信息科學技術學院 系 計算機科學系 專業(yè)0實驗時間2017年12月日- 年_月日 溫度濕度(一)實驗目的通過建立動物識別產生式系統(tǒng),理解并體會知識庫與控制系統(tǒng)相互獨立的智 能產生式系統(tǒng)與一般程序的區(qū)別。(二)實驗要求1. 系統(tǒng)的設計和完成可以使用各種編程語言和實用工具,不采用人工智能語 言和工具,這樣能夠使你更加了解專家系統(tǒng)。2. 推薦使用語言:C、java、php、javascript 、delphi。也可以
2、使用其他語 言。3如果使用數(shù)據(jù)庫做后臺,要求使用最簡單的 Access o4.系統(tǒng)可以使用圖形界面,簡單的也可以使用字符界面,不要求。(三)設計并完成知識庫本課程設計的主旨是設計并實現(xiàn)具有 15條規(guī)則能自動識別7種動物的產生 式系統(tǒng)。知識庫與控制系統(tǒng)相互獨立,系統(tǒng)完成后除了能識別已有的7種動物外, 按產生式知識表示方法向知識庫中添加、修改新的知識后,系統(tǒng)能在不修改控制 系統(tǒng)程序的情況下仍然能正確識別。1.綜合數(shù)據(jù)庫中數(shù)據(jù)結構說明;產生式通過滿足前件,得到后件的結論或者執(zhí)行后件的相應動作, 即后 件由前件來觸發(fā)。同時,一個產生式生成的結論可以作為另一個產生式的前提或語言變量使用,進一步可構成產生
3、式系統(tǒng)。因此在通過有關特征識別動物的特征中規(guī)定:識別動物的前件(即動物的特征):0:有毛發(fā)1:有奶2:有羽毛3:會飛4:會生蛋5:吃肉6:有鋒利牙齒7:有爪8:眼向前方9:有蹄10:反芻11:黃褐色皮毛12:有暗斑點13:有黑色條紋 14:長脖子15:長腿16:不會飛17:會游泳18:黑白二色19:善飛產生的中間結果(即動物的類別)20:哺乳動物 最終結論:|21.鳥22.食肉動物23.有蹄類動物24.虎 25.豹26.斑馬27.長頸鹿28.企鵝29.鴕鳥30.信天翁于是在綜合數(shù)據(jù)庫中,將設定int型數(shù)組facts30,數(shù)組的編號對應 著以上事實的編號,數(shù)組的值為1時,意味著對應編號的事實為真
4、,否則為假。2. 規(guī)則的格式的數(shù)據(jù)結構說明;每條規(guī)則都擁有前件與后件,建立規(guī)則的數(shù)據(jù)結構時將前件與后件定義 即可。前件往往有一個或多個,而后件只有一個。為了方便采用序號代替前后件, 因此定義前件為數(shù)組int condition6;定義后件int outcome;規(guī)則的數(shù)據(jù)結構也隨之敲定。typedef struct /存放規(guī)則的結構體,由條件和結果構成皆用序號int型表示int condition6;/ 條件int outcome; / 結論Rule;將15條規(guī)則轉化為符號:0,20,有毛發(fā)一哺乳動物1,20,有奶一哺乳動物2,21,有羽毛一鳥3,4,21,會飛&會生蛋一鳥5,22,吃肉一食肉
5、動物6,7,8,22,有鋒利牙齒&有爪別眼向前方一食肉動物20,8,23,哺乳動物&有蹄一有蹄類動物20,9,23,哺乳動物&反芻一有蹄類動物20,22,11,12,25,哺乳動物&食肉動物&有黃褐色皮毛&有暗斑點一豹20,22,11,13,24,哺乳動物&食肉動物&有黃褐色皮毛&有黑色條紋-虎23,14,15,12,27,有蹄類動物&長脖子&長腿&有暗斑點一長頸鹿23,13,26,有蹄類動物&有黑色條紋一斑馬21,16,14,15,18,29,鳥&不會飛&長脖子&長腿&黑白兩色一鴕鳥21,16,17,18,28,鳥&不會飛&會游泳&黑白兩色一企鵝21,19,24;鳥&善飛一信天翁3. 推理機
6、(包括正向和反向推理)過程。在上述規(guī)則的基礎上,可以利用推理機對給出條件進行推理:(1)正向推理:從下向上進行推理。在建立規(guī)則庫時需要使子規(guī)則在父規(guī)則前。在進行正向推理是只要將規(guī)則庫從前到后遍歷下來看是否能由給定規(guī)則推出 相應結果即可。通過判斷每次與規(guī)則匹配得到的結果,如果結果不是動物, 則更新事實庫,將此次結果作為前件匹配下一個規(guī)則。若有多條規(guī)則可用, 則使用沖突消解策略,選取一條規(guī)則執(zhí)行。直到最終結果是動物時,視為 推理成功。具體步驟如下:a. 輸入得到當前事實facts,針對15條rules輪流篩查可用規(guī) 貝U。b. 將rules所需的前件提取出來與facts中的事實進行比對。若有 多條
7、規(guī)則可用時,沖突消解的方法是:選取規(guī)則表rules中順序最前的規(guī) 貝U。找到可用規(guī)則。擴充facts,重復b步驟。c. 在無可擴充時,檢查facts ,若其中沒有結果是動物,則推理失.學習幫手.專業(yè)整理.?。蝗羝渲型评沓龀^兩個動物時,仍記為推理失敗。在只有一個結果是 動物時,則推理成功。(2)反向推理:反向推理的思路是從事實庫的動物開始從前向后進行匹配,如果所 有動物都不能推出為識別失敗,若能推出其中一個,則識別成功。若有多 條規(guī)則可用,則從中選出一條規(guī)則,將規(guī)則的前件添加到綜合數(shù)據(jù)庫。具體步驟如下:a. 假設有動物m若其已經在facts中,則假設成立搜索終止。b. 若該假設動物不在fact
8、s中,則從rules中所有后件中含有該動 物m的規(guī)則組成表。若該表為空,貝U詢問用戶 fact的真假,若為真,則 將fact添加到facts,搜索中止。c. 若該表不為空,則逐個判斷表內規(guī)則是否有規(guī)則的全部前件都包 含在facts中,如果有,則證明假設可以直接被推出。識別成功。d. 如果不能直接推出,則重新進行步驟b,直至滿足步驟c。這時, 我們認為假設可以被間接推出,識別成功。否則若沒有可用規(guī)則,則識別 失敗。(四)開發(fā)環(huán)境1. 工具:C-free 5.02. 語言:C+3.OS平臺說明:win10(五)綜合數(shù)據(jù)庫與推理機1.綜合數(shù)據(jù)庫char *a nimalBase = 0.有毛發(fā),1.
9、有奶,2.有羽毛,3.會飛,4.會生蛋,5 .吃肉,6.有鋒利牙齒,7.有爪,8.眼向前方,9.有蹄, 10.反芻, 11.有黃褐色皮毛,12.有暗斑點,13.有黑色條紋, 14.長脖子, 15.長腿, 16.不會飛,17.會游泳, 18.黑白二色, 19.善飛I!20.哺乳動物,21.鳥,22.食肉動物,23.有蹄類動物,24.虎,25.豹, 26.斑馬,27.長頸鹿,28.企鵝,29.鴕鳥,30.信天翁;5.學習幫手.專業(yè)整理.對應以上特征,設定整型數(shù)組存儲求解過程中產生的各種信息,包括初始 事實、推理得到的中間結論,以及最終結論。int facts30 = 0 ;/記錄被選擇的事實,初始
10、化都為0,被選擇后賦值為1對三種不同的信息進行區(qū)分的方法是利用序號區(qū)間進行區(qū)分。0-19序號部分是存放原始信息,20-23存放的是中間結論,24-30存放了最后的結論。2.推理機推理部分主要使用了兩個函數(shù),分別是 deduce函數(shù)和animal函數(shù)。Deduce函數(shù)是用于根據(jù)原始信息,進行規(guī)則的遍歷,不斷正向推理的函 數(shù);animal函數(shù)是利用deduce函數(shù)推理得出的facts數(shù)組,即綜合數(shù)據(jù)庫,進 行結果的判斷,如果推理得出的結果唯一,則返回推理成功的信息,輸出最終的 結果,否則判定為推理失敗。for (i = 0;i15;i+)/依次對15條規(guī)則進行檢測j = 0;f = rulei.c
11、on diti on j;while (f != -1)/推理是否滿足第i條規(guī)則if (factsf = 0)/第i條規(guī)則有一個條件不滿足,即為不滿足該條規(guī)則break;/從此次i規(guī)則檢驗循環(huán)中跳岀j+;f = rulei.conditionj;/取岀i規(guī)則中所需的條件序號if (f = -1)/若經過上一個循環(huán)有f=-1 ,則代表滿足第i條規(guī)則out1 = rulei.outcome;factsout1 = 1;/將得岀的結論加入已知事實printf(運用了規(guī)則(%d) :, i);/并輸岀所用規(guī)則,以便查看j = 0;while (rulei.conditionj != -1)cout a
12、nimalBaserulei.conditionj ; / 輸岀規(guī)則所用先決條件j+;cout animalBaseout1 endl; / 輸岀規(guī)則所用結果上述就是Deduce函數(shù)的主要內容,取出每一條規(guī)則的全部前件與事實庫facts中進行比對,若滿足該規(guī)則,則該規(guī)則的后件將會被擴充到facts數(shù)組中, 同時也文字輸出,以便使用者確認運行過程中使用的規(guī)則。遍歷完15條規(guī)則后,facts數(shù)組中就存放了推理得出的全部事實。接下來就將facts數(shù)組傳入animal函數(shù),從綜合數(shù)據(jù)庫中遴選最終結論:int animal( int facts ) /判斷知識庫中是否有符合描述的動物int i = 24
13、, a = 0, b = 0;/判斷有多少結果滿足特定動物區(qū)間while (i 2,說明有多個動物滿足描述條件,仍然不能確定最終結果。 只有當a=1時,有唯一的動物符合描述,這時推理成功,返回該動物的編號并輸 出。(六) 實驗結果1.輸入0 5 11 12 -1(這里末尾輸入-1代表結束輸入)3會飛7 一有爪1L有黃褐色皮毛15.往陰la H飛21看蹄類動物即輸入有毛發(fā)、吃肉、有黃褐色皮毛、有暗斑點這四個特點,讓系統(tǒng)進行 推理。可得到唯一的結果:豹0一有毛發(fā)L有奶2有羽毛4一會生蛋匚有鋒利牙憐艮眼向前方9.10,反芻12.有時斑點 有黑色條紅14,棧脖子 応不會飛17.fr游泳13.白二色加哺
14、乳功物21鳥22食離動初請輸入動物特征蕭號(-1): 0 0 11 1 1RULE(O): 0.有毛發(fā) 20.哺乳勃物25. ftRULE 眾一債肉動物RULE:ZOL哺乳劫物ZZ.-fr肉劫物1L有黃趨色皮毛12-Wffi斑點慨終推理蟲您所描述的動物為:跆是否堇新推理:(Y/M2.輸入0 2 3 14 17 -1即輸入有毛發(fā)、有羽毛、會飛、長脖子、會游泳這五個特點交由程序進行推理。由于不存在這樣的動物,因此結果是:1.WW2-有羽毛3一會飛4.余牛慣5吃肉6.有鐳利牙齒7 WMS.眼向前方d有瑋10.反芻1L有黃褐色皮毛吐有暗斑點13.有黑邑黑紋14.栓脖子15.區(qū)腿不會飛17.會游泳18.
15、黑自二色19,善飛20.哺乳勁物21.fi22合肉功軻23.有蹄類動物聲輸人動皈特征辭導結東);0 2 3 14 17 -1klE(O):反有W發(fā) Z0,哺乳動物KITE(2): 有期毛 21.鳥推理失?。]有芫全符合條件的動物.是習重新推理,:Y/N)3.輸入20 22 11 12 13 -1即輸入哺乳動物、食肉動物、有黃褐色皮毛、有暗斑點、有黑色條紋,根據(jù)這五個特點可以推導出兩種動物:豹和虎。因此也無法推理出正確的結果卩有毛喪1 一克奶2-有羽毛3一盤飛5.吃肉6.有粋耗牙齒7.WM8.眼向前方9.右蹄10.反芻1L有黃福色皮毛有昂丟點1生有黑隹條紋2一長畔子is 屜BB16.瑋會飛1會游
16、沬1圧黑白二色19.善飛面-哺乳幼柳21.522.肉動物23有眸類動物聲輸入動物特征絢號卜1軸束):20 器 11 1Z 13-1Rllt -lB) : 20. 25.fiRL1E(9)! 20. 乳砂物 盟-您肉動物11.有黃福色皮毛1工有詈色條紋- 24.虎推理失??!沒有完全符合爭件的動物口辱否篁新推理:(V/N)(七)實驗體會通過本次實驗我對于人工智能的產生式系統(tǒng)有了進一步的認識,對于正向推理、反向推理兩種基本方式的原理和步驟都加深了理解。尤其是通過設計正向推理機,深切體會到了專家系統(tǒng)是根據(jù)知識和推理來求解問題的,這種模式與普通程序完全不同,就像我平日里處理問題時,是收集信息,而后根據(jù)常
17、識與知識 得出自己的結論這樣的模式,在寫這次實驗的過程中帶來了很新奇的編程體驗, 讓我受益匪淺。(八)源代碼#include #inelude using n amespace std;char *results = 虎,豹,斑馬,長頸鹿,”企鵝,鴕鳥,信天翁;char *animalBase = 0.有毛發(fā),1.有奶,2.有羽毛,3.會飛,4.會生蛋,5.吃肉,”6.有鋒利牙齒,7.有爪,”8.眼向前方,”9.有蹄, 10.反芻,11.有黃褐色皮毛 ,12.有暗斑點”,13.有黑色條紋,”14.長脖子”,15.長腿”,16.不會飛”,17.會游泳 ,18.黑白二色, 19.善飛,20.哺乳動
18、物,21.鳥, 22.食肉動物,23.有蹄類動物,24.虎 ”,25.豹 ”,”26.斑馬 ”,27.長頸鹿,28.企鵝 ”,”29.鴕鳥 ”,”30.信天翁 ” ;typedef struct /存放規(guī)則的結構體,由條件和結果構成皆用序號int型表示int condition6;/條件,末尾用-1表示結束int outcome; / 結論 Rule;/有毛發(fā)t哺乳動物/有奶t哺乳動物/有羽毛t鳥/會飛&會生蛋t鳥Rule rule15 = / 定義 15 個規(guī)則 0,-1 ,20 , 1,-1 ,20 , 2,-1 ,21 , 3,4,-1 ,21 , 5,-1 ,22 , II吃肉t食肉動
19、物 6,7,8,-1 ,22 ,II有鋒利牙齒&有爪&眼向前方t食肉動物 20,8,-1 ,23 , 20,9,-1 ,23 ,II哺乳動物&有蹄t有蹄類動物II哺乳動物&反芻t有蹄類動物 20,22,11,12,-1 ,25 , 20,22,11,13,-1 ,24 , 23,14,15,12,-1 ,27 ,II哺乳動物&食肉動物&有黃褐色皮毛&有暗斑點t豹II哺乳動物&食肉動物&有黃褐色皮毛&有黑色條紋t虎II有蹄類動物&長脖子&長腿&有暗斑點T長頸鹿 23,13,-1 ,26 ,II有蹄類動物&有黑色條紋t斑馬 21,16,14,15,18,-1 ,29 ,II鳥&不會飛&長脖子&長腿
20、&黑白兩色t鴕鳥 21,16,17,18,-1 ,28 ,II鳥&不會飛&會游泳&黑白兩色t企鵝 21,19,-1 ,24 ;II鳥&善飛T信天翁int facts30 = 0 ;II記錄被選擇的事實,初始化都為0,被選擇后賦值為1 void list(); II列出事實可供描述者選擇void input(); II描述者輸入特征事實int deduce(); II推理機根據(jù)既得事實推理int animal( int facts ); II判斷知識庫中是否有符合描述的動物 void list() II列出事實可供描述者選擇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 個事實換行printf( %-15s , animalBasei); / 列出前 24 個事實void input() II描述者輸入特征事實int f = 0; I/f用于接收描述者輸入的特征編號cout f;if (f = 0 & f = 23)factsf = 1; II接收描述者輸入的事實,并在flag數(shù)組將其賦值為1II其余未接收的事實仍為0else if (f != -1)cout error!請輸入023之間的數(shù)字! endl; II因為這里接收的事實僅限0-23區(qū)間內cin. clear();int deduce()cin.syn c();II推理機根據(jù)既得事實推理int f;int i, j;int out1;cout endl;for (i = 0;i15;i+) II依次對15條規(guī)則進行檢測j = 0;f = rulei.c on diti on j;while (f != -1) II推理是否滿足第i條規(guī)則if (factsf = 0)/第i條規(guī)則有一個條件不滿足,即為不滿足該條規(guī)則break;/從此次i規(guī)則檢驗循環(huán)中跳出j+;f = rulei.conditionj;/取出i規(guī)則中所需的條件序號if (f =
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建設工程質量安全監(jiān)督人員考試題庫含答案
- 全國青少年文化遺產知識大賽(小學組)參考試題庫(含答案)
- 年產1000萬件醫(yī)療用品及20000噸醫(yī)用復合材料建設項目可行性研究報告寫作模板-申批備案
- 2025年江西機電職業(yè)技術學院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 2025年武漢鐵路橋梁職業(yè)學院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 2025年曲靖醫(yī)學高等??茖W校高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 2025年新疆工業(yè)職業(yè)技術學院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 專題01 名詞(第02期) 帶解析
- 部編版語文五年級下冊第13課《人物描寫一組》精美課件
- 2025工業(yè)研發(fā)設計軟件行業(yè)趨勢分析與發(fā)展前景
- 2024-2025學年廣東省深圳市南山區(qū)監(jiān)測數(shù)學三年級第一學期期末學業(yè)水平測試試題含解析
- 廣東2024年廣東金融學院招聘專職輔導員9人筆試歷年典型考點(頻考版試卷)附帶答案詳解
- 江蘇省南京鼓樓區(qū)2024年中考聯(lián)考英語試題含答案
- 兒科護理學試題及答案解析-神經系統(tǒng)疾病患兒的護理(二)
- 15篇文章包含英語四級所有詞匯
- 王陽明心學完整版本
- 四年級上冊豎式計算300題及答案
- 課題研究實施方案 范例及課題研究方法及技術路線圖模板
- 牙髓炎中牙髓干細胞與神經支配的相互作用
- 【2022屆高考英語讀后續(xù)寫】主題升華積累講義及高級句型積累
- 西方法律思想史ppt
評論
0/150
提交評論