Implementation of O (nm log n) Weighted Matchings in General Graphs. The Power of Data Structures

We describe the implementation of an O(nm log n) algorithm for weighted matchings in general graphs. The algorithm is a variant of the algorithm of Galil, Micali, and Gabow [12] and requires the use of concatenable priority queues. No previous implementation had a worst-case guarantee of O(nmlog n). We compare our implementation to the experimentally fastest implementation (called Blossom IV) due to Cook and Rohe [4]; Blossom IV is an implementation of Edmonds' algorithm and has a running time no better than O(n3). Blossom IV requires only very simple data structures. Our experiments show that our new implementation is competitive to Blossom IV.