• 0

    用户访问量

  • 0

    注册用户数

  • 0

    在线视频观看人次

  • 0

    在线实验人次

智能搜索之有序搜索的原理特点以及例子

作者:云创智学|发布时间:2021-12-14 11:53:39.0|来源:云创智学

有序搜索的原理特点

有序搜索(Ordered Search)又称之为最佳优先搜索(Best First Search),是一种启发式搜索算法,我们也可以将它看作广度优先搜索算法的一种改进;最佳优先搜索算法在广度优先搜索的基础上,用启发估价函数对将要被遍历到的点进行估价,然后选择代价小的进行遍历,直到找到目标节点或者遍历完所有的点,算法结束。

要实现最佳优先搜索我们必须使用一个优先队列(Priority Queue)来实现,通常采用一个open 优先队列和一个closed 集open 优先队列用来储存还没有遍历将要遍历的节点,而closed 集用来储存已经被遍历过的节点。我们用下面图作为一个示例图来描述最佳优先搜索过程。

有序搜索的例子

最佳优先搜索的过程如下图所示,可以被描述为:

搜索出的路径为:A-H-G-D-E,整条路径的代价和为16。


(1)将根节点放入优先队列 open 中。

(2)从优先队列中取出优先级最高的节点X 。

(3)根据节点X 生成子节点Y :

X 的子节点Y 不在 open 队列或者 closed 中,由估价函数计算出估价值,放入open 队列中。

X 的子节点Y 在open 队列中,且估价值优于open 队列中的子节点Y ,将 open 队列中的子节点Y 的估价值替换成新的估价值并按优先值排序。

X 的子节点Y 在closed 集中,且估价值优于closed 集中的子节点Y ,将 closed 集中的子节点Y 移除,并将子节点Y 加入open 优先队列。

(4)将节点X 放入closed 集中。

(5)重复过程2,3,4直到目标节点找到,或者open 为空,程序结束。

联系方式
企业微信