双向搜索

双向搜索算法是一种图的遍历算法,用于在有向图中搜索从一个顶点到另一个顶点的最短路径。算法同时运行两个搜索:一个从初始状态正向搜索,另一个从目标状态反向搜索,当两者在中间汇合时搜索停止。在很多情况下该算法更快,假设搜索一棵分支因子b的树,初始节点到目标节点的距离为d,该算法的正向和反向搜索复杂度都是O(b^(d/2)) (大O符号),两者相加后远远小于普通的单项搜索算法(复杂度为O(b^d))。

在A*搜索算法中,双向搜索的启发式函数可以定义为:正向搜索为到目标节点的距离,反向搜索为到初始节点的距离。

Ira Pohl (1971)第一个设计并实现了双向启发式搜索算法。Andrew Goldberg和其他人解释了双向搜索版的戴克斯特拉算法的正确完结条件。

原文地址:
https://zh.wikipedia.org/wiki/%E5%8F%8C%E5%90%91%E6%90%9C%E7%B4%A2

知识共享 署名-相同方式共享 3.0协议之条款下提供

文章作者: 张拓
文章链接: http://www.xssl.online/%e5%8f%8c%e5%90%91%e6%90%9c%e7%b4%a2/
版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0 许可协议。转载请注明来自 张拓的博客
浏览次数: 543

张拓

陕西西安蓝田张拓QQ1070410059。一生所求不过“心安”二字。 然,尘世多纷扰。

发表回复