人工智能實(shí)驗(yàn)報告產(chǎn)生式系統(tǒng)推理動物識別_第1頁
人工智能實(shí)驗(yàn)報告產(chǎn)生式系統(tǒng)推理動物識別_第2頁
人工智能實(shí)驗(yàn)報告產(chǎn)生式系統(tǒng)推理動物識別_第3頁
人工智能實(shí)驗(yàn)報告產(chǎn)生式系統(tǒng)推理動物識別_第4頁
人工智能實(shí)驗(yàn)報告產(chǎn)生式系統(tǒng)推理動物識別_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、人工智能第二次實(shí)驗(yàn)報告產(chǎn)生式系統(tǒng)推理班級:姓名:學(xué)號:一、實(shí)驗(yàn)?zāi)康睦斫獠⒄莆债a(chǎn)生式系統(tǒng)的基本原理;掌握產(chǎn)生式系統(tǒng)的組成部分,以及正向推理和逆向推理過程。二、實(shí)驗(yàn)要求結(jié)合課本內(nèi)容,以動物識別系統(tǒng)為例,實(shí)現(xiàn)小型產(chǎn)生式系統(tǒng);要求:正向推理中能根據(jù)輸入的初始事實(shí),正確地識別所能識別的動物;逆向推理中能根據(jù)所給的動物給出動物的特征。三、實(shí)驗(yàn)算法如何表示事實(shí)和特征的知識;在本程序中,我將動物的特征寫入data.txt,將規(guī)則記入rules,txt,將動物種類記為goal.txt。方止兇發(fā)前毛爪犬螞毛視肉蹄羽飛蛋有有有有目臨有有會生丄Kadata,txt1浪點(diǎn)點(diǎn)紋物物物飛色渝鳳子斑斑築色動動動合白游飛怕腿脖

2、暗色色色褐肉乳蹄不黑會善不長長有白黒黒黃W烏哺有101112131415161710192021222324rules.txt24247-238*9-2324*0*1*4-2224*5-2224*6-2522*21*20-2622*21*19-2725*15*17*16*21-2S25*18*20-2923*10*16*15*11-3023*10*12*11-3123*13*14-32通過函數(shù)voidreadFiles()readGoal();readCod();readRule();讀入所有數(shù)據(jù)分別存放于goal,rule,cod自定義數(shù)組中。指出綜合數(shù)據(jù)庫和規(guī)則庫分別使用哪些函數(shù)實(shí)現(xiàn)的?綜

3、合數(shù)據(jù)庫(包括特征和目標(biāo))typedefstructintxuh;/存放編號charvalu50;/存放具體內(nèi)容Node;Nodegoal20;Nodecod50;voidreadGoal()FILE*p;inti:if(fp=fopen(mgoalr)=NULL)”printf(cannotopengoalXn):exitCO):i=0:u/hile(fscauf(fp,場d場日,fi.goali.xuhgoali-H-.valu)!=EOF):fclose(fp);/r&a.dGcal規(guī)則庫typedefstructintrslt;intcodNum;/記載前提的個數(shù)intcod10;/記

4、載前提的序號intused;/記載是否已匹配成功Nrule;Nrulerule50;voidreadRule()FILE*fp;inti;inttempxuh,tempcodn;charch;if(fp=fopen(rules.txt,r)=NULL)printf(cannotopendatan);exit(0);i=0;rulei.codNum=0;while(ch=fgetc(fp)!=EOF)if(i=14)i=i;tempcodn=0;while(ch!=n&ch!二EOF)/每一條規(guī)則tempxuh=0;while(ch=0)tempxuh二tempxuh*10+ch0;ch=fge

5、tc(fp);rulei.codtempcodn+=tempxuh;tempxuh=0;if(ch=-)/下一個是結(jié)論ch=fgetc(fp);ch=fgetc(fp);while(ch=0)tempxuh=tempxuh*10+ch-0;ch=fgetc(fp);rulei.rslt=tempxuh;/ifelseif(ch=*)ch=fgetc(fp);rulei.codNum+;i+;rulenum=i;fclose(fp);規(guī)則庫的匹配算法是什么?如何選用可用規(guī)則集中的規(guī)則?分別使用哪些函數(shù)實(shí)現(xiàn)的?程序中的正向與逆向搜索分別是在voidmain()中調(diào)用forwardFinger()和

