通过比较A*算法,广度优先搜索策略,深度优先搜索策略这三种算法,可以得出结论:
在初始状态为283104765,目标状态为123804765的八数码时,使用A-Star算法,从时间和步骤上都是最优的,并且可以看到:
- A-Star_Time used: 0.00011650000000007488 共5步
- BFS_Time used: 0.00011709999999975906 共5步
- DFS_Time used: 0.0004444000000205506 共1579步
解释一下:
初始状态为283104765代表一个3*3的矩阵,这个矩阵是这样的:
| 2 | 8 | 3 |
| 1 | 0 | 4 |
| 7 | 6 | 5 |
在第4版<<人工智能原理及其应用>>这本书中,八数码的题目中,初始状态即283104765
同理,目标状态为123804765表示的矩阵是这样的:
| 1 | 2 | 3 |
| 8 | 0 | 4 |
| 7 | 6 | 5 |
八数码的问题描述为:在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字。棋盘中留有一个空格,空格用-1来表示。空格周围的棋子可以移到空格中。要求解的问题是:给出一种初始布局(初始状态)和目标布局,找到一种最少步骤的移动方法,实现从初始布局到目标布局的转变。
好的,有了以上基础,我们就可以开始解决八数码问题了!