人工智能小型專(zhuān)家系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).docx
《人工智能小型專(zhuān)家系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).docx》由會(huì)員分享,可在線閱讀,更多相關(guān)《人工智能小型專(zhuān)家系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).docx(16頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 人工智能技術(shù)基礎(chǔ)實(shí)驗(yàn)報(bào)告 指導(dǎo)老師: 朱力 任課教師: 張勇 實(shí)驗(yàn)三 小型專(zhuān)家系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 一、實(shí)驗(yàn)?zāi)康? (1)增加學(xué)生對(duì)人工智能課程的興趣; (2)使學(xué)生進(jìn)一步理解并掌握人工智能prolog語(yǔ)言; (3)使學(xué)生加強(qiáng)對(duì)專(zhuān)家系統(tǒng)課程內(nèi)容的理解和掌握,并培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí)開(kāi)發(fā)智能系統(tǒng)的初步能力。 二、實(shí)驗(yàn)要求 (1)用產(chǎn)生式規(guī)則作為知識(shí)表示,用產(chǎn)生系統(tǒng)實(shí)現(xiàn)該專(zhuān)家系統(tǒng)。 (2)可使用本實(shí)驗(yàn)指導(dǎo)書(shū)中給出的示例程序,此時(shí)只需理解該程序,并增加自己感興
2、趣的修改即可;也可以參考該程序,然后用PROLOG語(yǔ)言或其他語(yǔ)言另行編寫(xiě)。 (3)程序運(yùn)行時(shí),應(yīng)能在屏幕上顯示程序運(yùn)行結(jié)果。 三、實(shí)驗(yàn)環(huán)境 在Turbo PROLOG或Visual Prolog集成環(huán)境下調(diào)試運(yùn)行簡(jiǎn)單的PROLOG程序。 四、實(shí)驗(yàn)內(nèi)容 建造一個(gè)小型專(zhuān)家系統(tǒng)(如分類(lèi)、診斷、預(yù)測(cè)等類(lèi)型),具體應(yīng)用領(lǐng)域由學(xué)生自選,具體系統(tǒng)名稱由學(xué)生自定。 五、實(shí)驗(yàn)步驟 1、專(zhuān)家系統(tǒng): 1.1建造一個(gè)完整的專(zhuān)家系統(tǒng)設(shè)計(jì)需完成的內(nèi)容: 1.用戶界面:可采用菜單方式或問(wèn)答方式。 2.知識(shí)庫(kù)(規(guī)則庫(kù)):存放產(chǎn)生式規(guī)則,庫(kù)中的規(guī)則可以增刪。 3.?dāng)?shù)據(jù)庫(kù):用來(lái)存放用戶回答的問(wèn)題、已知事實(shí)
3、、推理得到的中 間事實(shí)。 4.推理機(jī):如何運(yùn)用知識(shí)庫(kù)中的規(guī)則進(jìn)行問(wèn)題的推理控制,建議 用正向推理。 5.知識(shí)庫(kù)中的規(guī)則可以隨意增減。 1.2推理策略 推理策略包括:正向(數(shù)據(jù)驅(qū)動(dòng)),反向(目標(biāo)驅(qū)動(dòng)),雙向 2、動(dòng)物分類(lèi)實(shí)驗(yàn)規(guī)則集 (1)若某動(dòng)物有奶,則它是哺乳動(dòng)物。 (2)若某動(dòng)物有毛發(fā),則它是哺乳動(dòng)物。 (3)若某動(dòng)物有羽毛,則它是鳥(niǎo)。 (4)若某動(dòng)物會(huì)飛且生蛋,則它是鳥(niǎo)。 (5)若某動(dòng)物是哺乳動(dòng)物且有爪且有犬齒且目盯前方,則它是食肉動(dòng)物。 (6)若某動(dòng)物是哺乳動(dòng)物且吃肉,則它是食肉動(dòng)物。 (7)若某動(dòng)物是哺乳動(dòng)物且有蹄,則它是有蹄動(dòng)物。 (8)若某動(dòng)物是有蹄動(dòng)
4、物且反芻食物,則它是偶蹄動(dòng)物。 (9)若某動(dòng)物是食肉動(dòng)物且黃褐色且有黑色條紋,則它是老虎。 (10)若某動(dòng)物是食肉動(dòng)物且黃褐色且有黑色斑點(diǎn),則它是獵豹。 (11)若某動(dòng)物是有蹄動(dòng)物且長(zhǎng)腿且長(zhǎng)脖子且黃褐色且有暗斑點(diǎn),則它是長(zhǎng)頸鹿。 (12)若某動(dòng)物是有蹄動(dòng)物且白色且有黑色條紋,則它是斑馬。 (13)若某動(dòng)物是鳥(niǎo)且不會(huì)飛且長(zhǎng)腿且長(zhǎng)脖子且黑白色,則它是駝鳥(niǎo)。 (14)若某動(dòng)物是鳥(niǎo)且不會(huì)飛且會(huì)游泳且黑白色,則它是企鵝。 (15)若某動(dòng)物是鳥(niǎo)且善飛且不怕風(fēng)浪,則它是海燕。 3、實(shí)驗(yàn)具體步驟 本實(shí)驗(yàn)用正向推理策略來(lái)完成,實(shí)現(xiàn)推理機(jī)的程序與知識(shí)庫(kù)的具體內(nèi)容無(wú)關(guān),對(duì)知識(shí)庫(kù)的修改不需要改動(dòng)推理
5、機(jī)。 1、充分理解知識(shí)庫(kù)現(xiàn)有知識(shí),提出待解決問(wèn)題 2、建立規(guī)則庫(kù) 3、從規(guī)則庫(kù)中獲取可用規(guī)則集 4、確定搜索控制策略(例如:估價(jià)函數(shù)策略) 5、通過(guò)搜索控制策略,從規(guī)則集中選出最優(yōu)規(guī)則 6、執(zhí)行最優(yōu)規(guī)則,更新知識(shí)庫(kù) 7、反復(fù)多次以上步驟 8、獲得解決方案或無(wú)解 4、編寫(xiě)程序及調(diào)試運(yùn)行步驟 4.1程序代碼 “小型動(dòng)物分類(lèi)專(zhuān)家系統(tǒng)” /*An Animal Classifying Expert System*/ database xpositive(symbol,symbol) xnegative(symbol,symbol) predicates run
6、 animal_is(symbol) it_is(symbol) positive(symbol,symbol) negative(symbol,symbol) clear_facts remember(symbol,symbol,symbol) ask(symbol,symbol) goal run. clauses run:- animal_is(X), !, write("\nYour animal may be a(n) ", X), nl, nl, clear_facts. run:- write("\nUnable
7、to determine what"), write("your animal is.\n\n"), clear_facts. positive(X,Y):-xpositive(X, Y),!. positive(X,Y):-not(xnegative(X,Y)), ask(X,Y). negative(X,Y):-xnegative(X,Y), !. negative(X,Y):-not(xpositive(X,Y)), ask(X,Y). ask(X,Y):- write(X, " it ", Y, "?\n"), readln(Reply),
8、remember(X, Y, Reply). remember(X, Y, y):-asserta(xpositive(X, Y)). remember(X, Y, n):-asserta(xnegative(X, Y)),fail. clear_facts:-retract(xpositive(_, _)),fail. clear_facts:-retract(xnegative(_, _)),fail. clear_facts:-write("\n\nPlease press the space bar to Exist"), readchar(_). /* K
9、nowledge Base*/ animal_is(cheetah):- %獵豹 it_is(carnivore), positive(has,tawny_color), positive(has,black_spots). animal_is(tiger):- %老虎 it_is(carnivore), positive(has, tawny_color), positive(has, black_stripes). animal_is(giraffe):- %長(zhǎng)頸鹿 it_is(ungulate), positive(has,
10、 long_neck), positive(has, long_legs), positive(has, dark_spots). animal_is(zebra):- %斑馬 it_is(ungulate), positive(has,black_stripes). animal_is(ostrich):- %鴕鳥(niǎo) it_is(bird), negative(does, fly), positive(has, long_neck), positive(has, long_legs), positive(has, black_a
11、nd_white_color). animal_is(penguin):- %企鵝 it_is(bird), negative(does, fly), positive(does, swim), positive(has, black_and_white_color). animal_is(albatross):- %信天翁 it_is(bird), positive(does,fly_well). it_is(mammal):- %哺乳動(dòng)物 positive(has,hair). it_is(mammal):- positive
12、(does,give_milk). it_is(bird):- %鳥(niǎo)類(lèi) positive(has,feathers). it_is(bird):- positive(does,fly), positive(does,lay_eggs). it_is(carnivore):- %肉食動(dòng)物 positive(does,eat_meat). it_is(carnivore):- it_is(mammal), positive(has,pointed_teeth), positive(has,claws), positive(has,fo
13、rward_eyes). it_is(ungulate):- %有蹄類(lèi)動(dòng)物 it_is(mammal), positive(has,hooves). it_is(ungulate):- it_is(mammal), positive(does,chew_cud). 4.2調(diào)試步驟 1.在TXT文本中編寫(xiě)規(guī)則代碼,添加到狀態(tài)圖通用搜索程序中,修改程序。 2.打開(kāi)Turbo prolog2.0文件,啟動(dòng)prolog.exe應(yīng)用程序,并按空格鍵(SPACE)進(jìn)入集成開(kāi)發(fā)環(huán)境。 3.選擇Setup項(xiàng),打開(kāi)下拉菜單,選擇Directories項(xiàng),進(jìn)行工作目錄修改,
14、按Esc鍵退出,選擇Save Configuration項(xiàng),保存修改。 4.在相應(yīng)的路徑所在文件件夾中會(huì)生成work.Pro文件將其用文本打開(kāi),將要運(yùn)行的程序?qū)懭耄4妗? 5.選擇Files項(xiàng),選擇Load項(xiàng),選擇要打開(kāi)的示例程序 6.編輯之后,可以選擇Run項(xiàng),執(zhí)行程序,可以在Dialog窗口進(jìn)行詢問(wèn),并回答y/n,依次回答問(wèn)題,即可找到解 7.退出,選擇Quit項(xiàng),可以退出Turbo Prolog程序。 4.3書(shū)籍識(shí)別系統(tǒng) 根據(jù)所給示例程序,我修改出一個(gè)簡(jiǎn)單的書(shū)籍識(shí)別系統(tǒng) 4.3.1系統(tǒng)簡(jiǎn)介 這是一個(gè)簡(jiǎn)單的書(shū)籍識(shí)別系統(tǒng),有:唐詩(shī)三百首、魯迅散文集、紅樓夢(mèng)、泰戈?duì)栐?shī)詞、呼嘯山
15、莊。使用我們這個(gè)系統(tǒng),只需根據(jù)窗口提供的內(nèi)容回答y/n,系統(tǒng)將會(huì)幫你選擇你可能中意的書(shū)籍。 該專(zhuān)家系統(tǒng)設(shè)計(jì)書(shū)籍的特性是:中文,英文,詩(shī)集,散文,小說(shuō) 各種書(shū)籍特性如下: 書(shū)籍 特性 唐詩(shī)三百首 中文 詩(shī)詞 紅樓夢(mèng) 中文 小說(shuō) 泰戈?duì)栐?shī)詞 英文 詩(shī)詞 魯迅散文集 中文 散文 呼嘯山莊 英文 小說(shuō) 4.3.2系統(tǒng)程序 database xpositive(symbol,symbol) xnegative(symbol,symbol) predicates run book_is(symbol) positive(symbol,symb
16、ol) negative(symbol,symbol) clear_facts remember(symbol,symbol,symbol) ask(symbol,symbol) goal run. clauses run:- book_is(X), !, write("\nYour favorite book may be ", X), nl, nl, clear_facts. run:- write("\nUnable to determine what"), write("your book is.\n\n"), clear
17、_facts. positive(X,Y):-xpositive(X,Y),!. positive(X,Y):-not(xnegative(X,Y)), ask(X,Y). negative(X,Y):-xnegative(X,Y), !. negative(X,Y):-not(xpositive(X,Y)), ask(X,Y). ask(X,Y):- write("Question:- ",X, " it ", Y, "?\n"), readln(Reply), remember(X,Y, Reply). remember(X,Y, y):-asse
18、rta(xpositive(Y)). remember(X,Y, n):-asserta(xnegative(Y)),fail. clear_facts:-retract(xpositive(_, _)),fail. clear_facts:-retract(xnegative(_, _)),fail. clear_facts:-write("\n\nPlease press the space bar to Exist"), readchar(_). /* Knowledge Base*/ book_is(tangShiSaibaishou):- %唐詩(shī)三百首
19、 positive(is,chinese), positive(is,poem). book_is(luxunwenji):- %魯迅文集 positive(is,chinese), positive(is, prose). book_is(hongloumeng):- %紅樓夢(mèng) positive(is, chinese), positive(is, novel). book_is(taigerwenji):- %泰戈?duì)栁募? positive(is, english), positive(is, poem). book_is(h
20、uxiaoshanzhaung):- %呼嘯山莊 positive(is, english), positive(is, novel). 五、實(shí)驗(yàn)結(jié)果 5.1動(dòng)物分類(lèi)實(shí)驗(yàn)結(jié)果 圖1 圖2 圖3 5.2書(shū)籍識(shí)別實(shí)驗(yàn)結(jié)果 圖4 圖5 圖6 六、問(wèn)題思考 思考:你所實(shí)現(xiàn)的基于產(chǎn)生式的專(zhuān)家系統(tǒng)所采用的推理算法是正向推理還是反向推理?采用prolog語(yǔ)言編寫(xiě)專(zhuān)家系統(tǒng)有何優(yōu)點(diǎn)與不足? 解:(1)正向推理(2)嚴(yán)格來(lái)講,該專(zhuān)家系統(tǒng)程序中并無(wú)顯式的推理機(jī),而是利用了PROLOG語(yǔ)言本身的推理機(jī)制實(shí)現(xiàn)推理的。這就是說(shuō),用PROLOG編寫(xiě)
21、專(zhuān)家系統(tǒng)程序,可以省去推理機(jī)部分。如果用其他語(yǔ)言編程,推理機(jī)則是必不可少的。當(dāng)然,用PROLOG編寫(xiě)專(zhuān)家系統(tǒng)程序,也可以不用它自身的推理機(jī)作為所實(shí)現(xiàn)的專(zhuān)家系統(tǒng)的推理機(jī),而用戶自己重新編寫(xiě)一個(gè)顯式的推理機(jī),這可根據(jù)問(wèn)題和需要而定。如果要重新編寫(xiě)推理機(jī),一般說(shuō)來(lái),規(guī)則就要用PROLOG的事實(shí)來(lái)實(shí)現(xiàn)。知識(shí)庫(kù)就要用PROLOG的動(dòng)態(tài)數(shù)據(jù)庫(kù)來(lái)實(shí)現(xiàn)。 七、實(shí)驗(yàn)中出現(xiàn)的問(wèn)題及解決方案 實(shí)驗(yàn)中由于最開(kāi)始對(duì)于專(zhuān)家系統(tǒng)了解不夠深刻,對(duì)于理解小動(dòng)物分類(lèi)的程序是,遇到了很多問(wèn)題,后來(lái)我仔細(xì)看了書(shū),掌握了專(zhuān)家系統(tǒng)的整體架構(gòu),對(duì)于動(dòng)態(tài)數(shù)據(jù)庫(kù)有了一定的了解,加深了我對(duì)于程序的理解,同時(shí)有咨詢老師和同學(xué),理解了程序。 在理解程序之后,我又嘗試著自己改編了一段小程序,雖然遇到了一些語(yǔ)句上的小問(wèn)題,但是翻書(shū)之后,問(wèn)題可以解決,同時(shí)程序可以運(yùn)行出來(lái)。 八、實(shí)驗(yàn)總結(jié) 通過(guò)本次實(shí)驗(yàn),加深了我對(duì)人工智能課程的興趣,進(jìn)一步掌握了prolog語(yǔ)言,加深了我對(duì)于專(zhuān)家系統(tǒng)的理解和掌握,理解了專(zhuān)家系統(tǒng)的知識(shí)庫(kù),推理機(jī),動(dòng)態(tài)數(shù)據(jù)庫(kù)。并且在這最后一次人工智能上機(jī)實(shí)驗(yàn)中,嘗試著自己修改編寫(xiě)一段程序,相對(duì)于前兩次實(shí)驗(yàn),我對(duì)于prolog語(yǔ)言的運(yùn)用更加熟悉。 16
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識(shí)競(jìng)賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫(kù)試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫(kù)試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫(kù)試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識(shí)測(cè)試題庫(kù)及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測(cè)工種技術(shù)比武題庫(kù)含解析
- 1 礦山應(yīng)急救援安全知識(shí)競(jìng)賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案