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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

人工智能大作业八数码问题Word文档格式.docx

1、 A* 算法本组成员:本人分工:主要负责进行问题分析,提出解决方案,进行系统设计,算法上具体负责主函数的编写。1 引言八数码问题是人工智能的一个经典的问题。文中通过设计一个基于A* 算法的状态空间搜索程序, 对于给定的初始状态, 采用h ( n ) = p ( n ) 表示以每一个将牌与目标位置之间距离的总和作为启发函数的度量, 并用可视化编程语言VC+ + 来实现该问题。2 算法原理与系统设计1)A*算法思想A*算法是对A算法的估价函数f(n)=g(n)+h(n)加上某些限制后得到的一种启发式搜索算法。A*算法对A算法中的g(n)和h(n)分别提出如下限制:第一,g(n)是对最小代价g*(n

2、)的估计,且g(n)0;第二,h(n)是最小代价h*(n)的下界,即对任意节点n 均有h(n)h*(n)。即满足上述两条限制的A算法称为A*算法。2)估价函数用来估算节点希望程度的量度,叫估价函数f(x),f(x)=g(x)+h(x)。g(x)为从初始节点到当前节点已经付出的代价,h(x)为从当前节点到目标节点的最优路径的估计代价。本算法中令g(x)为当前节点的深度depth,h(x)为当前节点每个数字位与目标节点数字位间距离和dist,进一步考虑当前结点与目标结点的距离信息,令启发函数h ( n )为当前8个数字位与目标结点对应数字位距离和(不考虑中间路径),满足h ( n ) = h *

3、( n ), 且对于目标节点有 h ( t ) = 0,对于结点m和n (n 是m的子结点) 有h ( m ) h ( n ) = 1满足单调限制条件。3)open和closed表的数据结构表示对open表的操作,每次需要得到所有待扩展结点中 f 值最小的那个结点。closed表存储已扩展的结点间的扩展关系,主要用于输出路径。closed表中任意一个结点都存储有它的前驱结点的信息,考虑closed表中任意一个结点,如果它是初始结点,它没有前驱结点,如果不是根结点,扩展该结点时它的前驱结点已经记录。从而在closed表中形成扩展关系的树状结构。因为只需要前驱点的下标位置,可以用数组实现。每个结点

4、记录数码格局和它的前驱结点的下标。4)问题分析首先,八数码问题包括一个初始状态(src) 和 目标状态(dest),所谓解八数码问题就是在两个状态间寻找一系列可过渡状态。这个状态是否存在就是我们要解决的第一个问题。解决八数码问题,主要面临的问题有:Q1)开始状态S到目标状态D是否可解;Q2)扩展节点的选择;Q3)扩展待扩展节点,该节点是否已扩展过;Q4)判断是否已达目标节点D;问题Q 1)通过逆序数的奇数偶数来判断。因为在空白移动过程中,数码的逆序数不改变。左右移动,数码序列不变。上下移动,数码序列中某个数字则移动了两位。问题的实质就是:如果是N*N的数码盘的话,左右移动,数码序列不变;上下移

5、动则数码序列变动N-1位。若N为奇数则在变动过程中其逆序数不会改变。而八数码问题为3*3矩阵,3为奇数,故逆序数不作改变。故可通过判断当前状态S的逆序数以及目标状态SD的数字序列的逆序数的奇偶性是否相同来判断该问题是否可解。问题Q2)扩展节点的选择通过getmin函数,根据估价函数f来获得代价最小的节点。问题Q3)扩展节点即为上下左右四个方向移动空格到没有扩展过的节点中去,要判断是否扩展过,只要跟之前的状态做比较即可。问题Q4)是否达到目标节点,将当前节点和目标节点进行比较。算法的功能:产生8数码问题的解(由初始状态到达目标状态的过程)输入:初始状态,目标状态输出:从初始状态到目标状态的一系列

6、过程算法描述:Begin: 读入初始状态和目标状态,并计算初始状态评价函数值f; 根据初始状态和目标状态,判断问题是否可解; If(问题可解) 把初始状态假如open表中; While(未找到解&状态表非空) 在open表中找到评价值最小的节点,作为当前结点;判断当前结点状态和目标状态是否一致,若一致,跳出循环;否则跳转到;对当前结点,分别按照上、下、左、右方向移动空格位置来扩展新的状态结点,并计算新扩展结点的评价值f并记录其父节点;对于新扩展的状态结点,判断其是否重复,若不重复,把其加入到open表中;把当前结点从open表中移除; End while End if输出结果; End算法流程

7、如下:3 系统实现5、main函数,主程序运行步骤为:(1)先读入八数码初始状态src,以及目标状态dest。通过open表的push_back()函数,把初始状态src存入open中。(2)A*算法搜索开始,设置while循环,直到找到目标状态或者open表为空或者无解的情况下结束。(3)不同的八数码初始状态和目标状态不一定有解,所以要根据两种状态下的奇偶性是否一致来判断(详见实验思想的问题分析)。(4)若奇偶性一致,则继续搜索。如果测试到open表为空,没有找到目标状态,则表示无解,判断open表是否为空,函数如下:(5)open非空,搜索未结束,则寻找open表中最小估价值节点进行扩展。

8、设置int temp,du,dd,dr,dl; Node nu,nd,nr,nl; temp为临时变量,d*为向上下左右移动后的距离dist, n*为向上下左右移动后的八数码状态节点,扩展节点就是通过空格的上下左右移动来获得子节点。其中,扩展节点之前得先判断节点是否可扩展,即是否未扩展过,不存在于open,close表中。Distance函数是用来计算当前状态到目标状态的距离,即坐标差绝对值之和。(6)最后,如果发现扩展的节点与目标节点一样,则表示找到最优解使得估价函数值最小,将搜索步骤打印出来。4 实验或测试结果1无解的情况2、有解的情况5 结论通过本次实验,我更加深入的了解了A*算法、启发

9、函数以及搜索方法。启发式搜索有很多种方法,比如:局部择优搜索法,最好优先搜索法等等,其中也包括了A*算法,这些算法都使用了启发函数,但在具体的选取最佳搜索节点时的策略不同。A*是众多搜索方法中综合效果最好的。使用A*算法,也要懂得构建估价函数,不同的估计函数对实验结果影响很大。比如该实验,对于f(n)的考虑最简单的便是比较每个状态与目标状态相比错位的牌数。这个启发意味着如果其他条件相同,那么错位的牌数最少的状态可能最接近目标状态。然而这个启发没有使用从棋盘格局中可以得到的所有信息,因为它没有把牌必要的移动距离纳入考虑。一个“更好一点”的启发是对错位的牌必须要移动的距离求和,为了达到这个目的,每

10、张牌必须要移动的每个方格算为一个距离单位。这两种启发都存在一种不足,就是没有认识到点到牌的难度。也就是说,如果两张牌是彼此相邻的,而且目标是要求互相颠倒它们的位置,那么要把它们放到适当的位置需要远不止两次的移动,因为各张牌必须相互绕来绕去。这个实验中,我采取的是把距离加上深度,来作为估价函数值。除此之外,还有很多细节都可以影响实验,这里就不一一列举了。参考文献1 Artificial IntelligenceA Modern Approach. Stuart Russell, Peter Norvig. 人民邮电出版社,20042 Artificial Intelligence, Rob Callan. 电子工业出版社,2004 3林尧瑞, 马少平. 人工智能导论 M . 北京: 清华大学出版社, 1989. 4马少平, 朱小燕, 人工智能 M . 北京: 清华大学出版社, 2004. 5尼尔逊N J. 人工智能原理 M . 北京: 科学出版社, 1983.

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

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