用图搜索法:广度优先、深度优先和A*算法实现八数码问题 第9页

 

(1)    把起始节点s放到OPEN 表中,计算fS ,并把其值与节点S联系起来。

(2)    如果OPEN 是个空表,则失败退出,无解。

(3)    OPEN 表中选择一个f值最小的节点i。结果有几个节点合适,当其中有一个为目标节点时,则选择此目标节点,否则就选择任意一个节点作为节点i

(4)    把节点iOPEN 表中移出,并把它放入CLOSED 的扩展节点表中。

(5)    如果i是目标节点,则成功退出,求得一个解。

(6)    扩展节点i,生成其全部后继节点。对于i的没一个后继节点j

计算f ( j );

如果j既不在OPEN 表中,也不在CLOSED 表中,则用估价函数f 把它添加到OPEN 表中。从j 加一指向其父辈节点i的指针以便一旦找到目标节点时记住一个解答途径。

如果j已经在OPEN 表或CLOSED 表上,则比较刚刚对j计算过的f值和前面计算过的该节点在表中f值。如果新的f 值较小,则以此新值代替旧值。

j指向i,而不是指向它的父辈节点。

如果节点jCLOSED表中,则把它移回OPEN 表中。

(7)          转向(2)。

 

试验结果:

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 下一页

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有