73得票8回答
贝尔曼-福德算法与迪杰斯特拉算法:在什么情况下贝尔曼-福德更好?

在做了大量谷歌搜索后,我发现大多数来源都表示Dijkstra算法比Bellman-Ford算法“更高效”。但是在什么情况下,Bellman-Ford算法比Dijkstra算法更好? 我知道“更好”是一个广泛的说法,所以具体来说,我指的是速度和空间(如果适用)方面。肯定有一些情况下,Bellm...

23得票3回答
我们能否将贝尔曼-福德算法应用于无向图?

我知道贝尔曼-福德算法适用于有向图。它是否适用于无向图?似乎对于无向图,它将无法检测出环路,因为并行边会被视为环路。这是真的吗?该算法能否应用于无向图中?

22得票2回答
弗洛伊德-沃舍尔算法、迪杰斯特拉算法和贝尔曼-福德算法之间的区别,我的理解正确吗?

我已经学习了这三个算法,并在下面陈述了我的推论。请问是否有人能告诉我我是否理解得足够准确?谢谢。 Dijkstra算法仅在您有一个单一源并且想要知道从一个节点到另一个节点的最短路径时使用,但在像这样的情况下会失败。 Floyd-Warshall算法用于任何节点都可以是源头的情况,因此您希望...

21得票2回答
为什么我们称其为“Relaxing”边缘?

在Dijkstra最短路径算法和其他算法中,检查一条边是否提供了到节点更好的路径被称为"relaxing这条边"。为什么它被称为"relaxing"?

17得票9回答
在没有任何负权值前缀的图中寻找最短路径

在一张有正数和负数边的有向图中,找到从源点到终点的最短路径,使得沿着这条路径走过的任何边之前的边的权值之和都不为负数。如果不存在这样的路径,则报告没有解决方案。 我尝试使用修改版Bellman-Ford算法,但未能找到正确的解决方案。 我想澄清几点: 可能存在负权重的环路。 n是边的数...

15得票4回答
贝尔曼-福特算法中,什么会导致计数到无限大?

据我所理解,计数到无穷大是指一个路由器向另一个路由器提供旧信息,这些信息会继续在网络中传播直至无穷大。从我所读的内容来看,当一个链接被移除时,这种情况肯定会发生。 因此,在本例中,Bellman-Ford算法将对每个路由器进行收敛,它们将彼此拥有条目。R2将知道它可以以成本1到达R3,而...

9得票4回答
负权环算法

我在思考如何在有向图中寻找负权重环的算法。问题是:我们有一个图G(V,E),我们需要找到一种有效的算法来查找具有负权重的环。我理解了这份PDF文件中的算法。 简要地说,该算法是通过迭代|V|-1次进行松弛来应用Bellman Ford算法。之后,它检查是否存在可以进一步松弛的边,如果存在负权...

9得票1回答
Yen对Bellman-Ford算法的改进

我曾经在维基百科上得到了著名的Yen对Bellman-Ford算法的优化方法,后来我在几本教材的练习部分也发现了相同的改进(例如,在Cormen的书中,这是一个24-1问题,在Sedgewick的“算法”中是Web exercise N5)。 以下是改进内容: Yen的第二次改进首先对所...

9得票2回答
Dijkstra的单源最短路径算法能够检测图中的无限循环吗?

我遇到了这个有趣的问题,它要求你编写一个程序,判断在一个有向图中是否存在负无穷短路径(也可以理解为找出图中是否存在“负环”)。以下是该问题的链接: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8...

8得票1回答
在图中查找无公共顶点、负权重的前K条路径的算法是什么?

我正在使用Bellman-Ford算法找到带有负权重的图中的最短路径。该图不可能存在循环和双向连接。我想找到K个没有公共节点的最短路径。是否有算法可以帮助我学习如何做到这一点?目前简单的实现比速度更重要。 补充:感谢评论。为了清楚起见,我正在寻找从指定的起始节点到指定的结束节点的前K种方式,...