Raf*_*ita 6 algorithm graph graph-algorithm
我有一个有向无环图,每个顶点的权重 >= 0。有一个顶点是图的“开始”,另一个顶点是图的“结束”。这个想法是找到从起点到终点的路径,其中顶点的权重之和更大。例如,我有下一张图:
I(0) -> V1(3) -> F(0)
I(0) -> V1(3) -> V2(1) -> F(0)
I(0) -> V3(0.5) -> V2(1) -> F(0)
Run Code Online (Sandbox Code Playgroud)
成本最高的路径是 I(0) -> V1(3) -> V2(1) -> F(0),其成本为 4。
现在,我正在使用 BFS 枚举从 I 到 F 的每条路径,如上例所示,然后,我选择总和最大的那个。恐怕这种方法真的很幼稚。
有没有更好的算法来做到这一点?这个问题可以简化为另一个问题吗?
由于您的图没有循环*,您可以否定边的权重,并运行贝尔曼-福特算法。