Imagine you are a hospital administrator pairing donors with recipients, a scheduler assigning workers to shifts, or a chemist counting the bonds that stabilize a molecule. In each case you are solving a matching problem: partition a set of pairs so that no person (or atom) is used twice, and make the set as large as possible.
For bipartite graphs â two sides, edges only crossing between them â the answer has been known since the 1950s. Augmenting paths do the job: find a path that alternates between unmatched and matched edges, flip them, and the matching grows by one. Repeat until no such path exists.
General graphs break this story. They contain odd cycles â rings of an odd number of vertices â and an augmenting-path search can spiral inside one indefinitely, confusing a matched edge for an unmatched one and missing a valid augmentation altogether.
In 1965, Jack Edmonds published a fix so elegant it became a landmark in the theory of algorithms. He called it the blossom algorithm. The key insight: when the search encounters an odd cycle, shrink it into a single super-node, solve the matching on the contracted graph, then expand the super-node and recover the matching in the original graph. The contraction preserves augmentability â what works on the shrunken graph works on the original â and the whole process runs in polynomial time.
This was the first proof that maximum matching in general graphs is in P (polynomial time), a result that still shapes how we think about the boundary between tractable and intractable problems today. See P vs NP for the broader picture.
Comments
Loading comments...