人工智能——实验报告.docx

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

人工智能实验报告

题目人工智能实验

专业计算机科学与技术

学号1160300426

学生李国建

指导教师李钦策

同组人员安宏展、王宇楠、姚远、李忠旭、鲁东祐

实验1知识表示

简介

待解决问题的解释

一个房间里,天花板上挂有一串香蕉,有一只猴子可在房间里任意活动(到处走动,推移箱子,攀登箱子等)。设房间里还有一只可被猴子移动的箱子,且猴子登上箱子时才能摘到香蕉,问猴子在某一状态下(设猴子位置为A,香蕉位置在B,箱子位置为C),如何行动可摘取到香蕉。

问题的形式化描述

该问题的本质就是利用一种知识表示的方法来解决猴子摘香蕉的问题。如果把猴子、香蕉和箱子的位置用{-1.0.1}里的数字表示(对应为A,B,C),那么就可以用一个三元组来表示问题的状态,任意输入一个合法的状态,即可输出一个从初始状态到目标状态的过程。实际实现需要使用四元组,还需要记录猴子与箱子的相对位置。

解决方案(原理)

按照题目要求,选择产生式表示法。

首先定义一个综合数据库,即包含所有状态的状态空间(monkey,box,banana,monbox),分别表示猴子、香蕉和箱子的位置,用{-1.0.1}表示。

定义猴子的行动规则,即规则数据库:走到X位置处;跳到箱子上;从箱子上跳下来;将箱子移到另一个位置;如果站在箱子上且有香蕉,则可以摘香蕉。

根据问题,确定终止状态是猴子摘到香蕉{(x,x,x,0)}(x属于{0,-1,1})。

输入一个初始状态(a,b,c,d),即可输出一个从初始状态到目标状态的解决方案。

算法介绍

2.1所用方法的一般介绍

产生式表示法,首先定义一个综合数据库;再确定初始状态和目标状态;然后定义规则库;根据初始状态和规则库中的规则,不断地产生新的状态,直到到达目标状态为止。

2.2算法伪代码

输入:猴子、香蕉、箱子的位置以及猴子是否站在箱子上(a,b,c,d)

输出:猴子摘香蕉的过程

ifstate.monkey==state.boxandstate.box==state.bananaandstate.monbox==1:

print(步数+str(step)+:猴子将香蕉摘下来)

os._exit(0)

ifstate.monbox==1: #猴子在箱子上面站着

ifstate.box!=state.banana: #箱子和香蕉不在一起

state=MonkeyUp(MoveBox(MonkeyDown(state,step),step+1),step+2)

step=step+3

ifstate.monbox==-1: #猴子不在箱子上面,此时猴子和箱子的位置不一定在一起

ifstate.box!=state.banana: #箱子和香蕉不在一起

ifstate.monkey!=state.box: #猴子和箱子不在一起

MonkeyUp(MoveBox(MoveMonkey(state,step),step+1),step+2)

step=step+3

else: #猴子和箱子在一起

MonkeyUp(MoveBox(state,step),step+1)

step=step+2

else: #箱子和香蕉在一起

ifstate.monkey!=state.box:

MonkeyUp(MoveMonkey(state,step),step+1)

step=step+2

else:

MonkeyUp(state,step)

step=step+1

print(步数+str(step)+:猴子将香蕉摘下来)

算法实现

3.1实验环境与问题规模

实验环境:Windows10,Python3,VSCode;

问题规模:最多四步

3.2数据结构

定义状态类:

classState:

def__init__(state,monkey=-1,box=0,banana=1,monbox=-1):

state.monkey=monkey

state.box=box

state.banana=banana

state.monbox=monbox

3.3实验结果

输入01-1-1

输出:

步数1:猴子从

文档评论(0)

godcoovAuxsv + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档