This article was accepted into the corpus but its outbound wikilinks were never NER-processed — typical at the deepest BFS hop or when the run's entity cap was reached. No expansion funnel to show.
| Edmonds' matching algorithm | |
|---|---|
| Name | Edmonds' matching algorithm |
| Inventor | Jack Edmonds |
| Year | 1965 |
| Field | Combinatorics; Graph Theory; Algorithms |
| Related | Blossom algorithm; Maximum matching; Polytime; Tutte matrix |
Edmonds' matching algorithm is a graph algorithm for finding maximum matchings in general undirected graphs. Developed by Jack Edmonds in 1965, it generalizes earlier work on bipartite matchings and connects to polyhedral combinatorics, Richard Karp's complexity theory, and the development of efficient algorithms for network problems. The algorithm introduced the concept of contracting odd cycles (blossoms) and spawned research in Edmonds's subsequent work on matroids, the Ellipsoid method, and combinatorial optimization.
Edmonds presented the algorithm in the context of industrial and military planning problems addressed by researchers at Bell Labs, where he worked with colleagues influenced by problems from NRC studies and the needs of scheduling and routing in DoD contexts. The work built on classical results such as Konig's theorem for bipartite graphs and on the matching theory of Philip Hall and Dénes Kőnig. The motivation included connections to the Traveling Salesman Problem, the Assignment problem, and the emerging field of Computational complexity theory as formalized by Alan Turing's successors and popularized by Donald Knuth and Richard M. Karp.
Key definitions used by Edmonds draw on standard graph-theoretic terminology from texts associated with Paul Erdős, Reinhard Selten, and contributors to combinatorics at institutions like Princeton University and MIT. A graph G = (V, E) is finite and undirected; a matching is a set of edges with pairwise disjoint endpoints. A maximum matching is inclusion-maximal and of maximum cardinality; a perfect matching covers V. Edmonds used notions related to Tutte polynomial identities and the Tutte matrix in later algebraic characterizations. Basic lemmas invoke results attributed to William Tutte and build on augmenting path concepts earlier formalized by Karl Menger and Philip Hall.
Edmonds' key innovation was the notion of a "blossom": an odd-length cycle whose contraction allows an augmenting path search to continue. The algorithm iteratively finds augmenting paths via breadth-first or depth-first searches reminiscent of techniques in Eugene Lawler's work and then contracts blossoms, inspired by structural ideas in Hassler Whitney's graph theory. The blossom concept connects to parity arguments used by W. T. Tutte and matches developments in polyhedral studies by Jack Edmonds and later researchers at IBM and AT&T research labs. Subsequent expositions by authors at University of Waterloo and Stanford University popularized implementations and pedagogy for the blossom algorithm.
The algorithm maintains a forest of alternating trees rooted at unmatched vertices and searches for augmenting paths via parity-labeled vertices. When an edge joins two vertices in the same tree with the same parity, an odd cycle (blossom) is formed; the algorithm contracts this blossom to a single vertex and continues the search on the contracted graph. On finding an augmenting path, the algorithm expands contracted blossoms in reverse order, flipping matched and unmatched edges along the path to increase the matching size. Practical implementations use data structures and ideas refined in systems at Bell Labs, AT&T Labs, and academic groups at MIT and Cornell University, employing union-find structures and explicit blossom tracking. Optimizations draw on work by Robert Tarjan on data structures and on capacity to handle large sparse graphs studied by Edsger Dijkstra and Donald Knuth.
Correctness proofs rely on parity and contraction invariants tied to results by William Tutte and combinatorial proofs developed in the era of Paul Erdős and George Pólya. Edmonds gave a polynomial-time bound, and later refinements by researchers at Bell Labs and Carnegie Mellon University improved the running time constants. The original algorithm ran in polynomial time and played an important role in classifying problems in P; later algorithmic complexity improvements used techniques from Randomized algorithms and deterministic improvements influenced by Richard Karp and Michael Rabin.
Multiple variants and speedups include implementations by M. M. Gabow, algorithms for weighted matchings building on Edmonds's ideas combined with techniques due to Harold Kuhn and Jack Edmonds's own work on matroid intersection. The blossom algorithm was extended to maximum-weight matchings via the blossom-shrinking approach and primal-dual methods developed alongside research at Princeton University and Stanford University. Parallel and distributed variants were explored in projects at University of California, Berkeley and University of Toronto, while randomized and algebraic methods based on the Tutte matrix were developed at Massachusetts Institute of Technology and Microsoft Research.
Edmonds' algorithm underpins practical systems in areas researched at Bell Labs, AT&T, and IBM Research including resource allocation, network design, and scheduling in projects tied to NASA and DARPA initiatives. Academic examples illustrate matching on nonbipartite graphs arising in chemistry problems studied at University of Cambridge and in market design contexts associated with Harvard University and University of Chicago. Educational expositions and software libraries implementing the blossom algorithm appear in repositories maintained by groups at Stanford University, University of Waterloo, and ETH Zurich.
Category:Algorithms Category:Graph theory