A new approach to the maximum-flow problem

All previously known efficient maximum-flow algorithms work by finding augmenting paths, either one path at a time (as in the original Ford and Fulkerson algorithm) or all shortest-length augmenting paths at once (using the layered network approach of Dinic). An alternative method based on the <italic>preflow</italic> concept of Karzanov is introduced. A preflow is like a flow, except that the total amount flowing into a vertex is allowed to exceed the total amount flowing out. The method maintains a preflow in the original network and pushes local flow excess toward the sink along what are estimated to be shortest paths. The algorithm and its analysis are simple and intuitive, yet the algorithm runs as fast as any other known method on dense graphs, achieving an <italic>O</italic>(<italic>n</italic><supscrpt>3</supscrpt>) time bound on an <italic>n</italic>-vertex graph. By incorporating the dynamic tree data structure of Sleator and Tarjan, we obtain a version of the algorithm running in <italic>O</italic>(<italic>nm</italic> log(<italic>n</italic><supscrpt>2</supscrpt>/<italic>m</italic>)) time on an <italic>n</italic>-vertex, <italic>m</italic>-edge graph. This is as fast as any known method for any graph density and faster on graphs of moderate density. The algorithm also admits efficient distributed and parallel implementations. A parallel implementation running in <italic>O</italic>(<italic>n</italic><supscrpt>2</supscrpt>log <italic>n</italic>) time using <italic>n</italic> processors and <italic>O</italic>(<italic>m</italic>) space is obtained. This time bound matches that of the Shiloach-Vishkin algorithm, which also uses <italic>n</italic> processors but requires <italic>O</italic>(<italic>n</italic><supscrpt>2</supscrpt>) space.

[1]  Andrew V. Goldberg,et al.  Finding Minimum-Cost Circulations by Successive Approximation , 1990, Math. Oper. Res..

[2]  Robert E. Tarjan,et al.  Improved Time Bounds for the Maximum Flow Problem Improved Time Bounds for the Maximum Flow Problem Improved Time Bounds for the Maximum Flow Problem , 2008 .

[3]  Ravindra K. Ahuja,et al.  A Fast and Simple Algorithm for the Maximum Flow Problem , 2011, Oper. Res..

[4]  S. N. Maheshwari,et al.  Analysis of Preflow Push Algorithms for Maximum Network Flow , 1988, SIAM J. Comput..

[5]  Andrew Vladislav Goldberg,et al.  Efficient graph algorithms for sequential and parallel computers , 1987 .

[6]  Bruce M. Maggs,et al.  Communication-Efficient Parallel Graph Algorithms , 1986, ICPP.

[7]  Andrew V. Goldberg,et al.  A new approach to the maximum flow problem , 1986, STOC '86.

[8]  Ogielski Integer optimization and zero-temperature fixed point in Ising random-field systems. , 1986, Physical review letters.

[9]  Baruch Awerbuch,et al.  Complexity of network synchronization , 1985, JACM.

[10]  Robert E. Tarjan,et al.  Self-adjusting binary search trees , 1985, JACM.

[11]  R. Tarjan A simple version of Karzanov's blocking flow algorithm , 1984 .

[12]  Harold N. Gabow,et al.  Scaling algorithms for network problems , 1983, 24th Annual Symposium on Foundations of Computer Science (sfcs 1983).

[13]  Pierre A. Humblet,et al.  A Distributed Algorithm for Minimum-Weight Spanning Trees , 1979, TOPL.

[14]  Robert E. Tarjan,et al.  Data structures and network algorithms , 1983, CBMS-NSF regional conference series in applied mathematics.

[15]  Uzi Vishkin,et al.  An O(n² log n) Parallel MAX-FLOW Algorithm , 1982, J. Algorithms.

[16]  Robert E. Tarjan,et al.  A data structure for dynamic trees , 1981, STOC '81.

[17]  Kenneth Steiglitz,et al.  Combinatorial Optimization: Algorithms and Complexity , 1981 .

[18]  Amnon Naamad,et al.  An O(EVlog²V) Algorithm for the Maximal Flow Problem , 1980, J. Comput. Syst. Sci..

[19]  D. Sleator An 0 (nm log n) algorithm for maximum network flow , 1980 .

[20]  Shimon Even,et al.  Graph Algorithms , 1979 .

[21]  Y. Shiloach An O($n\cdot I \log^2 I$) maximum-flow algorithm , 1978 .

[22]  S. N. Maheshwari,et al.  An O(|V|³) Algorithm for Finding Maximum Flows in Networks , 1978, Inf. Process. Lett..

[23]  Steven Fortune,et al.  Parallelism in random access machines , 1978, STOC.

[24]  H. D. Ratliff,et al.  Minimum cuts and related problems , 1975, Networks.

[25]  E. A. Dinic Algorithm for solution of a problem of maximal flow in a network with power estimation , 1970 .

[26]  D. R. Fulkerson,et al.  Flows in networks , 1962 .

[27]  D. R. Fulkerson,et al.  Maximal Flow Through a Network , 1956, Canadian Journal of Mathematics.