ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:366.39KB ,
资源ID:27239669      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/27239669.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(人工智能57657238doc.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

人工智能57657238doc.docx

1、人工智能57657238doc真空吸尘器问题一 实验目的在人工智能领域,有一个重要部分,是研究智能化智能体的。智能体可以被视为通过传感器感知所处环境并通过执行器对该环境产生作用的东西。本实验分析真空吸尘器这个简单反射型智能体、环境以及它们之间的关系。验证该吸尘器是否是理性智能体(行为表现尽可能好的智能体)。 二 实验内容1. 智能体的描述智能体可以被视为通过传感器感知所处环境并通过执行器对该环境产生作用的东西。人类智能体具有眼睛、耳朵和其它器官作为传感器,也具有手、腿和身体的其它部位作为执行器。机器人智能体则可能用摄像头、红歪测距仪作为传感器,各种马达作为执行器。简单放射型智能体直接对感知信息

2、做出反应。图21 智能体通过传感器和执行器与环境进行交互2.真空吸尘器的描述真空吸尘器属于简单智能体的一种,真空吸尘器世界只有两个地点:A地点和B地点。一个吸尘器智能体可以感知它处于哪个方格中,以及该地点是否有灰尘。它可以选择向左移动,向右移动,吸取灰尘,或者什么也不做。机器人所处位置有两种选择,要么在A,要么在B。A、B两地点的状态分别有两种,干净或脏。A、B两地具体状态及吸尘器的行动如下表:序号吸尘器所处位置A地点状态B地点状态吸尘器的行动情况1A干净干净没有地点需要清扫,吸尘器不动2A干净脏清扫B地点,吸尘器不动3A脏干净清扫A地点,吸尘器不动4A脏脏先清扫A地点,再到达B地点,并清扫B

3、地点5B干净干净没有地点需要清扫6B脏干净清扫A地点,吸尘器不动7B干净脏清扫B地点,吸尘器不动8B脏脏先清扫B地点,再到达A地点,并清扫A地点表21 A、B两地具体状态及吸尘器的行动3.开发环境所使用的软件:VC+6.0程序说明:在程序中吸尘器所处位置用1、2表示,分别表示A、B两地。A、B两地的状态用0、1表示,分别表示干净不需要清扫、脏需要清扫。通过吸尘器对环境的判断得知A、B两地干净与否,再来回移动进行清扫。4.吸尘器程序流程图图22 程序流程图三 实验结果分析图31 状态一图31 状态二 图31 状态三 图31 状态四图31 状态五 图31 状态六图31 状态七 图31 状态八四 收

4、获与心得 本实验通过对简单智能体真空吸尘器的研究,使我加深了对智能体、环境、性能度量等概念的理解。通过传感器的感知可以得到环境的感知信息,智能体通过感知到的信息进行判断,再通过执行器行动,然后引起状态的变化,再反馈给环境。在这个过程中,性能度量即智能体成功程度标准的具体化是重要的。吸尘器是一个简单的反射型智能体,它通过传感器感知外面的环境是什么情况的,然后我们点一下“确定”按钮即执行器,执行行动,之后把状态反馈给环境。由此可见,环境的变化引起智能体行动的变化,反过来,智能体的行动对环境也会产生影响,它们是联系在一起的。这个程序的开发环境是VC+6.0,这也使我对VC软件的编程环境、编程方法等有

5、了进一步的了解。完成人工智能作业的同时,也学了一些VC的知识,这对我以后的学习会有很大帮助,也增强学VC的信心。收获的同时,我也发现了自己学习中的不足,在以后的学习生活中一定改正。另外,在实验的过程中,我得到了老师耐心细致的指导和同学热心的帮助,在这里对她们表示感谢!八数码问题一 “八数码问题”的描述八数码问题一般描述:在 33 的方格棋盘上,分别放置标有数字 1、2、3、4、5、6、7、8 的八张牌,第九张牌不标数字,记为空格,空格用0表示,空格周围的棋子可以移动到空格中。给定一种初始状态和目标状态,通过移动空格,使得棋盘从初始状态向目标状态转换(其中操作空格可用的操作有:左移、上移、右移、

6、下移,但不能移出棋盘之外),通过搜索策略寻找从初始状态到目标状态的解路径。二 “八数码问题”是否有解的判断1“八数码问题”是否有解的判断的目的:有的八数码排列顺序是无解的,如果再进行搜索就会浪费很多时间,最终还得不到结果。为了避免无解的情况下盲目搜索,判断是否有解是必要的。 2.八数码问题有解无解的结论:一个状态表示成一维的形式,求出除0之外所有数字的逆序数之和,也就是每个数字前面比它大的数字的个数的和,称为这个状态的逆序。若两个状态的逆序奇偶性相同,则可相互到达,否则不可相互到达。可以证明,八码问题有解的充分必要条件是两个状态的逆序列奇偶性相同。 为此,无解判定问题转化为计算两个状态的逆序列

7、奇偶性问题,由于原始状态的逆序为0(偶数),则逆序为偶数的状态有解。也就是说,逆序的奇偶将所有的状态分为了两个等价类,同一个等价类中的状态都可相互到达。3.简要说明:当左右移动空格时,逆序不变。当上下移动空格时,相当于将一个数字向前(或向后)移动两格,跳过的这两个数字要么都比它大(小),逆序可能2;要么一个较大一个较小,逆序不变。所以可得结论:只要是相互可达的两个状态,它们的逆序奇偶性相同。三 “八数码问题”的搜索方法原理搜索是人工智能中的一个基本问题,也是模拟仿真中研究的一般性问题,是推理不可分割的一部分。 现实世界中的大多数问题都是结构不良或非结构化的问题,一般不存在现成的求解方法,而只能

8、利用已有的知识一步步地摸索着前进。解决八数码问题的常用方法为图搜索法,可用无信息搜索算法(包括广度优先搜索、代价一致搜索、深度优先搜索、深度有限搜索、迭代深入搜索、双向搜索)和有信息搜索算法(包括贪婪最佳优先搜索、A*算法、递归最佳优先搜索)实现,其中A*算法又因评价函数的不同而有着不同的搜索时间。1.无信息搜索(盲目搜索Uninformed search),即问题中提供的定义之外没有任何关于状态的附加信息。可以做的事情只能是生成后继,并区分目标状态与非目标状态。(1)广度优先搜索(Broadth First Search,BFS):首先扩展根节点,接着扩展根节点的所有后继,然后再扩展它们的后

9、继,依此类推。通常,在下一层的任何节点扩展之前搜索树上层深度的所有节点都已经扩展过了。图21 广度优先搜索搜索顺序该算法可以使用 FIFO 队列实现,初始时将开始结点放入队列中,每次取队头结点,判断是否为终结点,不是则将其所有子结点放入队列尾,直到队列为空或者找到目标结点为止。如果目标结点在深度 d,那么该算法扩展完深度小于 d 的结点后就将找到目标结点。而且,显然这是最优的。容易观察到,在根节点的第一子层有 b 个结点,第二子层有 b2,然后b3,以此类推。在最坏情况下,我们将扩展为目标结点前的所有结点,在 d + 1层扩展 bd+1-b 个,那么将总共扩展:b + b2 + b3 + +

10、bd + (bd+1-b) = O(bd+1)由此可见,该算法的空间要求是相当高的。广度优先搜索算法伪代码描述如下(队列实现):Status BFS()Push_back(begin);do CurrentState=Top(); Pop(); if(Solution(CurrentState) return Success; for each successor of CurrentState do if(!Exist(successor) Push_back(successor);while(!Empty();Return NoAnswer; (2)深度优先搜索(Depth First S

11、earch,DFS):总是扩展搜索树当前边缘中最深的节点。搜索直接推进到搜索树的最深层,那里的节点没有后继节点。当那些节点扩展完之后,它们被从边缘中去掉,然后搜索算法“向上回到”下一个还有未扩展后继节点的稍浅的节点。图22 深度优先搜索搜索顺序深度优先算法伪代码描述如下(堆栈实现):Status DFS()Push(begin);doCurrentState = Pop();if(Solution(CurrentState) )return Success;for each successor of CurrentState doif( !Exist(successor) )Push(succ

12、essor);while(!Empty() );return NoAnswer;(3)深度有限搜索:(Depth Limited Search,DLS):无边界的搜索树问题可以通过对深度优先搜索提供一个预先设定的深度限制L来解决。就是说,深度为L的节点被当作没有后继的节点对待。2.有信息搜索,是一种在问题本身定义之外还利用问题的特定知识的搜索策略如何能够比无信息的搜索策略更有效地找到解。A*搜索算法:最佳优先搜索最广为人知的形式称为A*搜索,它把到达节点的耗散g(n)和从该节点到目标节点的消耗h(n)结合起来,对节点进行评价:f(n)= g(n) +h(n)。因此,此搜索策略是基于每个扩展点的

13、评价函数进行选择,即评选出最佳的节点扩展搜索。A*算法属于一种启发式搜索,它扩展结点的次序类似于广度优先搜索,但不同的是每生成一个子结点需要计算估价函数f,以估算起始结点的约束经过该结点至达目标结点的最佳路径代价;每当扩展结点时,意是在所有待扩展结点中选择具有最小f值的结点做为扩展对象,以便使搜索尽量沿最有希望的方向进行。A*算法只要求产生问题的全部状态空间的部分结点及关系,就可以求解问题了,搜索效率较高。A*搜索算法伪代码描述如下(优先队列实现-priority_queue):Status Greedy-Search ()priority_queue Q;begin.f = h(begin)

14、;Q.Push_back(begin);doCurrentState = Q.Top();Q.Pop();if(Solution(CurrentState) )return Success;for each successor of CurrentState doif( !Exist(successor) )successor.f = successor.g + h(successor);Q.Push_back(successor);while(!Q.Empty() );return NoAnswer;四 所用程序相关说明1.使用软件:VC+6.02.具体内容:在这个程序中,分别用广度优先、深

15、度优先和A*算法实现了八数码问题, 初始状态值和目标状态值自己任意设定,空格周围的棋子可以移动到空格中,一步一步往下进行,直至达到目标状态,搜索过程中的每一步都有显示,这样更便于理解每一步的运行情况。另外,此程序除了实现了八数码问题求解外,还推广应用于16数码问题,即在 44 的方格棋盘上,分别放置标有数字 1、2、3、4、5、6、7、8 、9、A、B、C、D、E、F的十五张牌,第十六张牌不标数字,记为空格,空格用0表示,空格周围的棋子可以移动到空格中。五 实验结果分析1.实验结果图如下:图5-1 广度优先搜索算法(无解情况)图5-2 广度优先搜索算法(八数码)图5-3 广度优先搜索算法(十六

16、数码) 图5-4 深度优先搜索算法(无解情况)图5-5 深度优先搜索算法(八数码)图5-6 深度优先搜索算法(十六数码)图5-7 A*搜索算法(无解情况)图5-8 A*搜索算法(八数码)图5-9 A*搜索算法(十六数码)2.三种算法的优缺点简评:三种算法在一定条件下均可得到八数码问题的解。前两种是经典的无信息(盲目)搜索算法,后一种是经典的有信息(启发式)搜索算法。从本文的实验可以看出,广度优先搜索是一种完备策略,即只要问题有解,它就一定可以找到解。 并且,广度优先搜索找到的解,还一定是路径最短的解。 这些都是广度优先搜索的优点。当然,广度优先搜索也存在很多缺点,主要缺点是盲目性较大,尤其是当

17、目标行点距初始节点较远时,将产生许多无用的节点,因此其搜索效率较低,虽然相对于计算机飞速发展的运算速度来讲,这已经不是关键问题,但仍是下一步有待改进的方面。对于八数码问题,深度优先搜索对内存的需求很少,它的缺点是它有可能错误地选择一条分支并且沿着一条很长的(甚至是无限的)路径一直走下去,因此,它是不完备的,不是最优的,一般不能保证得到最优解。A* 搜索是完备的,与使用无信息搜索相比,使用好的启发式还是能节省大量的时间和空间。但它又与其启发式函数息息相关,无法保证得到最优解。A*算法可以消耗较少的空间解决问题,但是由于每次选择均需要寻找评价函数最小的节点,因此当深度增加相应的节点数目增加时,A*算法在时间上并不占优势。然而,A*算法总可以在有限的时间内得到问题的解。结束语本实验旨在讨论八数码(及十六数码)难题几种不同的实现方法,并且通过程序对它们进行比较、分析和讨论,总结出三种算法的优缺点。通过对本课题的探讨,使我对人工智能这一领域有了更深的了解和认识。虽然我只是讨论了人工智能的一个核心部分搜索,及一个主要应用领域问题求解(主要针对八数码难题), 但在这个过程中还是取得了很大的收获。实验中还存在许多不足,有待于今后的进一步改进。另外,在这两个实验的过程中,我得到了老师耐心的指导和同学们热心的帮助,在这里对她们表示深深的感谢!

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1