基于A星算法的小动物过河问题研究..docxVIP

基于A星算法的小动物过河问题研究..docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于A星算法的小动物过河问题研究.

基于A*算法的小动物过河问题研究摘要:A*算法是一种常见的启发式搜索算法。使用A*算法能够快速在状态空间中搜索到问题比较好的解决方案。本文通过对A*算法的分析,使用A*算法搜索一个益智类游戏——六个小动物过河的解决方案,并从中找到最优解。关键字:A*算法; 代价; 启发式搜索1.概述A*的算法已经广泛的运用于游戏路径寻找的算法中。A*算法能够在复杂的带权图类型数据结构中搜索出两个节点的路径。相对于盲目搜索算法,A*算法加入了启发式信息,算法可以利用这些信息优先搜索最有可能得到解或者最有可能得到最优解的节点以加快算法的搜索过程,一旦得到一个解,算法返回这个解。A*算法的启发式信息提高搜索算法的响应速度,适用于各种对问题的解要求不高,而对反应速度要求高的应用,例如游戏中在有障碍物的地图上游戏NPC的移动路径自动选择,八数码问题求解等等。但是,A*算法由于使用了启发式信息来引导搜索过程,而且只要搜索到问题的一个解就停止,所以可能会错过问题的最优解。本文主要利用A*算法来寻找一个益智类小游戏的答案,使用状态空间法和隐式图搜索的方式,搜索状态转移过程并找到问题的一个解。2.问题描述所谓六个小动物过河问题是这样一种游戏:六个小动物,分别是大狮子、大狼、大老虎、和他们的幼崽小狮子、小狼、小老虎乘船过河。岸边只有一只船、船中至多可以装载两只动物(可以有一只动物单独划船过河),并且过河的途中需要其中一只动物驾驶船只。三只大的动物之间不怀好意,只要看到其他大动物不在幼崽身边就吃掉它们的幼崽,例如大狼如果发现大狮子不在小狮子身边,就吃掉小狮子。六只动物大狮子、大狼、大老虎都会划船,小动物中只有小狮子会划船,小狼和小老虎不会划船。开始时船和六只动物处于河流的同一边,动物过河的过程中船只可以来回摆渡,并且只有船和动物在一边,动物才可以划船过河。现在寻找一种过河方案,使得六只动物能够安全过河,即不发生大动物吃掉其他动物幼崽的情况。2.1待解决问题建模对上述问题进行状态空间建模,其中六个动物和船只的位置只有两种状态分别为在河的一边和另一边。问题的初始条件START代表六个小动物和船只都在河流的一边,问题的终止状态END时六只动物和船只都在河流的另一边。问题的中间状态STATE代表的是游戏开始后六只动物和船的位置在游戏过程中的状态。问题求解就是寻找一系列的状态(STARTSTATE1STATE2..END),其中要求各个中间状态STATE1、STATE2……中所有的小动物都是安全的。2.2问题的搜索形式描述使用七个状态标志位来描述问题的状态空间,分别为X=(BigLion、LittleLion、BogWolf、LittleWolf、BigTiger、LittleTiger、Ship)。这些标志分别只能取两个离散的值,0或者1,其中0表示对应的事物在河流的一边,1表示在河流的另一边。问题的初始状态为(0、0、0、0、0、0、0),问题的目标状态是(1、1、1、1、1、1、1)。状态发生转移的条件是小动物所在的一边有船且有乘船过河的动物中至少有一只动物能够划船,例如(0、0、0、0、0、0、0)能够转移到(1、1、0,、0、0、0、1),代表的实际意义是大狮子和小狮子乘船过河,过河后船在河的另一边,而从(0、0、0、0、0、0、0)是不能够转移到(0、0、0、1、0、1、1)的,这种转移的实际意义是小狼和小老虎划船过河,这显然不满足问题的设定。状态合法性条件是幼崽身边有其他的大动物时,它的身边一定要有自己对应的大动物在旁边保护,例如(1、0、1、0、0、0、1)是一个不合法的状态,代表的意义是大狮子和大狼不在小狮子、小狼身边,大老虎会将他们吃掉。求解问题的过程就是在状态转移条件和状态合法性条件的限制下搜索一个从初始状态到目标状态的序列,最后通过这个状态序列来得到小动物的行动方案。问题的求解实际上就是在状态空间中找到一条路径可以从初始状态到目标状态,这个寻找的过程就是状态空间搜索。经分析六个动物过河问题的搜索策略共有:1.广度优先搜索;2.深度优先搜索;3.有界深度优先搜索;4.最好优先搜索;5.局部择优搜索,等等。常用的状态空间搜索有深度优先和广度优先。广度优先是从初始状态一层一层向下找,直到找到目标为止。深度优先是按照一定的顺序前查找完一个分支,再查找另一个分支,以至找到目标为止。由于有些条件下状态空间有可能是无限的,每一个状态空间分支空间都可能不能在有限的时间内穷尽,所以一般会设置一个最大的搜索深度,控制搜索及时从一个分支返回。启发式搜索就是对每一个搜索的位置进行评估,得到最好的位置,再从这个位置进行搜索直到目标。这样可以省略大量无谓的搜索路径,提高了效率。上述几个方中广度优先搜索法是可采纳的,有界深度优先搜索法是不完备的,最好优先和局部择优搜索法是启发式搜

文档评论(0)

ds2fdsx + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档