Blossom algorithm
Algorithm for constructing maximum matchings on a graph
In graph theory, the blossom algorithm is an algorithm for constructing maximum matchings on graphs. The algorithm was developed by Jack Edmonds in 1961, and published in 1965.
Nº Q1030529 ★
Common · Knowledge
Blossom algorithm
Algorithm for constructing maximum matchings on a graph
In graph theory, the blossom algorithm is an algorithm for constructing maximum matchings on graphs. The algorithm was developed by Jack Edmonds in 1961, and published in 1965.
From Wikipedia
In graph theory, the blossom algorithm is an algorithm 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 each vertex in V is incident with at most 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. The algorithm runs in time O(|E||V|2), where |E| is the number of edges of the graph and |V| is its number of vertices. A better running time of O ( | E | | V | ) {\displaystyle O(|E|{\sqrt {|V|}})} for the same task can be achieved with the more complicated algorithm of Micali and Vazirani. A major reason that the blossom 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 programming 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 just from total unimodularity, and its description was a breakthrough in polyhedral combinatorics."
Text: Wikipédia, CC BY-SA 4.0. ·
Related cards
-
Prim's algorithm
Algorithm for finding the minimum spanning tree for weighted undirected graphs
Nº Q470813 ★★
Not listed
-
Dijkstra's algorithm
Graph search algorithm
Nº Q8548 ★★★★
Not listed
-
Euclidean algorithm
Algorithm for computing greatest common divisors
Nº Q230848 ★★★
Not listed
-
Floyd–Warshall algorithm
Algorithm for finding all-pairs shortest paths in graphs, allowing some edge weights to be negative
Nº Q1047576 ★★
Not listed
-
E
Edmonds–Karp algorithm
Algorithm
Nº Q1302658 ★
Not listed
-
K
Kosaraju's algorithm
Algorithm to find the strongly connected component of a directed graph
Nº Q2655281 ★
Not listed