目录
一、实验内容
1、实验任务
3х3九宫棋盘,放置数码为1~8的8个棋子,棋盘中留有一个空格,空格周围的棋子可以移动到空格中,从而改变棋盘的布局。根据给定初始布局和目标布局,移动棋子从初始布局到达目标布局,求解移动步骤并输出。请设计算法,使用合适的搜索策略,在较少的空间和时间代价下找到最短路径。
2、实验要求
- 对九宫重排问题,建立图的启发式搜索求解方法
- 用A*算法求解九宫重排问题
二、A*算法的相关概念
1.介绍
A*(A-Star)算法是一种静态路网中求解最短路径最有效的直接搜索方法,也是许多其他问题的常用启发式算法。
2.启发式函数
启发式函数公式表示为: f(n)=g(n)+h(n),其中
f(n) 是从初始状态经由状态n到目标状态的代价估计,
g(n) 是在状态空间中从初始状态到状态n的实际代价,
h(n) 是从状态n到目标状态的最佳路径的估计代价。
3.open表与close表
- open表:简单认为是一个未搜索节点的表
- close表:简单认为是一个已完成搜索的节点的表(即已经将下一个状态放入open表内)
对于这两个表的操作有如下规则:
- 规则一:对于新添加的节点S’(open表和close表中均没有这个状态),S’直