A lock-free multi-threaded algorithm for the maximum flow problem

The maximum flow problem is an important graph problem with a wide range of applications. In this paper, we present a lock-free multi-threaded algorithm for this problem. The algorithm is based on the push-relabel algorithm proposed by Goldberg. By using re-designed push and relabel operations, we derive our algorithm that finds the maxi- mumflow with 0{\V\2 \E\) operations. We demonstrate that as long as a multi-processor architecture supports atomic 'read-update-write' operations, it will be able to execute the multi-threaded algorithm free of any lock usages. The proposed algorithm is expected to significantly improve the efficiency of solving maximum flow problem on parallel/multi-core architectures.

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

[2]  Richard M. Karp,et al.  Theoretical Improvements in Algorithmic Efficiency for Network Flow Problems , 1972, Combinatorial Optimization.

[3]  Leslie Lamport,et al.  How to Make a Correct Multiprocess Program Execute Correctly on a Multiprocessor , 1997, IEEE Trans. Computers.

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

[5]  VishkinUzi,et al.  An O(n2 log n) parallel max-flow algorithm , 1982 .

[6]  Clifford Stein,et al.  Introduction to Algorithms, 2nd edition. , 2001 .

[7]  S. Sitharama Iyengar,et al.  Introduction to parallel algorithms , 1998, Wiley series on parallel and distributed computing.

[8]  A. V. Karzanov,et al.  Determining the maximal flow in a network by the method of preflows , 1974 .

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

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

[11]  Donald B. Johnson,et al.  Parallel algorithms for minimum cuts and maximum flows in planar networks , 1982, 23rd Annual Symposium on Foundations of Computer Science (sfcs 1982).

[12]  Joseph JáJá,et al.  An Introduction to Parallel Algorithms , 1992 .

[13]  Andrew V. Goldberg,et al.  Recent Developments in Maximum Flow Algorithms (Invited Lecture) , 1998, SWAT.

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

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

[16]  Richard J. Anderson,et al.  On the parallel implementation of Goldberg's maximum flow algorithm , 1992, SPAA '92.

[17]  David A. Bader,et al.  A Cache-Aware Parallel Implementation of the Push-Relabel Network Flow Algorithm and Experimental Evaluation of the Gap Relabeling Heuristic , 2006, PDCS.