目录
引言
有信息搜索又称为启发式搜索:
使用问题本身的定义之外的特定知识——比无信息的搜索策略更有效地进行问题求解。
最佳优先搜索(best-first search):
我们要考虑的一般算法称为最佳优先搜索。 最佳优先搜索结点是基于评价函数值被选择扩展的。评估函数被看作是代价估计,因此评估值最低的结点被选择首先进行扩展。
最佳优先图搜索的实现与一致代价搜索类似,不过最佳优先是根据值而不是值对优先级队列排队。
启发函数(heuristic function):
对的选择决定了搜索策略(深度优先搜索是最佳优先树搜索的特殊情况)。大多数的最佳优先搜索算法的由启发函数构成:
结点到目标结点的最小代价路径的代价估计值
(要注意的是以结点为输入,但它与不同,它只依赖于结点状态)。
若n是目标结点,则。
启发式函数常用的测距方法:
曼哈顿距离
两点之间沿着坐标轴方向的累积距离
欧几里得距离
两点之间的直线距离
描述一下下面使用的问题情景:
在地图中寻找起始城市到达目标城市的路径。如未指明,起始城市默认为:;目标城市默认为:。
启发式函数默认使用直线距离:
2.1 贪婪最佳优先搜索
贪婪最佳优先搜索(greedy best-first search):
贪婪最佳优先搜索试图扩展离目标最近的结点,理由是这样可能可以很快找到解。
启发函数:
只用启发式信息,即。
将此算法应用在罗马尼亚问题中;使用直线距离启发式,记为。 如果目的地是,我们需要知道到达的直线距离,如图所示。不能由问题本身的描述计算得到。而且,由经验可知和实际路程相关,因此这是一个有用的启发式。
下图给出了使用的贪婪最佳优先搜索寻找从到的路的过程:
- 从出发最先扩展,因为与和相比,它距离最近。
- 下一个扩展的结点是,因为它是离目标最近的。
- 接下来生成了,也就是目标结点。
完备性:贪婪最佳优先搜索不是完备的。
贪婪最佳优先搜索与深度优先搜索类似,即使是有限状态空间,它也是不完备的。考虑从到。
理想状态下,启发式建议先扩展,因为它离最近,但是这是个死胡同。解法是先到——根据启发式这是离目标较远的一步,然后继续前往,到。
然而,算法始终找不到这个解,因为扩展则将