blossomalgoritm
The blossom algorithm is a family of algorithms for finding a maximum cardinality matching in general undirected graphs. It is most commonly known through Edmonds’ Blossom Algorithm, developed by Jack Edmonds in 1965. The key idea is to handle odd cycles, or blossoms, by contracting them into single vertices so that augmenting paths can be found in the contracted graph. After an augmenting path is identified, the blossoms are expanded and the matching is augmented in the original graph.
In operation, the algorithm repeatedly constructs alternating trees starting from unmatched vertices and searches for augmenting
The blossom algorithm is significant because it provides a polynomial-time method for maximum matching in general
Applications of the blossom algorithm appear in areas that require pairing without restricted graph structure, including