这是Why most graph algorithms do not adapt so easily to negative numbers?的后续问题。
我认为最短路径(SP)存在负权重问题,因为它会沿着路径累加所有权重并尝试找到最小权重。
但我不认为最小生成树(MST)在负权重方面存在问题,因为它只需要单个最小权重边缘而不关心总权重。
我是对的吗?
答案 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的算法不担心出现负边缘。