关于a算法实现的8数码问题(人工智能).pdfVIP

关于a算法实现的8数码问题(人工智能).pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
关于 A 算法实现的 8 数码问题 ( 人工智能 ) 基于 A 星算法解决 8 数码问题的编程实现 基于 A* 算法解决把数码问题 《人工智能》 专 业: 信息与计算科学 班 级: 101001 学 号: 101001102 姓 名: 陈 斌 指导老师: 时 华 日 期: 2013 年 10 月 14 日 - 0 - 基于 A 星算法解决 8 数码问题的编程实现 一、问题描述 8 数码问题又称 9 宫问题,与游戏“华容道”类似。意在给定的 3 3 棋格 的 8 个格子内分别放一个符号,符号之间互不相同,余下的一格为空格。并且 通常把 8 个符号在棋格上的排列顺序称作 8 数码的状态。开始时,规则给定一 个初始状态和一个目标状态,并要求被试者对棋格内的符号经过若干次移动由 初始状态达到目标状态,这个过程中只有空格附近的符号可以朝空格的方向移 动,且每次只能移动一个符号。 为方便编程和表示, 本文中 8 个格子内的符号分别取 1—8 的 8 个数字表示, 空格用 0 表示。并给定 8 数码的初始状态和目标状态分别如图 1、2 所示。 图 1 初 始 状 态 图 2 目标状态 则要求以图 1 为初始状态,通过交换 0 和 0 的上、下、左、右四个方位的 数字(每次只能和其中一个交换) ,达到图 2 所示目标状态。 二、算法设计 根据任务要求,本文采用 A* 搜索算法。但要在计算机上通过编程解决该问 题,还应当解决该问题在计算机上表示的方式,并设计合适的启发函数,以提 高搜索效率。 ①状态的表示 在 A*算法中,需要用到 open 表和 closed 表,特别是在 open 表中,待扩展 节点间有很严格的扩展顺序。因此在表示当前状态的变量中,必须要有能指向 下一个扩展节点的指针,以完成对 open 表中元素的索引。从这一点上看, open 表中的元素相互间即构成了一个线性表,因此初步选定使用结构体表示问题的 状态。 如图 3 所示,表示问题的结构体包括表示当前节点状态的 DATA和指向 open 表中下一个待扩展节点的指针 NEXT。 图 3 结构体 - 1 - 基于 A 星算法解决 8 数码问题的编程实现 现在进一步考虑 DATA中包括的内容: 如图 1、2 所示, 8 数码问题的提出是以一个 3 3 数表表示的,因此本文中 采用一个 3 3 的二维数组 s[3][3] 表示当前状态的具体信息。 而为了保证在搜索 到目标状态后能够顺利复现寻优路径,当前状态的

文档评论(0)

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

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

1亿VIP精品文档

相关文档