【问题标题】:All pair Maximum Flow所有对最大流量
【发布时间】:2012-12-09 01:35:22
【问题描述】:

给定一个有向加权图,如何找到所有顶点对之间的最大流(或最小边切)。
简单的方法是为每一对调用类似 Dinic 的 Max Flow 算法,其复杂度为 O((V^2)*E)
因此,对于所有对,它都是O((V^4)*E)

是否可以通过一些优化将复杂度降低到O((V^3)*E)O(V^3)

【问题讨论】:

  • PS:这不是家庭作业。
  • 你看过 Gomory-Hu 树吗?
  • @mmgp :这正是我想要的。谢谢!您能否发布一个链接,其中用示例和伪代码描述 Gusfield 的算法?
  • cs.princeton.edu/~kt/cut-tree 可以通过访问实验链接找到代码。
  • @mmgp 你能把评论变成答案吗?

标签: graph max-flow network-flow


【解决方案1】:

Gomory-Hu 树不适用于有向图,除此之外,Gomory-Hu 树将通过应用最小割形成图最大流。

时间复杂度为:

O(|V|-1 * T(minimum-cut)) = O(|V|-1 * O(2|V|-2)) ~ O(|V|^2)

* 使用最优minimum-cut 算法(Max-Flow Min-Cut Reduction

这个example 说明了如何从给定的图构造 Gomory-Hu 树

【讨论】:

  • Gomory-Hu 树不适用于有向图(除非所有弧的容量 (u,v)=(v,u))。切割不是对称子模函数,这是 Gomory 所必需的-胡树上班。
  • @ChaoXu 感谢您的评论,我会在回答中注明。
  • 您的文本中有 T(min-cut) 为 O(2|V|-2)。那是什么算法? EK 是 O(|V| * |E|^2) ~ O(|V|^5) 而 Dinic 是 O(|V|^2 * |E|) ~ O(|V|^4),留下你的Gomory-Hu 构建时间为 O(|V|^5),而不是 O(|V|^2)。
【解决方案2】:

Gomory-Hu 树不适用于有向加权图。

是否存在一种算法可以比在有向图上运行 n^2 个最大流更快地解决所有对最大流。

【讨论】:

    猜你喜欢
    • 2014-09-06
    • 2014-05-27
    • 2021-12-05
    • 2017-08-19
    • 2016-12-02
    • 2014-07-10
    • 2011-02-06
    • 2014-11-15
    • 2014-02-11
    相关资源
    最近更新 更多