我遇到了一个问题:
给定一个带有整数权重(正面和负面)的连通有向图, 开发一种算法,找到两个顶点之间的最短路径。
我认为我可以使用最小的生成树算法,例如kruskal,然后使用 也许dijkstra的算法表明,因为在MST中,每个顶点只有一个包含边缘,dijkstra算法即使在负权重下也能正常工作。
这听起来很麻烦吗?
P.S。我无法证明MST包含有向图的最短路径, 对于每个顶点。
答案 0 :(得分:2)
答案 1 :(得分:0)
我无法证明MST包含每个顶点的有向图的最短路径。
那是因为它是假的。采用边缘权重为2,3和4的三角形图形.MST仅包含权重2和3的边缘,但最短路径的权重为4,而通过MST的路径的权重为5。
鉴于此,在算法中嵌入最小生成树似乎是一个坏主意。