人工智能原理及應用實驗報告_第1頁
人工智能原理及應用實驗報告_第2頁
人工智能原理及應用實驗報告_第3頁
人工智能原理及應用實驗報告_第4頁
人工智能原理及應用實驗報告_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2019年 秋 季學期研究生課程考核(人工智能原理及應用實驗報告)考 核 科 :人工智能原理及應學生所在院(系學學生所生在學姓學學生類全日制考核結(jié)果閱卷人實驗2知識表示實驗一、 問題描述猴子摘香蕉問題,給出它的產(chǎn)生式系統(tǒng)表示。待解決問題的解釋一個房間里,天花板上掛有一串香蕉,有一只猴子可在房間里任意活動(處走動,推移箱子,攀登箱子等。設(shè)房間里還有一只可被猴子移動的箱子,且猴子登上箱子時才能摘到香蕉,問猴子在某一狀態(tài)下(設(shè)猴子位置為A,箱子位B,C,如何行動可摘取到香蕉。問題的形式化描述箱子和香蕉的位置用{-101}(A,B,C解決方案介紹(原理)根據(jù)題目要求需要采用產(chǎn)生式系統(tǒng)表示。(monkey,box,monkey_bo,分別表示猴子、箱子和香蕉的位置及猴子與箱子的相對位置,用{-1,0,1}表示。X香蕉。根據(jù)問題,確定終止狀態(tài)是猴子摘到香蕉{(x,x,x,0)}(x屬{0,-1,1}。輸入一個初始狀態(tài)(a,b,c,d解決方案。二、 算法介紹算法的一般介紹產(chǎn)生式表示法由美國數(shù)學家波斯特(E.POST)1934年首先提出,它根據(jù)串代替規(guī)則提出了一種稱為波斯特機的計算模型,模型中的每條規(guī)則稱為產(chǎn)生式。1972P→QIFPTHENQ,P是產(chǎn)生式的前提,也稱為前件,它給出了該產(chǎn)生是一組結(jié)論或操作,也稱PPQQ所規(guī)定的操作。算法偽代碼輸入:猴子、箱子、香蕉的位置以及猴子跟箱子的相對位置上(a,b,c,d)輸出:猴子摘香蕉的過程if state.monkey==state.boxandstate.box==state.bananaandstate.monkeyAndbox==1:print("步數(shù)"+str(step)+":猴子將香蕉摘下來")os._exit(0)ifstate.monkeyAndbox==1: #猴子在箱子上面站著ifstate.box!=state.banana:#箱子和香蕉不在一起state=MonkeyUp(MoveBox(MonkeyDown(state,step),step+1),step+2)step=step+3ifstate.monkeyAndbox==-1: #起ifstate.box!=state.banana:#箱子和香蕉不在一起ifstate.monkey!=state.box:#猴子和箱子不在一起MonkeyUp(MoveBox(MoveMonkey(state,step),step+1),step+2)step=step+3else: #猴子和箱子在一起MonkeyUp(MoveBox(state,step),step+1)step=step+2else: #箱子和香蕉在一起ifstate.monkey!=state.box:MonkeyUp(MoveMonkey(state,step),step+1)step=step+2else:MonkeyUp(state,step)step=step+1print("步數(shù)"+str(step)+":猴子將香蕉摘下來")三、 算法實現(xiàn)實驗環(huán)境與問題規(guī)模實驗環(huán)境:Windows10,Python3,VSCode;問題規(guī)模:最多四步classdef init (state,monkey=-1,box=0,banana=1,monkeyAndbox=-1):state.monkey=monkeystate.box=boxstate.banana=state.monkeyAndbox=monkeyAndbox實驗結(jié)果輸入:10-1-1輸出:步數(shù)1:猴子從C移動到B2:B3:猴子爬到箱子上去4:比較組:輸入:-101-1輸出:步數(shù)1:猴子從A移動到B2:B3:猴子爬到箱子上去4:猴子將香蕉摘下來注:前面定義了-1表示猴子的位置,0表示箱子的位置,1表示香蕉的位置系統(tǒng)中間及最終輸出結(jié)果(要求有屏幕顯示)比較組:四、 參考文獻源代碼及其注釋:importos'''monkey -1:A 0:B box-1:A 0:B 1:Cbanana -1:A 0:B 1:CmonkeyAndbox-1:monkeynotonthebox1:monkeyonthebox&&bananapicked'''dict={'-1':'A','0':'B','1':'C'}classState:def init (state,monkey=-1,box=0,banana=1,monkeyAndbox=-1):state.monkey=monkeystate.box=boxstate.banana=bananastate.monkeyAndbox=monkeyAndboxdefcheck(state):ifstate.monkeyAndbox!=-1andstate.monkeyAndbox!=1\orstate.banana!=-1andstate.banana!=1andstate.banana!=0 \orstate.monkey!=-1andstate.monkey!=1andstate.monkey!=0\orstate.box!=-1andstate.box!=1andstate.box!=0\orstate.monkeyAndbox==1andstate.monkey!=state.box:print("輸入狀態(tài)錯誤")os._exit(0)else:returnstatedefMonkeyDown(state,step):print("步數(shù)"+str(step)+":猴子從箱子上下來")state.monkeyAndbox=-1returnstatedefMonkeyUp(state,step):print("步數(shù)"+str(step)+":猴子爬到箱子上去")state.monkeyAndbox=1returnstatedefMoveBox(state,step):print("步數(shù)"+str(step)+":猴子將箱子從"+str(dict[str(state.box)])+"移動到"+str(dict[str(state.banana)]))state.monkey=state.bananastate.box=state.bananareturnstatedefMoveMonkey(state,step):print("步數(shù)"+str(step)+":猴子從"+str(dict[str(state.monkey)])+"移動到"+str(dict[str(state.box)]))state.monkey=state.boxreturnstatedefAction(state):step=1if state.monkey == state.box and state.box == state.banana andstate.monkeyAndbox==1:print("步數(shù)"+str(step)+":猴子將香蕉摘下來")os._exit(0)ifstate.monkeyAndbox==1: #猴子在箱子上面站著ifstate.box!=state.banana: #箱子和香蕉不在一起state=MonkeyUp(MoveBox(MonkeyDown(state,step),step+1),step+2)step=step+3ifstate.monkeyAndbox==-1: #猴子不在箱子上面,此時猴子和箱子的位置不一定在一起ifstate.box!=state.banana: #箱子和香蕉不在一起ifstate.monkey!=state.box: #猴子和箱子不在一起step=step3else: #猴子和箱子在一起MonkeyUp(MoveBox(state,step),step+1)step=step+2else: #箱子和香蕉在一起ifstate.monkey!=state.box:MonkeyUp(MoveMonkey(state,step),step+1)step=step+2else:MonkeyUp(state,step)step=step+1print("步數(shù)"+str(step)+":猴子將香蕉摘下來")if name ==" main ":s = inp

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論