最短路径,2个权重函数

时间:2014-04-11 18:12:22

标签: algorithm shortest-path bellman-ford

问题是这样的: 给出有向图G =(V,E),两个顶点s,t和两个权重函数w1,w2。 G中没有负加权周期(通过w1和w2)。 我需要描述一个算法,该算法在给定的从s到t的给定最短路径 s 中找到从s到t的最短路径w2。

我发现了这个: FInding All Shortest Paths Between Two Vertices 但答案似乎对我很不利。

我不知道如何解决这个问题(即使是蹩脚的问题)。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

我们的想法是让w2变得重要 - 但不足以影响w1的结果。

SUM2为所有边缘w2的总和:SUM2 = Sum { w2(e) | e in E }min{w1} = min { w1(e) | e in E }(根据w1的最小值)

基于此,创建新的权重函数:

w(e) = w1(e) + w2(e)/min{w1}*(SUM2+1)

现在,根据w1给出所有最短路径 - 很明显为什么根据w2的最短路径会受到青睐。

另一方面,w2并不强大'足以克服w1和支配的重要性,因为请注意,根据w2的所有边的总和现在小于w1

中的单个节点

使用上述w和任何最短路径算法来获得所需的最短路径。