A New Max-flow Algorithm
Author(s)
Goldberg, Andrew V.
DownloadMIT-LCS-TM-291.pdf (2.639Mb)
Metadata
Show full item recordAbstract
All previously known max-flow algorithms worked by finding augmenting paths, either one path at a time (Ford and Fulkerson algorithm), or all shortest augmenting paths at once (by using the level network technique of Dinic). We introduce an alternative way of dealing with the problem. Our method is to push flow through the original network. The algorithm and its analysis are simple and intuitive, yet the algorithm does as well as any other network flow algorithm on dense graphs, achieving O(n^3) running time. The algorithm admits distributed and parallel implementations as well as a sequential implementation. The algorithm requires less storage then the only other parallel max-flow algorithm known (due to Shiloach and Vishkin), and its parallel running time is the same, O(n^2 logn). In fact, our algorithm uses constant amount of storage for every edge or vertex of the network, allowing an implementation under and more realistic distributed model.
Date issued
1985-11Series/Report no.
MIT-LCS-TM-291