在有向图中找到最大的产品

时间:2014-01-01 13:14:48

标签: c# algorithm graph-algorithm shortest-path

我的问题类似于寻找最小路径(Dijkstra算法),但我想找到从一个节点到任何其他节点的所有边缘的最大乘积,而不是最短路径。

鉴于所有边缘都是正加权的,并且每个节点与相邻节点双向连接,我的理解是这种算法的实现恰好与找到最短路径相反。但我不确定我的想法是否正确,任何人都可以在C#中建议我应该从哪里开始? ?

举一个双向conncetion的例子:

节点:A,B 重量:A-> B = 2; B-> A = 1/2

所以一个节点的边的权重总是倒数

1 个答案:

答案 0 :(得分:2)

所有权重都是正数,对吧?

  1. 用log(1 / W)替换每个重量W.

  2. 运行Bellman-Ford算法,这是Dijkstra对负权重图的扩展。