八数码问题

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

你可能感兴趣的:(八数码问题)