AStar算法解决八数码问题.docVIP

  • 87
  • 0
  • 约2.29千字
  • 约 8页
  • 2019-12-16 发布于广东
  • 举报
江南大学物联网工程学院实验报告 课程名称 人工种能 实验名称 A*算法解决8数码问题 实验日期 2018320 班级 计科1501 姓名 周启航 学号 1030415127 一、实验目的: 修改A*算法,使之能解决N*N矩阵八数码问题 问题描述: 八数码难题: 在3X3方格棋盘上,分别放置了标有数字123,4,5,6,7,8的八张牌,初始状态S0可自己随 机设定,使用的操作有:空格上移,空格左移,空格右移,空格下移。 算法描述: 算法描述: L状态描述 八数码的任何一种摆法就是一个状态,所有摆法即为状态集S,他们构成了一个状态空间, 其大小为9包括8个数码和一个空格,每个数码就是一个分离的独立的子空间,其所在位置为x: i/3, y: i%3.相应的操作算子就是数码的移动即:将空格向上移UP、将空格向下移DOWN、将空 格向左移LEFT、将空格向右移RIGHT,经过一些操作算子后达到目标状态。 启发函数设计 启发函数为现在的状态屮各位置与目标状态各位置数码值不同的个数,例如:现在状态: w二 123456780,目标状态为:t二 123456708,则 h (n) =2. 规则的判断条件 把未扩展的状态存入open表,排序后取岀优先状态扩展搜索,将扩展后的存入closed表,循环 执行直到扩展出目标状态。 算法流程图 核心代码 操作算子: int solve() 〃搜索过程 {

文档评论(0)

1亿VIP精品文档

相关文档