多个目的地的最高加权路径

时间:2015-11-01 15:38:14

标签: algorithm graph-theory graph-algorithm traveling-salesman longest-path

我有一个有向循环加权图。我想找到一个权重最高的路径,X个顶点的长度,我不在乎目的地是什么。我只想找到最高的成本。

2 个答案:

答案 0 :(得分:1)

这可以通过类似动态编程的算法来解决。

由于您只有几百个节点而X是第10轮。您可以为每个节点分配一个大小为X的数组Fv,而Fv [i]表示从源到节点v的最大成本岛

让我们成为源头。设置Fs [0] = 0,以及所有其他Fs [i] = -infinity。

所有其他数组都初始化为 -infinity 数组。

现在,

  

对于每个节点v,执行以下更新:

     

Fv [i] = max {Fv [i],Fw [i-1] + cost(w,v)|其中w是v}的邻居

重复上述更新至少X次,然后检查所有v的Fv [X]以获得所需的最大值。

您可以使用一些额外的信息来检索路径,这应该很容易做到。

以上算法是Bellman-Ford Algorithm

的特例

答案 1 :(得分:0)

您可以使用Bellman-Ford algorithm做您想做的事。