启发式图搜索算法
摘 要:启发式搜索策略概述和有序搜索。启发式搜索弥补盲目搜索的不足,
提高搜索效率。一种方法用于排列待扩展节点的顺序,即选择最有希望的节点
加以扩展,那么,搜索效率将会大为提高。进行搜索技术一般需要某些有关具
体问题领域的特性的信息。
关键词:启发式搜索;估价函数;有序搜索;A*算法;
正文:
启发式图搜索的意义因为无信息图搜索算法的效率低,耗费过多的计算空间与时间,
这是组合爆炸的一种表现形式。所以引入了启发式图搜索算法。
启发式图搜索算法就是进行搜索技术一般需要某些有关具体问题领域的特性的信息,
把此种信息叫做启发信息。利用启发信息的搜索方法叫做启发式搜索方法。关于图搜索的
启发式搜索算法就叫做启发式图搜索算法。
启发式图搜索策略:假设初始状态、算符和目标状态的定义都是完全确定的,然后决
定一个搜索空间。因此,问题就在于如何有效地搜索这个给定空间。
启发信息按其用途可分为下列 3 种:
(1) 用于决定要扩展的下一个节点,以免像在宽度优先或深度优先搜索中那样盲目地
扩展。
(2) 在扩展一个节点的过程中,用于决定要生成哪一个或哪几个后继节点,以免盲目
地同时生成所有可能的节点。
(3) 用于决定某些应该从搜索树中抛弃或修剪的节点。
启发信息的状态空间搜索算法,即决定哪个是下一步要扩展的节点。这种搜索总是选
择“最有希望”的节点作为下一个被扩展的节点。这种搜索叫做有序搜索(ordered
search)。有关具体问题领域的信息常常可以用来简化搜索。一个比较灵活(但代价也较大)
的利用启发信息的方法是应用某些准则来重新排列每一步 OPEN 表中所有节点的顺序。然
后,搜索就可能沿着某个被认为是最有希望的边缘区段向外扩展。应用这种排序过程,需
要某些估算节点“希望”的量度,这种量度叫做估价函数(evalution function)。所谓的估价
函数就是为获得某些节点“希望”的启发信息,提供一个评定侯选扩展节点的方法,以便确
定哪个节点最有可能在通向目标的最佳路径上 。f(n)——表示节点 n 的估价函数值建立估
价函数的一般方法:试图确定一个处在最佳路径上的节点的概率;提出任意节点与目标集
之间的距离量度或差别量度;或者在棋盘式的博弈和难题中根据棋局的某些特点来决定棋
局的得分数。这些特点被认为与向目标节点前进一步的希望程度有关。
有序搜索应用某个算法(例如等代价算法)选择 OPEN 表上具有最小 f 值的节点作为下
一个要扩展的节点。这种搜索方法叫做有序搜索(ordered search)或最佳优先搜索(best-
rst search),而其算法就叫做有序搜索算法或最佳优先算法。尼尔逊曾提出一个有序搜
索的基本算法。估价函数 f 是这样确定的:一个节点的希望程序越大,其 f 值就越小。被选
为扩展的节点,是估价函数最小的节点。选择 OPEN 表上具有最小 f 值的节点作为下一个
要扩展的节点,即总是选择最有希望的节点作为下一个要扩展的节点。
有序状态空间搜索算法
(1) 把起始节点 S 放到 OPEN 表中,计算 f(S)并把其值与节点 S 联系起来。
(2) 如果 OPEN 是个空表,则失败退出,无解。
(3) 从 OPEN 表中选择一个 f 值最小的节点 i。结果有几个节点合格,当其中有一个为
目标节点时,则选择此目标节点,否则就选择其中任一个节点作为节点 i。
- 1
- 2
前往页