6、backFinger()來實(shí)現(xiàn)的。正向搜索從下向上的推理。由于建立規(guī)則庫時的內(nèi)在要求,即子規(guī)則必在父規(guī)則前,故進(jìn)行正向推理的時候只要將規(guī)則庫從前到后掃一遍看是否能由規(guī)則推出相應(yīng)結(jié)果即可。如果能匹配推出結(jié)果則看該結(jié)果是否為動物,如果已經(jīng)推出動物則推理成功。否則更新事實(shí)庫,匹配下一個規(guī)則。代碼如下:voidforwardFinger()intflag;/l:工作已完成0:還未完成intflagFit;intflagCNew;/記錄本次循環(huán)有沒有推出新事實(shí)intfitPart;/l:有部分符合條件inti,j,k;flag=0;flagCNew=1;while(!flag&flagCNew=1)fl

7、agCNew=0;for(j=0;jrulenum&rulej.used!=l&flag=O;j+)/條規(guī)則辻(rulej.codNum二inpCod.curnum)/事實(shí)數(shù)不小于當(dāng)前規(guī)則所要求的條件數(shù)flagFit=1;for(i=0;irulej.codNum&flagFit=1;i+)fitPart=0;for(k=0;kinpCod.curnum;k+)if(rulej.codi=inpCod.codk.xuh)fitPart=1;flagFit=fitPart;if(flagFit=1)flagCNew=1;fitOneRule(j,&flag);/有事實(shí)匹配時,就處理把結(jié)論加入事實(shí)

8、庫等事情flagFit=0;/whileif(flagCNew=0)printf(條件不足,不能推出它是什么動物);逆向搜索反向推理比正向推理要復(fù)雜一些。采用的算法是從事實(shí)庫的動物開始從前往后進(jìn)行匹配,看是否能成功推出,如果都推不出能識別失敗,若能推出其中一個則中止搜索,識別成功。推某一個事實(shí)時,仍然是從該事實(shí)的前提出發(fā),逐個匹配,若所有的前提滿足,則該事實(shí)滿足。代碼如下:voidbackFinger()inti;bQueueNodemarkdCodMAXNUM;/stat字段用來存它的結(jié)論的序號intflagFitAll;intmarkdCodNum;doublefitDegree;intf

9、lagExistAns;flagFitAll=0;flagExistAns=0;for(i=0;igoalnum&flagFitAll=0;i+)/種動物initBack(&fitDegree,&markdCodNum,i);while(bqueue.head!=bqueue.tail)if(bqueue.head=9&bqueue.tail=11)bqueue.head=bqueue.head;findCod();recMarkdCod(markdCod,&markdCodNum);if(bqueue.bNodebqueue.head.stat=0)addNodeToQueue();take

10、ToClose(bqueue.bNodebqueue.head.codXuh,bqueue.tail-1);bqueue.head+;if(bqueue.head=bqueue.tail)if(close.head!=close.tail)takeTobqueue(close.head);fitDegree=workFitDegree(markdCod,markdCodNum);if(fitDegree1e-5)if(StillCodNoUseAndContradict(i+codnum)printf(它不是%s。n,goali.valu);elsebDisplayResultfitDegre

11、e,i,&flagFitAll);elseprintf(它不是%s。n,goali.valu);ifflagFitAll=l)flagExistAns=l;/forifflagExistAns=O)printf(綜上所述:沒有完全符合這些特征的動物。n);/backFinger()四、實(shí)驗(yàn)結(jié)果1.要求有實(shí)驗(yàn)運(yùn)行結(jié)果截圖,以及必要的說明;(1)有若干選擇動物特征的選擇列表;點(diǎn)物J齒斑色動號犬-W飛暗褐蹄序有吃主善征37154-159112241的物動前泳血知爪視飛乳已有fglwx輸2604目0481122V浪物飛刖動奶蹄肉有有不食0482261112占心發(fā)毛色斑毛羽白聲有有里喪黑鳥1593371112(2)輸入特征后,詢問使用者采用何種搜索方式(0:正向1:逆向)(3)正向搜索成功找到目標(biāo)后,程序顯示該動物名稱,否則“顯示條件不足無法判清輸入已知的動物的特征的序號,以一結(jié)束:!520-1青輸入序號(正向淚反向:卡件不足,不能推出它是什么動物(4)逆向搜索結(jié)果:2.對所實(shí)現(xiàn)的產(chǎn)生式系統(tǒng)進(jìn)行性能分析。在數(shù)據(jù)量小的情況下識別速度較快。但是我覺得這種識別用處不夠廣泛。所有的規(guī)則必須人工輸入不夠靈活,不能適應(yīng)突發(fā)狀況(如白虎)

溫馨提示

  • 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

提交評論