Practical and theoretical improvements for bipartite matching using the pseudoflow algorithm

We show that the pseudoflow algorithm for maximum flow is particularly efficient for the bipartite matching problem both in theory and in practice. We develop several implementations of the pseudoflow algorithm for bipartite matching, and compare them over a wide set of benchmark instances to state-of-the-art implementations of push-relabel and augmenting path algorithms that are specifically designed to solve these problems. The experiments show that the pseudoflow variants are in most cases faster than the other algorithms. We also show that one particular implementation---the matching pseudoflow algorithm---is theoretically efficient. For a graph with $n$ nodes, $m$ arcs, $n_1$ the size of the smaller set in the bipartition, and the maximum matching value $\kappa \leq n_1$, the algorithm's complexity given input in the form of adjacency lists is $O(\min{n_1\kappa,m} + \sqrt{\kappa}\min{\kappa^2,m})$. Similar algorithmic ideas are shown to work for an adaptation of Hopcroft and Karp's bipartite matching algorithm with the same complexity. Using boolean operations on words of size $\lambda$, the complexity of the pseudoflow algorithm is further improved to $O(\min{n_1\kappa, \frac{n_1n_2}{\lambda}, m} + \kappa^2 + \frac{\kappa^{2.5}}{\lambda})$. This run time is faster than for previous algorithms such as Cheriyan and Mehlhorn's algorithm of complexity $O(\frac{n^{2.5}}{\lambda})$.

[1]  Robert E. Tarjan,et al.  Improved Algorithms for Bipartite Network Flow , 1994, SIAM J. Comput..

[2]  João C. Setubal,et al.  Sequential and Parallel Experimental Results with Bipartite Matching Algorithms , 1996 .

[3]  Rajeev Motwani,et al.  Clique partitions, graph compression and speeding-up algorithms , 1991, STOC '91.

[4]  Andrew V. Goldberg,et al.  Augment or push: a computational study of bipartite matching and unit-capacity flow algorithms , 1998, JEAL.

[5]  Dorit S. Hochbaum,et al.  Implementations of the pseudoflow algorithm for maximum flow, bipartite matching, flows in unit capacity networks, and parametric maximum flow , 2007 .

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

[7]  Richard M. Karp,et al.  A n^5/2 Algorithm for Maximum Matchings in Bipartite Graphs , 1971, SWAT.

[8]  Dorit S. Hochbaum,et al.  The Pseudoflow Algorithm: A New Algorithm for the Maximum-Flow Problem , 2008, Oper. Res..

[9]  Dorit S. Hochbaum,et al.  A Computational Study of the Pseudoflow and Push-Relabel Algorithms for the Maximum Flow Problem , 2009, Oper. Res..

[10]  Piotr Sankowski,et al.  Maximum matchings via Gaussian elimination , 2004, 45th Annual IEEE Symposium on Foundations of Computer Science.

[11]  Richard M. Karp,et al.  A n^5/2 Algorithm for Maximum Matchings in Bipartite Graphs , 1971, SWAT.

[12]  Kurt Mehlhorn,et al.  Computing a Maximum Cardinality Matching in a Bipartite Graph in Time O(^1.5 sqrt m/log n) , 1991, Inf. Process. Lett..

[13]  Jõ Ao,et al.  New Experimental Results for Bipartite Matching New Experimental Results for Bipartite Matching , 1992 .

[14]  Kurt Mehlhorn,et al.  Algorithms for dense graphs and networks on the random access computer , 2005, Algorithmica.

[15]  Jr. Robert J. Kennedy,et al.  Solving unweighted and weighted bipartite matching problems in theory and practice , 1996 .

[16]  Ulrich Derigs,et al.  Implementing Goldberg's max-flow-algorithm — A computational investigation , 1989, ZOR Methods Model. Oper. Res..

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

[18]  Andrew V. Goldberg,et al.  On Implementing the Push—Relabel Method for the Maximum Flow Problem , 1997, Algorithmica.

[19]  Robert E. Tarjan,et al.  Network Flow and Testing Graph Connectivity , 1975, SIAM J. Comput..

[20]  Ravindra K. Ahuja,et al.  Network Flows: Theory, Algorithms, and Applications , 1993 .