



Blossom Algorithm

Today we are going to discuss what is blossom algorithm. Actually is an algorithm in graph theory for constructing maximum matchings on graphs. The algorithm was developed by Jack Edmonds in 1961, and published in 1965. Given a general graph G = (V, E), the algorithm finds a matching M such that vertex in V is incident with at one edge in M ​​and | M | is maximized. The matching is constructed by iteratively improving an initial empty matching along augmenting paths in the graph. Unlike bipartite matching, the key new idea is that an odd-length cycle in the graph (blossom) is contracted to a single vertex, with the search continuing iteratively in the contracted graph.









Edmond's Blossom Algorithm





A major reason that the algorithm is important is that it gave the first proof that a maximum-size matching could be found using a polynomial amount of computation time. Another reason is that it led to a linear polyhedral description of the matching polytope, yielding an algorithm for min-weight matching.As elaborated by Alexander Schrijver , further significance of the result comes from the fact that this was the first polytope whose proof of integrality "does not simply follow from total unimodularity, and its description was a breakthrough in polyhedral combinatorics."

Blossom algorithm

It is all in one: an amazing algorithm, an amazing presentation of the result, simple enough to be understood but yet complex, a beginning of a whole new field, one of the main reasons why we measure complexity of an algorithm the way we do - to name a few.

The algorithm appeared in the paper named: “Paths, Trees and Flowers” and it was something. It was the first polynomial algorithm for the maximum matching problem. It was a polynomial algorithm when we were still not sure what is the right measure for the speed of an algorithm.

Years are 60’s. Computer are “weak”. Practically, at this stage, we don’t even care for asymptotic difference in (sub)exponential and quadratic/cubic running time - they are the same for the sizes that these computers could handle. But, scientist knew we will need it sooner rather than later. Edmonds argued why do we even need such a measure and asked for a formalisation - as this is not already enough. But the magic is just about to start. Let me present just some ideas and hopefully motivate you to look it up.

The maximum matching problems is: Given a graph G G find the maximum number of edges such that no two have a common endpoint.