最小生成树是否害怕负权重?

时间:2012-05-02 12:45:29

标签: algorithm data-structures graph minimum-spanning-tree

这是Why most graph algorithms do not adapt so easily to negative numbers?的后续问题。

我认为最短路径(SP)存在负权重问题,因为它会沿着路径累加所有权重并尝试找到最小权重。

但我不认为最小生成树(MST)在负权重方面存在问题,因为它只需要单个最小权重边缘而不关心总权重。

我是对的吗?

3 个答案:

答案 0 :(得分:54)

是的,你是对的。 MST的概念允许任意符号的权重。两种最常用的寻找MST(Kruskal和Prim)的算法在负边缘下工作正常。

实际上,您可以在图形的所有边缘添加一个大的正常数,使所有边缘都为正。 MST(作为边缘的子集)将保持不变。

答案 1 :(得分:1)

是的,你是对的,因为如果你看到像dijkstera那样的最短路径的算法,它将检查顶点v的当前距离是否大于当前值+边缘权重的总和那么它将改变顶点v的距离值从s乘以和值,如果边缘权重为负,则会产生一些问题。

但是在MST问题中,有像prims,kruskal这样的算法只采用最小权重边缘,因此使得负边缘有资格获得MST。

答案 2 :(得分:-3)

是的,你是对的 Prim的算法类似于dijkstra的算法,但是在prim的算法中,它不应该计算从i到j的负边缘的最短路径。因此,他们的另一种算法是他们的Bellman-Ford算法,用于计算从i到具有负边沿的j的最短路径。

因此,prim和Kruskal的算法不担心出现负边缘。