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})$. 
Bala G. Chandran and Dorit S. Hochbaum
cs.DS