给定有向加权图,如何求出所有顶点对之间的最大流(或最小边切)。
天真的方法是简单地为每对调用一个像Dinic这样的最大流算法,其复杂性是O((V^2)*E)。
O((V^2)*E)
因此,对于所有对,它都是O((V^4)*E)。
O((V^4)*E)
是否可以通过一些优化来降低O((V^3)*E)或O(V^3)的复杂性?
O((V^3)*E)
O(V^3)
发布于 2013-04-07 00:00:40
Gomory树不适用于有向图,抛开这一点,Gomory树将通过应用最小割集来形成图的最大流。
时间复杂性是:
O(|V|-1 * T(minimum-cut)) = O(|V|-1 * O(2|V|-2)) ~ O(|V|^2)
*使用最优最小切割算法(最大流切法)
这个示例演示了Gomory树是如何从给定的图构造的。
发布于 2014-06-20 17:13:25
Gomory树不适用于有向加权图。
与在有向图上运行n^2最大流相比,是否存在求解所有对最大流的算法是一个有待解决的问题。
https://stackoverflow.com/questions/13990689
相似问题
领取专属 10元无门槛券
AI混元助手 在线答疑
洞察 腾讯核心技术
剖析业界实践案例