Blossom V: a new implementation of a minimum cost perfect matching algorithm

We describe a new implementation of the Edmonds’s algorithm for computing a perfect matching of minimum cost, to which we refer as Blossom V. A key feature of our implementation is a combination of two ideas that were shown to be effective for this problem: the “variable dual updates” approach of Cook and Rohe (INFORMS J Comput 11(2):138–148, 1999) and the use of priority queues. We achieve this by maintaining an auxiliary graph whose nodes correspond to alternating trees in the Edmonds’s algorithm. While our use of priority queues does not improve the worst-case complexity, it appears to lead to an efficient technique. In the majority of our tests Blossom V outperformed previous implementations of Cook and Rohe (INFORMS J Comput 11(2):138–148, 1999) and Mehlhorn and Schäfer (J Algorithmics Exp (JEA) 7:4, 2002), sometimes by an order of magnitude. We also show that for large VLSI instances it is beneficial to update duals by solving a linear program, contrary to a conjecture by Cook and Rohe.

[1]  Jack Edmonds,et al.  Maximum matching and a polyhedron with 0,1-vertices , 1965 .

[2]  Harold Neil Gabow,et al.  Implementation of algorithms for maximum matching on nonbipartite graphs , 1973 .

[3]  Silvio Micali,et al.  Priority queues with variable priority and an O(EV log V) algorithm for finding a maximal weighted matching in general graphs , 1982, 23rd Annual Symposium on Foundations of Computer Science (sfcs 1982).

[4]  Silvio Micali,et al.  Priority queues with variable priority and an O(EV log V) algorithm for finding a maximal weighted matching in general graphs , 1982, 23rd Annual Symposium on Foundations of Computer Science (sfcs 1982).

[5]  Ulrich Derigs,et al.  An analysis of alternative strategies for implementing matching algorithms , 1983, Networks.

[6]  Robert E. Tarjan,et al.  Fibonacci heaps and their uses in improved network optimization algorithms , 1984, JACM.

[7]  Zvi Galil,et al.  Efficient implementation of graph algorithms using contraction , 1984, JACM.

[8]  Wei-Kuan Shih,et al.  Unifying Maximum Cut and Minimum Cut of a Planar Graph , 1990, IEEE Trans. Computers.

[9]  Harold N. Gabow,et al.  Data structures for weighted matching and nearest common ancestors with linking , 1990, SODA '90.

[10]  William J. Cook,et al.  Solving Large-Scale Matching Problems , 1991, Network Flows And Matching.

[11]  Ulrich Derigs,et al.  Solving (large scale) matching problems combinatorially , 1991, Math. Program..

[12]  David S. Johnson,et al.  Network Flows and Matching: First DIMACS Implementation Challenge , 1993 .

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

[14]  Uzi Vishkin,et al.  Recursive Star-Tree Parallel Data Structure , 1993, SIAM J. Comput..

[15]  Kurt Mehlhorn,et al.  LEDA: a platform for combinatorial and geometric computing , 1997, CACM.

[16]  Jonathan Richard Shewchuk,et al.  Triangle: Engineering a 2D Quality Mesh Generator and Delaunay Triangulator , 1996, WACG.

[17]  Dinesh Manocha,et al.  Applied Computational Geometry Towards Geometric Engineering , 1996, Lecture Notes in Computer Science.

[18]  Dorit S. Hochbaum Instant Recognition of Half Integrality and 2-Approximations , 1998, APPROX.

[19]  William J. Cook,et al.  Computing Minimum-Weight Perfect Matchings , 1999, INFORMS J. Comput..

[20]  Kurt Mehlhorn,et al.  Implementation of O (nm log n) Weighted Matchings in General Graphs. The Power of Data Structures , 2000, Algorithm Engineering.

[21]  Kurt Mehlhorn,et al.  Implementation of O(nmlogn) weighted matchings in general graphs: the power of data structures , 2002, JEAL.

[22]  Ulrich Derigs,et al.  On the use of optimal fractional matchings for solving the (integer) matching problem , 2005, Computing.

[23]  Robert E. Tarjan,et al.  The pairing heap: A new form of self-adjusting heap , 2005, Algorithmica.