Transcript Slide 1
Matchings and where they lead us László Lovász Microsoft Research [email protected] Bipartite matching and the Hungarian method Existence and min-max Theorem: Frobenius 1912, 1917 König 1915, 1931 Egerváry 1931 Polynomial time algorithm: Kuhn 1955 Structure theory: König 1916 Dulmage-Mendelssohn 1958-59 Bipartite matching and the Hungarian method Nonbipartite matching Nonbipartite matching Existence and min-max Theorem: Tutte 1947 Polynomial time algorithm: Edmonds 1965 Structure theory: Gallai 1963 Edmonds 1965 Kotzig 1959-60 Bipartite matching and the Hungarian method Nonbipartite matching Alternating paths Alternating paths Maximum flow: Ford-Fulkerson 1956 Matroid intersection: Edmonds 1969 Matroid matching: Lovász 1980 Stable sets in claw-free graphs: Minty, Sbihi 1980 Jump systems: Boucher, Cunningham 1995 Bipartite matching and the Hungarian method Nonbipartite matching Alternating paths Linear programming Linear programming Total unimodularity: Hoffman-Kuhn 1956 Hoffman-Kruskal 1956 Total dual integrality: Hoffman 1970 Edmonds-Giles 1977 Perfect graphs: Berge 1959 Fulkerson 1971 Lovász 1972 Bipartite matching and the Hungarian method Nonbipartite matching Alternating paths Linear programming Polyhedral combinatorics Polyhedral combinatorics The matching polytope: Equivalence of separation and optimization: Edmonds 1965 Grötschel-Lovász-Schrijver 1981 Bipartite matching and the Hungarian method Nonbipartite matching Alternating paths Determinants Linear programming Polyhedral combinatorics æ0 1 0 0 1 0ö ÷ çç ÷ çç1 0 1 0 0 0÷ ÷ ÷ çç ÷ çç1 1 0 1 0 1 ÷ ÷ ÷ ÷ çç ÷ çç0 0 1 0 1 0÷ ÷ ÷ çç ÷ ÷ 1 0 0 1 1 1 ÷ çç ÷ çç0 0 1 0 1 0÷ ÷ è ø æ0 x12 0 0 x15 0 ÷ ö ç ÷ ç ÷ ç ÷ x 0 x 0 0 0 ç 21 23 ÷ ç ÷ ç ÷ ç x31 x32 0 x34 0 x36 ÷ ÷ ç ÷ ç ÷ ç ÷ ç 0 0 x 0 x 0 ÷ 4 3 45 ç ÷ ç ÷ ç ÷ x 0 0 x x x ç 51 54 55 56 ÷ ÷ ç ÷ ç ç ÷ è0 0 x63 0 x65 0 ÷ ø æ ö 0 x12 0 0 x15 0 ÷ ç ÷ ç ÷ ç ÷ x 0 x 0 0 0 ç 21 23 ÷ ç ÷ ç ÷ ç x31 x32 0 x34 0 x36 ÷ ÷ ç ÷ det ç = ... ± x12 x21 x36 x43 x54 x65 m ... ÷ ç ÷ ç 0 0 x 0 x 0 ÷ 43 45 ç ÷ ç ÷ ç ÷ x 0 0 x x x ç 51 54 55 56 ÷ ÷ ç ÷ ç ç ÷ è0 0 x63 0 x65 0 ÷ ø Determinants Determinants vs. bipartite perfect matchings: König 1915 Determinants vs. non-bipartite perfect matchings: Tutte 1947 Linear algebra and bipartite matching: Perfect 1966 Edmonds 1967 Generic rigidity, geometric representations,... Bipartite matching and the Hungarian method Nonbipartite matching Alternating paths Determinants Randomized algorithms Linear programming Polyhedral combinatorics Randomized algorithms (just substitute) Bipartite graphs: Edmonds 1967 Running time analysis: Schwarz 1978 Lovász 1979 Exact matching: only by random substitution! Bipartite matching and the Hungarian method Nonbipartite matching Alternating paths Determinants Randomized algorithms Linear programming Polyhedral combinatorics Counting æ ö 0 x 0 0 x 0 12 15 ÷ ç ÷ ç ç ÷ x21 0 x23 0 0 0 ÷ ç ÷ ç ÷ ç ÷ ç ÷ x x 0 x 0 x 31 32 34 36 ÷ ç ÷ det ç = ... ± x12 x21 x36 x43 x54 x65 m ... ÷ ç ÷ ç 0 0 x43 0 x45 0 ÷ ç ÷ ç ÷ ç ÷ x 0 0 x x x ÷ ç 51 54 55 56 ÷ ç ÷ ç ÷ ç è0 0 x63 0 x65 0 ÷ ø Substitute +1 or -1 to compensate for the sign? (Polya) Substitute randomly and take expectation? Counting Planar graph: Characterization: Kasteleyn 1957 McCuaig-Robertson -Seymour-Thomas 1997 Approximate, determinants: Godsil-Gutman 1980 E(det( A(...xij ...)2 )) = # perfect matchings When is the variance small? Approximate, by sampling: Alternating path strikes back Jerrum-Sinclair 1988 Four problems for NP Property in NP: $X : A ( X , Y ) = true Witness of a property in NP: X : A ( X , Y ) = true Existence: language in NP Optimization: find optimal witness Counting: number of witnesses Sampling: generate random witness Bipartite matching and the Hungarian method Nonbipartite matching Alternating paths Determinants Randomized algorithms Linear programming Polyhedral combinatorics Counting Sampling Sampling Markov chain sampling: Broder 1986 Rapid mixing proof (dense graphs): Jerrum-Sinclair 1988 Extension to non-dense, bipartite: Jerrum-Sinclair-Vigoda 2002 model for sampling from knapsack solutions, contingency tables, convex bodies, eulerian orientations,... #perfect matchings 1 < Þ #near-perfect matchings poly(n) takes long to get perfect matching #perfect matchings 1 ³ Þ #near-perfect matchings poly(n) often gets perfect matching + mixes in poly time How about non-bipartite non-dense graphs?