- 八数码问题: 将初始状态向量经过24条规则,最终得到目标状态<1,2,3,4,5,6,7,8,0>,每次移动代价等值,为1
- 八数码问题的搜索过程:
- 设置状态为十一位向量,第一位是所在层,第二位是层中Id,后九位是目标当前状态,即<层数,位序,九位状态>。
- 将起始节点放入OPEN表
- 若OPEN不为空,则继续
- 将第一个节点n从OPEN表中移出,放入CLOSED中,并开始扩展节点n
- 根据扩展规则,一个节点可以扩展出四种状态
- 根据节点类型(三种),选择对后继节点的操作。如果是正常节点(既不在OPEN中也不再CLOSED中)则放入OPEN中,并提供此后继节点回到n的指针
- 若后继节点中无目标状态,则继续循环,转到操作2
- 注意:每个新的节点必须与OPEN和CLOSED表比较,只保留从未产生过的节点。最终目标状态会出现在OPEN表中,但解(过程)要在CLOSED表中寻找。
解的示意图