- 9
- 0
- 约5.76千字
- 约 8页
- 2021-03-06 发布于辽宁
- 举报
PAGE
PAGE 1
滑块问题求解系统
设计任务
用智能搜索算法中的盲目搜索和启发式搜索这两类基本方法设计八数码问题的求解系统。所谓八数码问题是指这样一种游戏:将分别标有数字 1,2,3,…,8 的八块正方形数码牌任意地放在一块 3×3 的数码盘上.放牌时要求不能重叠.于是,在 3×3 的数码盘上出现了一个空格. 现在要求按照每次只能将与空格相邻的数码牌与空格交换的原则,将任意摆放的数码盘逐步摆成某种特殊的排列.如下图表示了一个具体的八数码问题求解.
2
8
3
1
4
7
6
5
1
2
3
8
4
7
6
5
设计环境及使用说明
设计环境主要采用VC++开发环境。
系统已实现的功能
用广度优先搜索算法和两种A*搜索算法实现八数码问题的求解系统。
算法思想及分析
广度优先搜索算法
算法思想:
这是一种盲目搜索算法。算法主要思想是从初始结点开始依次沿其上下左右四个方向扩展结点,并逐一检查这些后继结点是否为目标结点,若不等于目标结点则把该后继结点插入到数组末尾。然后取数组中未扩展的第一个结点重复以上操作,直到得到目标结点为止或在限定步数以内未得到解。
数据结构:
算法当中的结点用结构体实现,
typedef struct{
int num[9]; //八个数码用一个一维数组来存储。
char expension; //记录是
原创力文档

文档评论(0)