猴子摘香蕉实验报告

猴子摘香蕉实验报告

ID:22008524

大小:82.66 KB

页数:5页

时间:2018-10-26

猴子摘香蕉实验报告_第1页
猴子摘香蕉实验报告_第2页
猴子摘香蕉实验报告_第3页
猴子摘香蕉实验报告_第4页
猴子摘香蕉实验报告_第5页
资源描述:

《猴子摘香蕉实验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验h猴子摘香蕉问题的VC编程实现、实验目的利用一阶谓词逻辑求解猴了摘香蕉问题并通过编程来实现、编程环境木文i要编译环境是Windows10VisualStudio2015在Ubuntu12.0用gcc编译来演示问题的另外儿种状态的解法三、问题描述房内有一个猴子,一个箱子,天花板上挂了一屯香蕉,其位置如图所示,猴子为了拿到香蕉,它必须把箱子搬到香蕉不面,然后再爬到箱子上。请定义必要的谓词,列出M题的初始化状态(即卜*图所示状态),日标状态(猴子拿到了乔蕉,站在箱子上,箱子位于位Sb)。四、解决方案1.定义描述环境状态的谓词。AT(x,y):x在y处,个体域:xD{monke

2、y,box,banana},yO{a,b,c};HAND⑻:猴子手中拿着s,个体域:sH{box,banana};ONBOX(monkey):猴了•在箱了上;2.使川谓词、连结词、暈词來表示环境状态。I'uJ题的初始状态可表示为:So:AT(monkey,a)_〜HAND(s)一AT(box,c)一-ONBOX(moiikey)_AT(banana,b)要达到的鬥标状态为:Sg:AT(box,b)ONBOX(monkey)IHAND(banana)!AT(monkey,b)AT(banana,b)3.从初始状态到目标状态的转化,猴子耑要完成一系列操作,定义操作类谓同表示其动

3、go(m,n):猴子从01走到n处,个体域:m,nEl{a,b,c};movcbox(m,n):猴了•把箱了•从m处移动到n处,个体域:m,nO{a,b,c};onbox(m):猴子在m处爬上箱子,个体域:m口{a,b,c};catch(banana):猴子摘到香蕉;这3个操作也可分别用条件和动作來表示。条件且接用谓词公式表示,是为完成相应操作所必须具备的条件;当条件屮的事实使其均为真吋,则可激活操作规则,于楚可执行该规则中的动作部分。动作通过前后状态的变化表示,即通过从动作前删除或增加谓词公式來描述动作盾的状态。go(m,n):猴子从m走到n处条件:AT(monkey,m

4、),..f删除:AT(monkey,m)动作:彳[埔加:AT(monkey,n)movebox(m,n):猴子把箱子从m处移动到n处条件:AT(monkey,m))□〜HAND(s)[AT(box,m)动作:删除••〜HAND(s)八AT(box,m)增加:HAND(s)aAT(box,n)aAT(monkey,n)onbox(m):猴子在m处爬上箱子条件:AT(monkey,m)L〜HAND(s)_AT(box,m)_AT(banana,m)□-ONBOX(monkey)动作:删除:〜ONBOX(monkey)增加:ONBOX(monkey)catch(m):猴子摘到香蕉

5、条件:AT(monkcy,m)□〜HAND(s)AT(box,m)□AT(banana,m)□ONBOX(monkcy)f删除:〜HAND(s)动作:、[增加:HAND(banana)1.按照行动计划,一步步进行状态替换,直至目标状态。2.AT(monkey,a厂〜HAND(s)lAT(box,c)—〜ONBOX(monkey)AT(banana,b)Ugo(a,c)猴子从a走到cAT(monkey,c)lHAND(box)[IAT(box,c)I〜ONBOX(monkey)IAT(banana,b)Umovebox(c,b):猴子把箱子从c处移动到b处AT(monkey,

6、b)El~HAND(s)AT(box,b)□〜ONBOX(monkey)[AT(banana,b)Uonbox(b):猴子在b处爬上箱子AT(monkey,b)□AND(s)□AT(box,b)nONBOX(monkey)DAT(banana,b)Ucatch(banana):猴子手中拿着bananaAT(box,b)□ONBOX(monkey)□HAND(banana)□AT(monkey,b)[IAT(banana,b)(鬥标得解)猴子行动的规则序列是:go(a,c)—>movebox(c,b)—>onbox(b)—>catch(bananan)四、源代码#define

7、_CRT_SECURE_NO_WARNINGS#includeinti;voidgo(charx,chary){printf("step%d:monkey从。/。(:走到%011",++i,x,y);//x表示猴子的位置,y为箱子的位置}voidmovebox(charx,chary){printf("step%d:monkey把箱子从%0运到。/oc",++i,x,y);//x表示箱子的位置,y为香蕉的位置}voidonbox(){printf("step%d:monkey爬上箱子门",

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。