I'm looking for a minimum weight perfect matching algorithm in Mathematica. Ideally, it should be able to handle arbitrary weighted graphs (e.g. not just bipartite, as that case is easy), although I suppose I don't care if the graph is required to be complete or to have positive edge weights. Does anybody have code for this problem that they are willing to share or know of a relatively simple way to do it with built-in Mathematica functions?
The standard poly-time method is the Blossom algorithm first developed by Jack Edmonds. It's been gradually improved over time. I think they're up to Blossom V by Vladimir Kolmogorov who has a c++ implementation. Really, I'd appreciate any poly-time Mathematica solution though.
I also know there is a Demonstrations project here that appears to do what I want, but the code places random weights on edges and is overly concerned with the graphics. That is, it is not currently user-friendly. I could try to pick through it to make it so, but thought I'd ask around here before that.
BlossomWeightedMatchingCompleteCook; did you already try it? – Mr.Wizard Jul 21 '16 at 21:21