相关疑难解决方法(0)

如果广度优先搜索(BFS)可以更快地做同样的事情,为什么要使用Dijkstra的算法?

两者都可用于从单一来源找到最短路径.BFS运行O(E+V),而Dijkstra运行O((V+E)*log(V)).

另外,我见过Dijkstra在路由协议中使用了很多.

因此,如果BFS可以更快地做同样的事情,为什么要使用Dijkstra的算法呢?

algorithm graph dijkstra breadth-first-search

99
推荐指数
5
解决办法
4万
查看次数

寻找多条短路径的算法

寻求一种能够产生 N 条短路径的算法。

有人有在有向图中查找多条短路径的算法的经验吗?我的应用程序用于语言(查找同义词链),但从逻辑上讲,这可能用于地理或社交网络。我想要显着不同的路径,而不仅仅是沿途交换几个节点。我真的很想知道是否有办法避免“枢纽”,即大型机场或超级连接器;或者在语言中,有很多含义的单词。

(对于我的应用程序,我已经用 Dijkstra 和 A-star 解决了这个问题,但除了在获得第一条路径后更改权重之外,我还没有一个好的方法来获得多条路径。)

例如(如果是社交网络),我如何找到连接我和你的多条路径,沿途大多是不同的人。可能有 4-7 个分离点,这是可能的。对于语言和社交网络来说,通常有 6 度左右的分离度。即很少需要 20 个以上的节点。

我见过Dijkstra 算法来找到所有可能的最短路径这是最短路径算法的一种变体在寻找最短路径时,BFS 和 Dijkstra 算法有什么区别?用 A* 算法找到几条最短路径——但没有一条是我所寻求的。

当然有人已经弄清楚了这一点,但我不知道要搜索什么。

algorithm graph dijkstra breadth-first-search shortest-path

6
推荐指数
1
解决办法
1120
查看次数