我的问题类似于寻找最小路径(Dijkstra算法),但我想找到从一个节点到任何其他节点的所有边缘的最大乘积,而不是最短路径。
鉴于所有边缘都是正加权的,并且每个节点与相邻节点双向连接,我的理解是这种算法的实现恰好与找到最短路径相反。但我不确定我的想法是否正确,任何人都可以在C#中建议我应该从哪里开始? ?
举一个双向conncetion的例子:
节点:A,B 重量:A-> B = 2; B-> A = 1/2
所以一个节点的边的权重总是倒数
答案 0 :(得分:2)
所有权重都是正数,对吧?
用log(1 / W)替换每个重量W.
运行Bellman-Ford算法,这是Dijkstra对负权重图的扩展。