最短路径图

时间:2012-12-23 19:58:47

标签: algorithm

给定有向图G,图中每个顶点的权重,s源顶点和d [v](从s到v的距离) 我需要找到一种构建最短路径图的算法。

我正在考虑通过BFS进行边缘,但是我怎么知道树中应该有哪个边以及如何检查每个顶点的d [v]是否为真。

2 个答案:

答案 0 :(得分:3)

运行Dijkstra。如果连接{u,v}的边e具有d [u] + w [e] = d [v]的属性,则该边缘是您正在寻找的树的一部分。

这样,你可能实际上不会得到树,但任何MST都有你正在寻找的属性

答案 1 :(得分:3)

BFS算法可帮助您找到给定根节点与所有其他节点之间的最短路径,仅用于未加权的图形(或所有权重相同)。如果每条边具有不同的权重,那么Dijkstra算法是一个不错的选择。但是,如果图中存在负权重,则Dijkstra算法不起作用。如果有负权重,那么你应该使用Bellman ford算法。