Assign(node_up, index);//向上扩展的节点
int dist_up = MAXDISTANCE;
(2)将当前状态的空格下移
Node node_down;
Assign(node_down, index);//向下扩展的节点
int dist_down = MAXDISTANCE;
(3)将当前状态的空格左移
Node node_left;
Assign(node_left, index);//向左扩展的节点
int dist_left = MAXDISTANCE;
(4)将当前状态的空格右移
Node node_right;
Assign(node_right, index);//向右扩展的节点
int dist_right = MAXDISTANCE;
通过定义结点状态和发生器函数,就解决了 8 数码问题的隐式图的生成问
题。接下来就是搜索了。
3.图的搜索策略
经过分析,8 数码问题中可采用的搜速策略共有:1.广度优先搜索、2.深度
优先搜索、2.有界深度优先搜索、4.最好优先搜索、5.局部择优搜索,一共五
种。其中,广度优先搜索法是可采纳的,有界深度优先搜索法是不完备的,最
好优先和局部择优搜索法是启发式搜索法。
实验时,采用了广度(宽度)优先搜索来实现。
(三、)广度(宽度)优先搜索原理
1. 状态空间盲目搜索——宽度优先搜索
其基本思想是,从初始节点开始,向下逐层对节点进形依次扩展,并考察它
是否为目标节点,再对下层节点进行扩展(或搜索)之前,必须完成对当层的
所有节点的扩展。再搜索过程中,未扩展节点表 OPEN 中的节点排序准则是:
先进入的节点排在前面,后进入的节点排在后面。其搜索过程如图(1)所示。
C
S
B
E
D
A
I
F
H
G
评论0
最新资源