1. 状态空间图
状态空间图 (状态图)实际上是一类问题的抽象表示。如:许多智力问题(八数码问题、梵塔问题、旅行商问题、八皇后问题、农夫过河问题等)。实际问题(如路径规划、定理证明、演绎推理、机器人行动规划等)都可以归结为在某一状态图中寻找目标或路径的问题。
例如:农夫过河问题:有一个农夫带一条狼、一只羊和一棵白菜过河。如果没有农夫看管,则狼要吃羊,羊要吃白菜。但是船很小,只够农夫带一样东西过河。问农夫该如何解此难题?
农夫过河问题状态空间法表示:
n 以向量(人,狼,羊,菜)表示状态,其中每个变元可取0或1,取0表示在左岸(出发点),取1表示在右岸
n 初态是:(0,0,0,0)
n 终态是:(1,1,1,1)
n 非法中间状态有:
(0,0,1,1),(0,1,1,0),(0,1,1,1),
(1,1,0,0),(1,0,0,1),(1,0,0,0)。
2.状态空间法
问题的状态空间表示(状态图表示)
状态空间的三元组(S, O, G)表示. S:初始状态集合; O: 操作集合; G:目标状态集合
状态空间的搜索策略(状态图搜索):广度优先搜索, 深度优先搜索, 启发式搜索
状态空间搜索,就是将问题求解过程表现为从初始状态到目标状态寻找这个路径的过程。由于求解问题的过程中分枝有很多,主要是求解过程中求解条件的不确定性,不完备性造成的,使得求解的路径很多这就构成了一个状态空间。问题的求解实际上就是在状态空间中找到一条路径可以从开始到结果。这个寻找的过程就是状态空间搜索。
广度优先是从初始状态一层一层向下找,直到找到目标 为止。
深度优先是按照一定的顺序先查找完一个分支,再查找另一个分支,以至找到目标为止。
广度和深度优先搜索有一个很大的缺陷就是他们都是在一个给定的状态空间中穷举。这在状