(2)局部择优搜索:是对深度优先搜索方法的一种改进。
基本思想:当一个节点被扩展以后,按f(x)对每一个子节点计算估价值,并选择最小者作为下一个要考察的节点。因为每次只在子节点的范围内选择下一个要考察的节点,范围比较狭窄,称为局部择优搜索。
搜索过程
<1>OPEN:=S0 ,f:=f(S0)
<2> LOOP IF OPEN=( ) THEN EXIT(FAIL)
<3> n:=FIRST(OPEN),REMOVE(n,OPEN),ADD(n,CLOSE)
<4> IF GOAL(n) THEN EXIT(SUCCESS)
<5> IF EXPAND(n)=( ) GO LOOP
<6> EXPAND(n)->M(mi), f(xi):=g(xi)+h(xi)
ADD(mi,OPEN),mi^->n, GO LOOP

--*深度优先搜索:以子节点的深度作为选择标准,后生成的节点先考察
--*代价树优先搜索:以各子节点到父节点的代价作为选择标准,代价小者优先选择
--*局部优先搜索:以代价函数为选择标准,f值最小的节点优先选择
--*f(x)=g(x)代价树深度优先搜索
--*f(x)=d(x) d(x)表示节点x的深度,深度优先搜索
--*所以前两者可以看作是第三者的一个特例,三者都是以子节点作为考察范围的

(3)全局择优搜索
基本思想:每次总是从OPEN表的全体节点中选择一个估价值最小的节点搜索过程
<1> OPEN:=S0 ,f:=f(S0)
<2> LOOP IF OPEN=( ) THEN EXIT(FAIL)
<3> n:=FIRST(OPEN),REMOVE(n,OPEN),ADD(n,CLOSE)
<4> IF GOAL(n) THEN EXIT(SUCCESS)
<5> IF EXPAND(n)=( ) GO LOOP
<5> EXPAND(n)->M(mi), f(xi):=d(xi)+h(xi),mi^->n,ADD(mi,OPEN),(OPEN)?
<6> GO LOOP

 点击看详解及大图
 点击看大图