實驗一產(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頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實驗一 產(chǎn)生式系統(tǒng)動物識別系統(tǒng)一、實習(xí)目的和意義1、掌握人工智能的知識表示技術(shù),能用產(chǎn)生式表示法表示知識;2、掌握基于規(guī)則推理的基本方法;3、掌握產(chǎn)生式系統(tǒng)的運行機制。二、實習(xí)內(nèi)容參考教材規(guī)則庫包含15條規(guī)則,開發(fā)一個專家系統(tǒng)可以識別老虎,金錢豹,斑馬,長頸鹿,企鵝,鴕鳥等6種動物。三、實習(xí)要求1、本次實驗語言MATLAB;2、系統(tǒng)能通過正向推理得到正確的動物識別結(jié)果。四、實習(xí)過程1. 實驗原理正向推理(事實驅(qū)動推理)1) 從初始已知事實出發(fā),在知識庫KB中找出當(dāng)前可適用的知識,構(gòu)成可適用知識集KS;2) 按某種沖突消解策略,從KS中選出一條知識進行推理,并將推出的新事實加入到數(shù)據(jù)庫DB中,作

2、為下一步推理的已知事實,再在KB中選取可適用知識構(gòu)成KS;3) 重復(fù)步驟二,直到求得問題的解,或KB中再無可適用的知識。2. 問題背景根據(jù)課本P33的15調(diào)動物識別的專家知識,建立規(guī)則庫。3. 算法設(shè)計主要利用數(shù)組下標(biāo)和元素的0,1值表示知識,規(guī)則,及相關(guān)標(biāo)記。4. Matlab實現(xiàn)a. 算法函數(shù)名函數(shù)說明learnfunction learn(arr_category, arr_feature)主函數(shù)checkRulefunction arr_category,arr_feature,arr_rule,ifMore,mark= checkRule(arr_category,arr_featu

3、re,arr_rule,ifMore,mark )規(guī)則符合檢測showCategoryfunction showCategory( )類別選項打印函數(shù)showFeaturefunction showFeature()特征選項打印函數(shù)showResultfunction showResult(mark)結(jié)果顯示b. 測試測試數(shù)據(jù)一arr_category51 0 0 0 1arr_feature200 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0測試數(shù)據(jù)二arr_category50 0 0 0 0arr_feature201 0 0 0 0 0 0 0 0 0 0

4、 0 0 0 0 0 0 0 0 0五、實習(xí)總結(jié)1.實習(xí)總結(jié)本次實驗主要復(fù)習(xí)了產(chǎn)生式規(guī)則,利用正向推理和15條規(guī)則,建立簡單的動物識別專家系統(tǒng),并具有一定的容錯性。2.附錄:代碼MATLAB代碼:function learn(arr_category, arr_feature)%產(chǎn)生式規(guī)則-正向推理-主函數(shù)% 標(biāo)記函數(shù)初始化,規(guī)則函數(shù)調(diào)用arr_rule=zeros(1,15);mark=-1;ifMore=0;disp(arr_category);disp(arr_feature);%showCategory();%arr_category=input('輸入信息:');%s

5、howFeature();%arr_feature=input('輸入信息');arr_category,arr_feature,arr_rule,ifMore,mark= checkRule(arr_category,arr_feature,arr_rule,ifMore,mark); busy=1;while busy=1 if mark>-1 showResult(mark); break; end if ifMore=0 disp('無法判斷具體是哪種動物!'); break end ifMore=0; arr_category,arr_featu

6、re,arr_rule,ifMore,mark= checkRule(arr_category,arr_feature,arr_rule,ifMore,mark);end endfunction arr_category,arr_feature,arr_rule,ifMore,mark= checkRule(arr_category,arr_feature,arr_rule,ifMore,mark )%正向推理函數(shù)% 逐條檢查規(guī)則是否滿足,若滿足,則增加新信息ifMore=0;for i = 1:1:15 if arr_rule(i)=0 switch i case 1 if arr_feat

