当我找到一个给定的两个节点时,我正在寻找一种算法'并且' t'在一个无用的图形中,找到最小边缘,将图形划分为两个A和B,' s'将在A和'将在B。
我看到大多数人建议使用Ford-Fulkerson算法来完成这项任务,here。我在想是可以使用Dinic的算法。由于Dinic的算法可以通过动态树加速。因为我想以最快的方式找到最小边缘。
哪种算法更快,可以在巨大的无向图中找到最小边缘?
在查看这些算法的详细信息时,我想听听一些建议。
提前致谢
答案 0 :(得分:3)
基本上,任何解决最大流量的算法也可以解决最小切割问题。获得流量后,找到residual flow graph。在此图表中,从源 s 运行BFS。最小切割只是(u,v)的边缘集合, u 可以从 s 和 v < em>不是。
由于Dinic仅 O(V 2 E)而不是FF的Θ(E 2 V ),一般来说它会更快。
在这种情况下,找到剩余流量图和运行BFS的成本可以忽略不计。