想象一条线,有两个节点,A 在 -10 中,B 在 10 中,使用单向搜索,我们从 (-30, 10) 搜索,使用双向搜索,我们从 (-20, 0) 搜索和(0, 10) 和 (10, 20)。无论哪种方式,我们都在搜索 40 个步骤。现在,如果我们将其扩展为多邻居,则不难看出双向搜索与单向搜索没有什么不同。我在这里弄错了吗?
最佳答案
如果状态图是一条线,则没有增益。如果节点数量在距离上的增长超过线性增长,您就会获益。将半径为 r(关于 A)的圆的面积与半径为 r/2 的两个圆(以 A 和 B 为中心)的面积进行比较。
后者(绿色)较小。它在更多维度上更具戏剧性。在很多图中,节点的数量大致随着半径呈指数增长,然后提升幅度更大。
关于algorithm - 为什么 BFS 中的双向搜索效率更高?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26189932/