7、ure(1)>0 arr_category(1)=1; arr_rule(i)=1; ifMore=1; disp('根據(jù)規(guī)則',num2str(i); disp('新增信息:該動物是哺乳動物'); end %break; case 2 if arr_feature(2)>0 arr_category(1)=1; arr_rule(i)=1; ifMore=1; disp('根據(jù)規(guī)則',num2str(i); disp('新增信息:該動物是哺乳動物'); end %break; case 3 if arr_featur

8、e(3)>0 arr_category(2)=1; arr_rule(i)=1; ifMore=1; disp('根據(jù)規(guī)則',num2str(i); disp('新增信息:該動物是鳥'); end %break; case 4 if arr_feature(4)*arr_feature(5)>0 arr_category(2)=1; arr_rule(i)=1; ifMore=1; disp('根據(jù)規(guī)則',num2str(i); disp('新增信息:該動物是鳥'); end %break; case 5 if arr

9、_feature(6)>0 arr_category(3)=1; arr_rule(i)=1; ifMore=1; disp('根據(jù)規(guī)則',num2str(i); disp('新增信息:該動物是食肉動物'); end %break; case 6 if arr_feature(7)*arr_feature(8)*arr_feature(9)>0 arr_category(3)=1; arr_rule(i)=1; ifMore=1; disp('根據(jù)規(guī)則',num2str(i); disp('新增信息:該動物是食肉動物'

10、); end %break; case 7 if arr_category(1)*arr_feature(10)>0 arr_category(4)=1; arr_rule(i)=1; ifMore=1; disp('根據(jù)規(guī)則',num2str(i); disp('新增信息:該動物是有蹄類動物'); end %break; case 8 if arr_category(1)*arr_category(5)>0 arr_category(4)=1; arr_rule(i)=1; ifMore=1; disp('根據(jù)規(guī)則',num2str

11、(i); disp('新增信息:該動物是有蹄類動物'); end %break; case 9 if arr_category(1)*arr_category(3)*arr_feature(11)*arr_feature(12)>0 arr_animal(2)=1; arr_rule(i)=1; ifMore=1; mark=2; disp('根據(jù)規(guī)則',num2str(i); end %break; case 10 if arr_category(1)*arr_category(3)*arr_feature(11)*arr_feature(13)>

12、0 arr_animal(1)=1; arr_rule(i)=1; ifMore=1; mark=1; disp('根據(jù)規(guī)則',num2str(i); end %break; case 11 if arr_category(4)*arr_feature(14)*arr_feature(15)*arr_feature(16)>0 arr_animal(4)=1; arr_rule(i)=1; ifMore=1; mark=4; disp('根據(jù)規(guī)則',num2str(i); end %break; case 12 if arr_category(4)*arr

13、_feature(13)>0 arr_animal(3)=1; arr_rule(i)=1; ifMore=1; mark=3; disp('根據(jù)規(guī)則',num2str(i); end %break; case 13 if arr_category(2)*arr_feature(14)*arr_feature(15)*arr_feature(17)*arr_feature(18)>0 arr_animal(6)=1; arr_rule(i)=1; ifMore=1; mark=6; disp('根據(jù)規(guī)則',num2str(i); end %break

14、; case 14 if arr_category(2)*arr_feature(19)*arr_feature(17)*arr_feature(18)>0 arr_animal(5)=1; arr_rule(i)=1; ifMore=1; mark=5; disp('根據(jù)規(guī)則',num2str(i); end %break; case 15 if arr_category(2)*arr_feature(20)>0 arr_animal(7)=1; arr_rule(i)=1; ifMore=1; mark=7; disp('根據(jù)規(guī)則',num2st

15、r(i); end end endend end function showCategory( )%類別選項顯示% disp('請選擇分類(1:是,0:其他):');disp('0.哺乳動物');disp('1.鳥');disp('2.食肉動物');disp('3.蹄類動物');disp('4.反芻動物');end function showFeature()%具體特征列表% 此處顯示詳細說明disp('請選擇具體特征(1:是,0:其他):');disp('0.有毛發(fā)'

16、;);disp('1.有奶');disp('2.有羽毛');disp('3.會飛');disp('4.會下蛋');disp('5.吃肉');disp('6.有犬齒');disp('7.有爪');disp('8.眼盯前方');disp('9.有蹄');disp('10.黃褐色');disp('11.身上有斑點');disp('12.身上有黑色條紋');disp('13.有長脖子');disp('14.有長腿');disp('15.身上有暗斑點');disp('16.不會飛');disp('17.有黑白兩色');disp('18.會游泳');disp('19.擅飛');endfunction showResult(mark)%結(jié)果顯示% 此處顯示詳細說明disp('*識別結(jié)果*');disp('該動物是:');s

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論