All pair Maximum Flow

坚强是说给别人听的谎言 提交于 2019-12-10 03:09:12

问题


Given a directed weighted graph, how to find the Maximum Flow ( or Minimum Edge Cut ) between all pairs of vertices.
The naive approach is simply to call a Max Flow algorithm like Dinic's, whose complexity is O((V^2)*E), for each pair.
Hence for all pairs it is O((V^4)*E).

Is it possible to reduce the complexity to O((V^3)*E) or to O(V^3) by some optimizations?


回答1:


Gomory-Hu Tree does not work with directed graphs, putting that aside, Gomory-Hu Tree will form a Graph maximum flow by applying minimum cuts.

The time complexity is:

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

* using an optimal minimum-cut algorithm (Max-Flow Min-Cut Reduction)

This example illustrate how Gomory-Hu Tree is constructed from a given Graph




回答2:


Gomory-Hu tree does not work for directed weighted graph.

It is an open problem whether there exist an algorithm to solve all pair maximum flow faster than running n^2 maximum flows on directed graphs.



来源:https://stackoverflow.com/questions/13990689/all-pair-maximum-flow

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!