產(chǎn)生式系統(tǒng)實(shí)驗(yàn)報(bào)告_第1頁
產(chǎn)生式系統(tǒng)實(shí)驗(yàn)報(bào)告_第2頁
產(chǎn)生式系統(tǒng)實(shí)驗(yàn)報(bào)告_第3頁
產(chǎn)生式系統(tǒng)實(shí)驗(yàn)報(bào)告_第4頁
產(chǎn)生式系統(tǒng)實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

學(xué)生實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)課名稱:人工智能實(shí)驗(yàn)項(xiàng)目名稱:動(dòng)物識(shí)別系統(tǒng)專業(yè)名稱:計(jì)算機(jī)科學(xué)與技術(shù)班級(jí):2012240201學(xué)號(hào):201224020102學(xué)生姓名:張璐教師姓名:陳亮亮2014年12月13日實(shí)驗(yàn)日期:2014年_12_月_4_日 實(shí)驗(yàn)室名稱: 明遠(yuǎn)2202—?實(shí)驗(yàn)名稱:動(dòng)物識(shí)別系統(tǒng)二?實(shí)驗(yàn)?zāi)康呐c要求:利用產(chǎn)生式規(guī)則構(gòu)建一個(gè)簡單的專家系統(tǒng)1、 確定推理方法(正向還是反向),并根據(jù)問題設(shè)計(jì)實(shí)現(xiàn)一個(gè)簡單的不通用推理機(jī)(匹配、沖突消解)2、 規(guī)則庫要求至少包含15條規(guī)則3、 初始事實(shí)可以任意給定,輸入初始事實(shí)后能夠得到推理結(jié)果4、 設(shè)計(jì)人機(jī)界面,解釋模塊提供查詢規(guī)則的功能5、 可以不考慮知識(shí)庫管理模塊6、 提交實(shí)驗(yàn)報(bào)告7、 報(bào)告中要有推理樹三?實(shí)驗(yàn)內(nèi)容:產(chǎn)生式系統(tǒng)是由一組規(guī)則組成的、能夠協(xié)同作用的推理系統(tǒng)。其模型是設(shè)計(jì)各種智能專家系統(tǒng)的基礎(chǔ).產(chǎn)生式系統(tǒng)主要由規(guī)則庫、綜合數(shù)據(jù)庫和推理機(jī)三大部分組成。本實(shí)驗(yàn)環(huán)境主要提供一個(gè)能夠?qū)崿F(xiàn)模擬產(chǎn)生式專家系統(tǒng)的驗(yàn)證、設(shè)計(jì)和開發(fā)的可視化操作平臺(tái)。學(xué)生既能用本系統(tǒng)提供的范例進(jìn)行演示或驗(yàn)證性實(shí)驗(yàn),也能夠用它來設(shè)計(jì)并調(diào)試自己的實(shí)驗(yàn)?zāi)P?。產(chǎn)生式系統(tǒng)用來描述若干個(gè)不同的以一個(gè)基本概念為基礎(chǔ)的系統(tǒng),這個(gè)基本概念就是產(chǎn)生式規(guī)則或產(chǎn)生式條件和操作對(duì)。在產(chǎn)生式系統(tǒng)中,論域的知識(shí)分為兩部分:用事實(shí)表示靜態(tài)知識(shí);用產(chǎn)生式規(guī)則表示推理過程和行為。自己建造產(chǎn)生式系統(tǒng)(包括規(guī)則庫和事實(shí)庫),然后進(jìn)行推理,即可以自己輸入任何的規(guī)則和事實(shí),并基于這種規(guī)則和事實(shí)進(jìn)行推理。這為學(xué)生親手建造產(chǎn)生式系統(tǒng)并進(jìn)行推理提供了一種有效的實(shí)驗(yàn)環(huán)境。四?算法描述:1、 定義變量,包括變量名和變量的值。2、 建立規(guī)則庫,其方法是,(a)輸入規(guī)則的條件:每條規(guī)則至少有一個(gè)條件和一個(gè)結(jié)論,選擇變量名,輸入條件(符號(hào));選擇變量值,按確定按鈕就完成了一條條件的輸入。重復(fù)操作,可輸入多條條件;(b)輸入規(guī)則的結(jié)論:輸入完規(guī)則的條件后,就可以輸入規(guī)則的結(jié)論了,每條規(guī)則必須也只能有一個(gè)結(jié)論。選擇變量名,輸入條件(符號(hào)),選擇變量值,按確定按鈕就完成了一個(gè)結(jié)論的輸入。重復(fù)以上兩步,完成整個(gè)規(guī)則庫的建立。3、 建立事實(shí)庫(總數(shù)據(jù)庫):建立過程同步驟2。重復(fù)操作,可輸入多條事實(shí)。4、 然后按“確定”按鈕即可。此外,利用實(shí)例演示,可以運(yùn)行系統(tǒng)默認(rèn)的產(chǎn)生式系統(tǒng),并且可以進(jìn)行正反向推理。五?源程序:主要函數(shù)代碼如下:intCAnimalDlg::inference(void){intn=2;intti;inti,j;inttres;for(i=0;ivl5;i++){j=0;ti=rule[i].relation[j];while(ti!=-1)〃-1作為結(jié)束{if(flag[ti]==0)break;else{j++;ti=rule[i].relation[j];}}if(ti==-l)//ti==-l代表規(guī)則滿足{tres=rule[i].name;flag[tres]=1;j=0;while(rule[i].relation[j]!=-1){j++;}if(feature[tres]=="這是企鵝哦"llfeature[tres]=="這是信天翁哦"llfeature[tres]=="這是鴕鳥哦"llfeature[tres]=="這是斑馬哦"llfeature[tres]=="這是長頸鹿哦"llfeature[tres]=="這是虎哦"llfeature[tres]=="這是金錢豹哦"){n=1;UpdateData(true);m_print1=feature[tres];UpdateData(false);}else{n=0;}}}if(n==0){UpdateData(true);m_print1="這是什么動(dòng)物?人家不知道啦";UpdateData(false);}return0;}voidCAnimalDlg::input(void){intti=0;for(inti=0;iv24;i++){flag[i]=0;}}voidCAnimalDlg::OnBnClickedButtonl(){inference();}voidCAnimalDlg::OnBnClickedButton2(){for(inti=0;i<24;i++){flag[i]=0;}((CButton*)GetDlgItem(IDC_CHECK1))->SetCheck(BST_UNCHECKED);((CButton*)GetDlgItem(IDC_CHECK2))->SetCheck(BST_UNCHECKED);((CButton*)GetDlgItem(IDC_CHECK3))->SetCheck(BST_UNCHECKED);((CButton*)GetDlgItem(IDC_CHECK4))->SetCheck(BST_UNCHECKED);((CButton*)GetDlgItem(IDC_CHECK5))->SetCheck(BST_UNCHECKED);((CButton*)GetDlgItem(IDC_CHECK6))->SetCheck(BST_UNCHECKED);((CButton*)GetDlgItem(IDC_CHECK7))->SetCheck(BST_UNCHECKED);((CButton*)GetDlgItem(IDC_CHECK8))->SetCheck(BST_UNCHECKED);((CButton*)GetDlgItem(IDC_CHECK9))->SetCheck(BST_UNCHECKED);((CButton*)GetDlgItem(IDC_CHECK10))->SetCheck(BST_UNCHECKED);((CButton*)GetDlgItem(IDC_CHECK11))->SetCheck(BST_UNCHECKED);((CButton*)GetDlgItem(IDC_CHECK12))->SetCheck(BST_UNCHECKED);((CButton*)GetDlgItem(IDC_CHECK13))->SetCheck(BST_UNCHECKED);((CButton*)GetDlgItem(IDC_CHECK14))->SetCheck(BST_UNCHECKED);((CButton*)GetDlgItem(IDC_CHECK15))->SetCheck(BST_UNCHECKED);((CButton*)GetDlgItem(IDC_CHECK16))->SetCheck(BST_UNCHECKED);((CButton*)GetDlgItem(IDC_CHECK17))->SetCheck(BST_UNCHECKED);((CButton*)GetDlgItem(IDC_CHECK19))->SetCheck(BST_UNCHECKED);((CButton*)GetDlgItem(IDC_CHECK20))->SetCheck(BST_UNCHECKED);((CButton*)GetDlgItem(IDC_CHECK21))->SetCheck(BST_UNCHECKED);((CButton*)GetDlgItem(IDC_CHECK22))->SetCheck(BST_UNCHECKED);((CButton*)GetDlgItem(IDC_CHECK23))->SetCheck(BST_UNCHECKED);((CButton*)GetDlgItem(IDC_CHECK24))->SetCheck(BST_UNCHECKED);((CButton*)GetDlgItem(IDC_CHECK25))->SetCheck(BST_UNCHECKED);GetDlgItem(IDCCHECK1)->EnableWindow(true);GetDlgItem(IDC_CHECK2)->EnableWindow(true);GetDlgItem(IDC_CHECK3)->EnableWindow(true);GetDlgItem(IDC_CHECK4)->EnableWindow(true);GetDlgItem(IDC_CHECK5)->EnableWindow(true);GetDlgItem(IDC_CHECK6)->EnableWindow(true);GetDlgItem(IDC_CHECK7)->EnableWindow(true);GetDlgItem(IDC_CHECK8)->EnableWindow(true);GetDlgItem(IDC_CHECK9)->EnableWindow(true);GetDlgItem(IDC_CHECK10)->EnableWindow(true);GetDlgItem(IDC_CHECKll)->EnableWindow(true);GetDlgItem(IDC_CHECK12)->EnableWindow(true);GetDlgItem(IDC_CHECK13)->EnableWindow(true);GetDlgItem(IDC_CHECK14)->EnableWindow(true);GetDlgItem(IDC_CHECK15)->EnableWindow(true);GetDlgItem(IDC_CHECK16)->EnableWindow(true);GetDlgItem(IDC_CHECK17)->EnableWindow(true);GetDlgItem(IDC_CHECK19)->EnableWindow(true);GetDlgItem(IDC_CHECK20)->EnableWindow(true);GetDlgItem(IDC_CHECK21)->EnableWindow(true);GetDlgItem(IDC_CHECK22)->EnableWindow(true);GetDlgItem(IDC_CHECK23)->EnableWindow(true);GetDlgItem(IDC_CHECK24)->EnableWindow(true);GetDlgItem(IDC_CHECK25)->EnableWindow(true);OnBnClickedButton1();}voidCAnimalDlg::OnEnChangeEdit1(){}voidCAnimalDlg::OnBnClickedButton3(){UpdateData(true);m_print2="若某動(dòng)物產(chǎn)奶,則它是哺乳動(dòng)物。\r\n若某動(dòng)物有毛,則它是哺乳動(dòng)物。\r\n若某動(dòng)物有羽毛,則它是鳥。\r\n若某動(dòng)物會(huì)飛且生蛋,則它是鳥。\r\n若某動(dòng)物有爪且有犬齒且目盯前方,則它是食肉動(dòng)物。\r\n若某動(dòng)物吃肉,則它是食肉動(dòng)物。\r\n若某動(dòng)物是哺乳動(dòng)物且有蹄,則它是有蹄動(dòng)物。\r\n若某動(dòng)物是哺乳動(dòng)物且反芻食物,則它是有蹄類動(dòng)物。\r\n若某動(dòng)物是哺乳動(dòng)物并且食肉動(dòng)物且黃褐色且有黑色條紋,則它是老虎。\r\n若某動(dòng)物是哺乳動(dòng)物且食肉動(dòng)物且黃褐色且有暗斑點(diǎn),則它是金錢豹。\r\n若某動(dòng)物是有蹄動(dòng)物且長腿且長脖子且有暗斑點(diǎn),則它是長頸鹿。\r\n若某動(dòng)物是有蹄動(dòng)物且白色且有黑色條紋,則它是斑馬。。r\n若某動(dòng)物是鳥且不會(huì)飛且長腿且長脖子且有黑白兩色,則它是駝鳥。\r\n若某動(dòng)物是鳥且不會(huì)飛且會(huì)游泳且有黑白兩色,則它是企鵝。\r\n若某動(dòng)物是鳥且善飛,則它是信天翁?!?;UpdateData(false);}voidCAnimalDlg::OnEnChangeEdit2(){}structRule//存放規(guī)則的結(jié)構(gòu)體{intrelation[100];intname;};structRule//存放規(guī)則的結(jié)構(gòu)體{intrelation[100];intname;};char*animal[]={"企鵝打海燕",”鴕鳥",”斑馬",”長頸鹿",”虎",”金錢豹"};char*feature[]={"有毛打產(chǎn)奶",”有羽毛打會(huì)飛",”會(huì)下蛋",”吃肉",”有犬齒",”有爪",”眼睛盯前方","有蹄",”反芻",‘黃褐色",”有斑點(diǎn)","有黑色條紋","長脖",”長腿","不會(huì)飛","會(huì)游泳","黑白兩色","善飛",”哺乳類",”鳥類",”肉食類",”蹄類",”這是企鵝哦",”這是信天翁哦","這是鴕鳥哦",”這是斑馬哦",”這是長頸鹿哦",”這是虎哦",”這是金錢豹哦"};Rulerule[15]={{{0,-1},20},〃規(guī)則0{{1,-1},20},〃規(guī)則1{{2,-1},21},〃規(guī)則2{{3,4,-1},21},〃規(guī)則3{{5,-1},22},〃規(guī)則4{{6,7,8,-1},22},〃規(guī)則5{{20,8,-1},23},〃規(guī)則6{{20,10,-1},23},〃規(guī)則7{{22,11,12,-1},30},〃規(guī)則8{{22,11,13,-1},29},〃規(guī)則9{{23,14,15,12,-1},28},〃規(guī)則10{{23,18,-1},27},〃規(guī)則11{{21,14,15,16,18,-1},26},〃規(guī)則12{{21,19,-1},25},〃規(guī)則1

溫馨提示

  • 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)論