A new approach to the maximum-flow problem.

*(English)*Zbl 0661.90031All 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 preflow concept of A. V. Karzanov [Soviet Math., Dokl. 15 (1974), 434-437 (1975; Zbl 0303.90014)] 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 \(O(n^ 3)\) time bound on an n-vertex graph. By incorporating the dynamic tree data structure of D. D. Sleator and R. E. Tarjan [J. Comput. Syst. Sci. 26, 362-391 (1983; Zbl 0509.68058)], we obtain a version of the algorithm running in O(nm log(n\({}^ 2/m))\) time on an n-vertex, m-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 \(O(n^ 2\log n)\) time using n processors and O(m) space is obtained. This time bound matches that of the Shiloach-Vishkin algorithm [see Y. Shiloach and U. Vishkin, J. Algorithms 3, 128-146 (1982; Zbl 0483.90044)], which also uses n processors but requires \(O(n^ 2)\) space.

Reviewer: Reviewer (Berlin)

##### MSC:

90B10 | Deterministic network models in operations research |

68Q25 | Analysis of algorithms and problem complexity |