如何使用Dinic的算法在无向图中找到最小边缘?

时间:2016-03-17 08:03:51

标签: algorithm max-flow undirected-graph

当我找到一个给定的两个节点时,我正在寻找一种算法'并且' t'在一个无用的图形中,找到最小边缘,将图形划分为两个A和B,' s'将在A和'将在B。

我看到大多数人建议使用Ford-Fulkerson算法来完成这项任务,here。我在想是可以使用Dinic的算法。由于Dinic的算法可以通过动态树加速。因为我想以最快的方式找到最小边缘。

哪种算法更快,可以在巨大的无向图中找到最小边缘?

在查看这些算法的详细信息时,我想听听一些建议。

提前致谢

1 个答案:

答案 0 :(得分:3)

基本上,任何解决最大流量的算法也可以解决最小切割问题。获得流量后,找到residual flow graph。在此图表中,从源 s 运行BFS。最小切割只是(u,v)的边缘集合, u 可以从 s v 不是。

由于Dinic O(V 2 E)而不是FF的Θ(E 2 V ),一般来说它会更快。

在这种情况下,找到剩余流量图和运行BFS的成本可以忽略不计。