




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、華中科技大學(xué)人工智能與模式識(shí)別 實(shí)驗(yàn)報(bào)告 院 系: 電子與信息工程系 班 級(jí): 姓 名: 同 組 人: 指導(dǎo)老師: 電 話: 郵 箱: 日 期: 2013年12月24日 1、 實(shí)驗(yàn)內(nèi)容利用一階謂詞邏輯求解猴子摘香蕉問題:房?jī)?nèi)有一個(gè)猴子,一個(gè)箱子,天花板上掛了一串香蕉,其位置如圖所示,猴子為了拿到香蕉,它必須把箱子搬到香蕉下面,然后再爬到箱子上。請(qǐng)定義必要的謂詞,列出問題的初始化狀態(tài)(即下圖所示狀態(tài)),目標(biāo)狀態(tài)(猴子拿到了香蕉,站在箱子上,箱子位于位置b)。(附加:從初始狀態(tài)到目標(biāo)狀態(tài)的謂詞演算過程。)2、 實(shí)驗(yàn)平臺(tái)VC6.03、 實(shí)驗(yàn)分析1. 定義描述環(huán)境狀態(tài)的謂詞。AT(x,w):x在t處,
2、個(gè)體域:xmonkey,wa,b,c,box;HOLD(x,t):x手中拿著t,個(gè)體域:tbox,banana;EMPTY(x):x手中是空的;ON(t,y):t在y處,個(gè)體域:yb,c,ceiling;CLEAR(y):y上是空的;BOX(u):u是箱子,個(gè)體域:ubox;BANANA(v):v是香蕉,個(gè)體域:vbanana;2. 使用謂詞、連結(jié)詞、量詞來表示環(huán)境狀態(tài)。問題的初始狀態(tài)可表示為:So:AT(monkey,a)EMPTY(monkey)ON(box,c)ON(banana,ceiling)CLEAR(b)BOX(box)BANANA(banana)要達(dá)到的目標(biāo)狀態(tài)為:Sg:AT(
3、monkey,box)HOLD(monkey,banana)ON(box,b)CLEAR(ceiling)CLEAR(c)BOX(box)BANANA(banana)3. 從初始狀態(tài)到目標(biāo)狀態(tài)的轉(zhuǎn)化, 猴子需要完成一系列操作, 定義操作類謂詞表示其動(dòng)作。WALK(m,n):猴子從m走到n處,個(gè)體域:m,na,b,c;CARRY(s,r):猴子在r處拿到s,個(gè)體域:rc,ceiling,sbox,banana;CLIMB(u,b):猴子在b處爬上u;這3個(gè)操作也可分別用條件和動(dòng)作來表示。條件直接用謂詞公式表示,是為完成相應(yīng)操作所必須具備的條件;當(dāng)條件中的事實(shí)使其均為真時(shí),則可激活操作規(guī)則,于是可
4、執(zhí)行該規(guī)則中的動(dòng)作部分。動(dòng)作通過前后狀態(tài)的變化表示,即通過從動(dòng)作前刪除或增加謂詞公式來描述動(dòng)作后的狀態(tài)。WALK(m,n):猴子從m走到n處條件:AT(monkey,m)動(dòng)作:CARRY(s,r):猴子在r處拿到s條件:AT(monkey,r)EMPTY(monkey)ON(s,r)BOX(box)BANANA(banana)動(dòng)作:CLIMB(u,b):猴子在b處爬上u條件:AT(monkey,b)HOLD(monkey,u)CLEAR(b)BOX(box)BANANA(banana)動(dòng)作:4. 按照行動(dòng)計(jì)劃, 一步步進(jìn)行狀態(tài)替換, 直至目標(biāo)狀態(tài)。AT(monkey,a)EMPTY(monke
5、y)ON(box,c)ON(banana,ceiling)CLEAR(b)BOX(box)BANANA(banana)AT(monkey,c)EMPTY(monkey)ON(box,c)ON(banana,ceiling)CLEAR(b)BOX(box)BANANA(banana)AT(monkey,c)HOLD(monkey,box)ON(banana,ceiling)CLEAR(b)CLEAR(c)BOX(box)BANANA(banana)AT(monkey,b)HOLD(monkey,box)ON(banana,ceiling)CLEAR(b)CLEAR(c)BOX(box)BANAN
6、A(banana)AT(monkey,box)EMPTY(monkey)ON(box,b)ON(banana,ceiling)CLEAR(c)BOX(box)BANANA(banana)AT(monkey,box)HOLD(monkey,banana)ON(box,b)CLEAR(ceiling)CLEAR(c)BOX(box)BANANA(banana)(目標(biāo)得解)猴子行動(dòng)的規(guī)則序列是:WALK(a,c)CARRY(c,box)WALK(c,b)CLIMB(box,b)CARRY(banana,ceiling)在上述過程中,我們應(yīng)該注意,當(dāng)猴子執(zhí)行某一個(gè)操作之前,需要檢查當(dāng)前狀態(tài)是否可使所要
7、求的條件得到滿足,即證明當(dāng)前狀態(tài)是否蘊(yùn)涵操作所要求的狀態(tài)的過程。在行動(dòng)過程中, 檢查條件的滿足性后才進(jìn)行變量的代換。代入新條件后的新狀態(tài)如果是目標(biāo)狀態(tài),則問題解決;否則看是否滿足下面的操作,如果不滿足或即使?jié)M足卻又回到了原來的狀態(tài),那么代入無效。4、 源代碼#include <stdio.h>struct Stateint monkey; /*-1:Monkey at A;0: Monkey at B;1:Monkey at C;*/ int box; /*-1:box at A;0:box at B;1:box at C;*/ int banana; /*Banana at B,
8、Banana=0*/ int monbox; /*-1: monkey on the box;1: monkey the box;*/;struct State States 150;char* routesave150;/*function monkeygoto,it makes the monkey goto the other place*/void monkeygoto(int b,int i) int a;a=b;if (a=-1)routesavei="Monkey go to A"Statesi+1=Statesi;Statesi+1.monkey=-1;el
9、se if(a=0)routesavei="Monkey go to B"Statesi+1=Statesi;Statesi+1.monkey=0;else if(a=1)routesavei="Monkey go to C"Statesi+1=Statesi;Statesi+1.monkey=1;else printf("parameter is wrong");/*end function monkeyygoto*/*function movebox,the monkey move the box to the other pla
10、ce*/void movebox(int a,int i) int B;B=a;if(B=-1)routesavei="monkey move box to A"Statesi+1=Statesi;Statesi+1.monkey=-1;Statesi+1.box=-1;else if(B=0)routesavei = "monkey move box to B"Statesi+1=Statesi;Statesi+1.monkey=0;Statesi+1.box=0;else if(B=1)routesavei = "monkey move b
11、ox to C"Statesi+1=Statesi;Statesi+1.monkey=1;Statesi+1.box=1;elseprintf("parameter is wrong");/*end function movebox*/*function climbonto,the monkey climb onto the box*/void climbonto(int i)routesavei="Monkey climb onto the box"Statesi+1=Statesi;Statesi+1.monbox=1;/*function
12、 climbdown,monkey climb down from the box*/void climbdown(int i) routesavei="Monkey climb down from the box"Statesi+1=Statesi;Statesi+1.monbox=-1;/*function reach,if the monkey,box,and banana are at the same place,the monkey reach banana*/void reach(int i) routesavei="Monkey reach the
13、 banana"/*output the solution to the problem*/void showSolution(int i) int c; printf ("%s n", "Result to problem:"); for(c=0; c<i+1; c+) printf ("Step %d : %s n",c+1,routesavec); printf("n");/*perform next step*/void nextStep(int i)int c; int j; if(i&g
14、t;=150) printf("%s n", "steplength reached 150,have problem "); return; for (c=0; c<i; c+) /*if the current state is same to previous,retrospect*/ if(Statesc.monkey=Statesi.monkey&&Statesc.box=Statesi.box&&Statesc.banana=Statesi.banana&&Statesc.monbox=S
15、tatesi.monbox) return; if(Statesi.monbox=1&&Statesi.monkey=0&&Statesi.banana=0&&Statesi.box=0) showSolution(i);printf("Press any key to continue n");getchar();/*to save screen for user,press any key to continue*/return; j=i+1; if(Statesi.monkey=0) if(Statesi.box=0)i
16、f(Statesi.monbox=-1)climbonto(i);reach(i+1);nextStep(j);/*monkeygoto(-1,i);nextStep(j);monkeygoto(0,i);nextStep(j);movebox(-1,i);nextStep(j);movebox(0,i);nextStep(j);*/elsereach(i+1);nextStep(j);/*climbdown(i);nextStep(j);*/ else if(Statesi.box=1)/*monkeygoto(-1,i);nextStep(j);*/monkeygoto(1,i);next
17、Step(j);movebox(0,i);nextStep(j);climbonto(i);reach(i+1);nextStep(j);else /*box=-1*/monkeygoto(-1,i);nextStep(j);movebox(0,i);nextStep(j);climbonto(i);reach(i+1);nextStep(j); /*end if*/if(Statesi.monkey=-1) if(Statesi.box=-1)if(Statesi.monbox=-1) movebox(0,i);nextStep(j);climbonto(i);reach(i+1);next
18、Step(j);elseclimbdown(i);nextStep(j);movebox(0,i);nextStep(j);climbonto(i);reach(i+1);nextStep(j);else if(Statesi.box=0) monkeygoto(0,i);nextStep(j);climbonto(i);reach(i+1);nextStep(j);elsemonkeygoto(1,i);nextStep(j);movebox(0,i);nextStep(j);climbonto(i);reach(i+1);nextStep(j);/*end if*/if(Statesi.monkey=1) if (Statesi.box=1)if(Statesi.monbox=-1) movebox(0,i);nextStep(j);climbonto(i);reach(i+1);nextStep(j);elseclimbdown(i);nextStep(j);movebox(0,i);nextStep(j);climbonto(i);reach(i+1);nextStep(j); else if(Statesi.box=-1) monkeygoto(-1,i);nextStep(j);movebox(0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 專題2.10 函數(shù)的綜合應(yīng)用(解析版)-2024年高考數(shù)學(xué)一輪復(fù)習(xí)精講精練寶典(新高考專用)
- 車間地基施工方案
- 景觀塔施工方案
- 互聯(lián)網(wǎng)電商知識(shí)培訓(xùn)課件
- 印刷制作設(shè)計(jì)合同范例
- 吉首售房合同范例
- 2025年英語(yǔ) 英語(yǔ)五官標(biāo)準(zhǔn)課件
- 壓手續(xù)不押車合同范例
- 腦疝的護(hù)理診斷及護(hù)理問題
- 豐富多樣的幼兒園節(jié)日慶典計(jì)劃
- 《形象塑造與職場(chǎng)妝容》課件
- 2025年湖南有色金屬職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)審定版
- 透射電子顯微分析在材料科學(xué)分析技術(shù)中的應(yīng)用課件
- GB/T 24498-2025建筑門窗、幕墻用密封膠條
- 2025年中國(guó)智能座艙行業(yè)市場(chǎng)規(guī)模及發(fā)展前景研究報(bào)告(智研咨詢)
- 黑龍江流域文明史知到智慧樹章節(jié)測(cè)試課后答案2024年秋黑龍江大學(xué)
- GB 45185-2024眼視光產(chǎn)品成品眼鏡安全技術(shù)規(guī)范
- 僑法知識(shí)講座
- 2024年江蘇省中小學(xué)生金鑰匙科技競(jìng)賽(高中組)考試題庫(kù)(含答案)
- 《做最好的自己》課件
- 糧庫(kù)事故死亡賠償協(xié)議
評(píng)論
0/150
提交評(píng)論