最小生成树和最短路径

时间:2012-11-08 03:18:59

标签: algorithm graph-algorithm shortest-path minimum-spanning-tree

我遇到了一个问题:

给定一个带有整数权重(正面和负面)的连通有向图, 开发一种算法,找到两个顶点之间的最短路径。

我认为我可以使用最小的生成树算法,例如kruskal,然后使用 也许dijkstra的算法表明,因为在MST中,每个顶点只有一个包含边缘,dijkstra算法即使在负权重下也能正常工作。

这听起来很麻烦吗?

P.S。我无法证明MST包含有向图的最短路径, 对于每个顶点。

2 个答案:

答案 0 :(得分:2)

首先,您应该注意,您的图表不应有任何负面循环。

其次,通常Dikstra不适用于负权重的图形。

口渴,Bellman-Ford Algorithm可用于在有向负权重图中找到最短路径。

答案 1 :(得分:0)

  

我无法证明MST包含每个顶点的有向图的最短路径。

那是因为它是假的。采用边缘权重为2,3和4的三角形图形.MST仅包含权重2和3的边缘,但最短路径的权重为4,而通过MST的路径的权重为5。

鉴于此,在算法中嵌入最小生成树似乎是一个坏主意。