algorithm - 为什么 BFS 中的双向搜索效率更高?

标签 algorithm search

想象一条线,有两个节点,A 在 -10 中,B 在 10 中,使用单向搜索,我们从 (-30, 10) 搜索,使用双向搜索,我们从 (-20, 0) 搜索和(0, 10) 和 (10, 20)。无论哪种方式,我们都在搜索 40 个步骤。现在,如果我们将其扩展为多邻居,则不难看出双向搜索与单向搜索没有什么不同。我在这里弄错了吗?

最佳答案

如果状态图是一条线,则没有增益。如果节点数量在距离上的增长超过线性增长,您就会获益。将半径为 r(关于 A)的圆的面积与半径为 r/2 的两个圆(以 A 和 B 为中心)的面积进行比较。

enter image description here

后者(绿色)较小。它在更多维度上更具戏剧性。在很多图中,节点的数量大致随着半径呈指数增长,然后提升幅度更大。

关于algorithm - 为什么 BFS 中的双向搜索效率更高?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26189932/

相关文章:

search - Cassandra中的二级索引和反向索引有什么区别?

android - AdMob API 和关键字

python - 如果我必须为Python选择一个html抓取库,我应该选择哪一个

ruby-on-rails - 如何在 Rails 中组合两个搜索参数

下降网格项目的算法

algorithm - 不相交数据结构中森林的组合

algorithm - 计算组合

node.js - EdgeNGram autocomplete_filter对前缀搜索有意义吗?

c++ - 如何修改 Dijkstra 算法以在最短路径中至少具有 X 个顶点或 K 个边

algorithm - Prim 的 MST 算法的时间复杂度