最轻的路径树

时间:2012-05-13 18:26:34

标签: algorithm

我需要编写算法,在定向和加权图中找到最轻的路径树。 (尽可能高效) 我得到一个顶点S,需要建立一个从S到所有顶点的路径树,可以从S接近,所以树中的路径最轻(路径权重是没有端点的路径)

我考虑过首先计算距离S的所有距离然后对于每条路径都会有一个新的权重: 重量减去两端 然后在图表上使用新的权重来运行dijkstra ...

会起作用吗?它足够有效吗?如何计算距离?

2 个答案:

答案 0 :(得分:3)

您的评论建议您实际上是在寻找从单一来源到所有顶点的最短路径。

了解Dijkstra's algorithm的工作原理。该算法以大小为1的树(仅源)开始,并迭代地将顶点添加到树中。最后,由dijkstra算法创建的树表示从源到图中每个节点的最短路径。

请注意,dijkstra算法在边缘上需要加权函数,而权重函数在顶点上。通过定义新的权重函数w':E->R w'(u,v) = w(u)可以很容易地解决它(它可以工作,因为你不想计算结尾)。

答案 1 :(得分:0)

听起来你要求minimum spanning tree。维基百科页面讨论了算法。