试举例比较各种搜索方法的效率。
试举例比较各种搜索方法的效率。




宽度优先搜索 (1) 把起始节点放到 OPEN 表中(如果该起始节点为一目标节点,则求得一个解答)。 (2) 如果 OPEN 是个空表,则没有解,失败退出;否则继续。 (3) 把第一个节点(节点 n)从 OPEN 表移出,并把它放入 CLOSED 扩展节点表中。 (4) 扩展节点 n。如果没有后继节点,则转向上述第(2)步。 (5) 把 n 的所有后继节点放到 OPEN 表的末端,并提供从这些后继节点回到 n的指针。 (6) 如果 n 的任一个后继节点是个目标节点,则找到一个解答,成功退出;否则转向第(2)步。 有界深度优先搜索 (1) 把起始节点 S 放到未扩展节点 OPEN 表中。如果此节点为一目标节点,则得到一个解。 (2) 如果 OPEN 为一空表,则失败退出。 (3) 把第一个节点(节点 n)从 OPEN 表移到 CLOSED 表。 (4) 如果节点 n 的深度等于最大深度,则转向(2)。 (5) 扩展节点 n,产生其全部后裔,并把它们放入 OPEN 表的前头。如果没有后裔,则转向(2)。 (6) 如果后继节点中有任一个为目标节点,则求得一个解,成功退出;否则,转向(2)。 等代价搜索方法以 g(i)的递增顺序扩展其节点,其算法如下: (1) 把起始节点 S 放到未扩展节点表 OPEN 中。如果此起始节点为一目标节点,则求得一个解;否则令 g(S)=0。 (2) 如果 OPEN 是个空表,则没有解而失败退出。 (3) 从 OPEN 表中选择一个节点 i,使其 g(i)为最小。如果有几个节点都合格,那么就要选择一个目标节点作为节点 i(要是有目标节点的话);否则,就从中选一个作为节点 i。把节点 i 从 OPEN 表移至扩展节点表 CLOSED 中。 (4) 如果节点 i 为目标节点,则求得一个解。 (5) 扩展节点 i。如果没有后继节点,则转向第(2)步。 (6) 对于节点 i 的每个后继节点 j,计算 g(j)=g(i)+c(i,j),并把所有后继节点 j 放进 OPEN 表。提供回到节点 i 的指针。 (7) 转向第(2)步。