๐ค AI Summary
This work addresses the efficient computation of maximum-cardinality matchings in unweighted graphs. Building upon Gabowโs classical algorithm, the paper proposes a simpler and more intuitive approach that iteratively constructs an auxiliary graph $H$ in each phase to capture shortest augmenting paths and directly computes their length, thereby avoiding the intricate reductions to Edmondsโ weighted matching framework used in the original method. The algorithm converges within $O(\sqrt{n})$ phases, achieving an overall time complexity of $O(\sqrt{n}m)$. Beyond improving theoretical clarity and pedagogical accessibility, the proposed method is accompanied by an open-source implementation that demonstrates its practical effectiveness and usability.
๐ Abstract
We revisit Gabow's $O(\sqrt{n} m)$ maximum cardinality matching algorithm (The Weighted Matching Approach to Maximum Cardinality Matching, Fundamenta Informaticae, 2017). It adapts the weighted matching algorithm of Gabow and Tarjan~\cite{GT91} to maximum cardinality matching. Gabow's algorithm works iteratively. In each iteration, it constructs a maximal number of edge-disjoint shortest augmenting paths with respect to the current matching and augments them. It is well-known that $O(\sqrt{n})$ iterations suffice. Each iteration consists of three parts. In the first part, the length of the shortest augmenting path is computed. In the second part, an auxiliary graph $H$ is constructed with the property that shortest augmenting paths in $G$ correspond to augmenting paths in $H$. In the third part, a maximal set of edge-disjoint augmenting paths in $H$ is determined, and the paths are lifted to and augmented to $G$. We give a new algorithm for the first part. Gabow's algorithm for the first part is derived from Edmonds' primal-dual algorithm for weighted matching. We believe that our approach is more direct and will be easier to teach. We have implemented the algorithm; the implementation is available at the companion webpage (https://people.mpi-inf.mpg.de/~mehlhorn/CompanionPageGenMatchingImplementation.html).