ConceptComplete

Matchings and Covers

A matching in a graph selects edges with no shared endpoints. The theory of matchings connects combinatorial optimization, linear programming, and polyhedral geometry, with applications from scheduling to chemistry.


Basic Definitions

Definition6.1Matching, Maximum Matching, Perfect Matching

A matching MM in GG is a set of pairwise non-adjacent edges. A vertex is saturated by MM if it is an endpoint of some edge in MM. The matching number ν(G)\nu(G) is the maximum size of a matching. A perfect matching saturates all vertices (requires V|V| even). A matching is maximal if no edge can be added; maximal \neq maximum in general.

Definition6.2Vertex Cover and König's Duality

A vertex cover SS is a set of vertices such that every edge has at least one endpoint in SS. The vertex cover number τ(G)=minS\tau(G) = \min|S|. Always ν(G)τ(G)\nu(G) \leq \tau(G) (each matching edge needs a distinct cover vertex). König's theorem (bipartite): ν(G)=τ(G)\nu(G) = \tau(G) when GG is bipartite. For general graphs, the Gallai theorem: ν(G)+τ(G)=V(G)\nu(G) + \tau(G) = |V(G)| when every component has a perfect matching... no, correctly: α(G)+τ(G)=V\alpha(G) + \tau(G) = |V| where α\alpha is the independence number.


Augmenting Paths

ExampleAugmenting Path Algorithm

An augmenting path for matching MM is a path that starts and ends at unsaturated vertices and alternates between edges not in MM and edges in MM. Berge's lemma: MM is maximum if and only if no augmenting path exists. To enlarge MM: find an augmenting path PP and set M=MPM' = M \triangle P (symmetric difference). This increases M|M| by 1. The Hopcroft-Karp algorithm finds maximum matchings in bipartite graphs in O(nm)O(\sqrt{n} \cdot m) time.

RemarkEdmonds' Blossom Algorithm

For general (non-bipartite) graphs, augmenting paths can be found using Edmonds' blossom algorithm. A blossom is an odd cycle where all but one vertex is matched within the cycle. The algorithm "shrinks" blossoms to single vertices, finds augmenting paths in the contracted graph, and "expands" back. This runs in O(n2m)O(n^2 m) time (improved to O(n1/2m)O(n^{1/2}m) with Micali-Vazirani).