Maximum Matching in General Graphs

14,736 views
14,489 views

Published on

In graph theory, a matching is a subset of a graph's edges such hat no two edges meet the same vertex. A matching is maximum if no other matching contains more edges. A trivial solution (exhaustive search) to the problem of finding a maximum matching has exponential complexity. We illustrate polynomial time solutions to the problem that were published between 1965 and 1991.

Published in: Education, Technology

Maximum Matching in General Graphs

  1. 1. Maximum Matching in General Graphs Ahmad Khayyat Department of Electrical & Computer Engineering ahmad.khayyat@ece.queensu.ca Course Project CISC 879 — Algorithms and Applications Queen’s University November 19, 2008ECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 1
  2. 2. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion Outline 1 Introduction 2 Paths, Trees and Flowers 3 Efficient Implementation of Edmonds’ Algorithm 4 Reachability Problem Approach 5 ConclusionECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 2
  3. 3. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion Outline 1 Introduction Terminology Berge’s Theorem Bipartite Matching 2 Paths, Trees and Flowers 3 Efficient Implementation of Edmonds’ Algorithm 4 Reachability Problem Approach 5 ConclusionECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 3
  4. 4. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion Terminology Maximum Matching G = (V, E) is a finite undirected graph: n = |V |, m = |E|. A matching M in G, (G, M ), is a subset of its edges such that no two meet the same vertex. M is a maximum matching if no other matching in G contains more edges than M . A maximum matching is not necessarily unique. Given (G, M ), a vertex is exposed if it meets no edge in M . MECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 4
  5. 5. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion Terminology Augmenting Paths An alternating path in (G, M ) is a simple path whose edges are alternately in M and not in M . An augmenting path is an alternating path whose ends are distinct exposed vertices. v1 v2 v3 v1 v2 v3 v6 v5 v4 v6 v5 v4ECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 5
  6. 6. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion Berge’s Theorem Berge’s Theorem Berge’s Theorem (1957) A matched graph (G, M ) has an augmenting path if and only if M is not maximum. v1 v2 v3 v1 v2 v3 v6 v5 v4 v6 v5 v4 Unique? An Exponential Algorithm: Exhaustively search for an augmenting path starting from an exposed vertex.ECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 6
  7. 7. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion Bipartite Matching Bipartite Graphs A bipartite graph G = (A, B, E) is a graph whose vertices can be divided into two disjoint sets A and B such that every edge connects a vertex in A to one in B. Equivalently, it is a graph with no odd cycles. 1 A C 1 C 4 D A 4 D 2 2 E E B 5 3 B 3 5ECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 7
  8. 8. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion Bipartite Matching Bipartite Graph Maximum Matching for all v ∈ A, v is exposed do Search for simple alternating paths starting at v if path P ends at an exposed vertex u ∈ B then O(nm) P is an augmenting path {Update M } end if end for Current M is maximum {No more augmenting paths} 1 C A 4 D 2 E B 5 3ECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 8
  9. 9. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion Bipartite Matching Bipartite Graph Maximum Matching for all v ∈ A, v is exposed do Search for simple alternating paths starting at v if path P ends at an exposed vertex u ∈ B then O(nm) P is an augmenting path {Update M } end if end for Current M is maximum {No more augmenting paths} 1 C 1 C A 4 D A 4 D 2 2 E E B 5 B 5 3 3ECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 8
  10. 10. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion Bipartite Matching Non-Bipartite Matching Problem: Odd cycles . . . 4 6 1 2 3 5 1 2 3 6 4 5ECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 9
  11. 11. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion Outline 1 Introduction 2 Paths, Trees and Flowers Blossoms The Algorithm 3 Efficient Implementation of Edmonds’ Algorithm 4 Reachability Problem Approach 5 ConclusionECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 10
  12. 12. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion Blossoms Blossoms Blossoms A blossom B in (G, M ) is an odd cycle with a unique exposed vertex (the base) in M ∩ B. 4 6 1 2 3 5 1 2 3 6 4 5ECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 11
  13. 13. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion Blossoms Edmonds’ Blossoms Lemma Blossoms Lemma Let G and M be obtained by contracting a blossom B in (G, M ) to a single vertex. The matching M of G is maximum iff M is maximum in G . 4 6 1 2 3 5 1 2 B 6ECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 12
  14. 14. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion Blossoms Detecting Blossoms Performing the alternating path search of the bipartite matching algorithm (starting from an exposed vertex): ´ Label vertices at even distance from the root as “outer”; ´ Label vertices at odd distance from the root as “inner”. If two outer vertices are found adjacent, we have a blossom. I O I O 4 6 1 2 3 5 OECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 13
  15. 15. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion The Algorithm Edmonds’ Algorithm (1965) for all v ∈ V , v is exposed do Search for simple alternating paths starting at v O(n3 ) O(n2 ) Shrink any found blossoms if path P ends at an exposed vertex then P is an augmenting path {Update M } else if no augmenting paths found then Ignore v in future searches end if end for Current M is maximum {No more augmenting paths} Complexity: O(n4 )ECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 14
  16. 16. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion The Algorithm Example |M | = 4 1 2 3 4 10 9 5 6 8 7ECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 15
  17. 17. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion The Algorithm Example |M | = 4 O I O I 1 2 3 4 O 10 9 5 6 I 8 7 OECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 15
  18. 18. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion The Algorithm Example |M | = 4 O I O I 1 2 3 4 10 9 B1 O 8 B1 = 5, 6, 7ECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 15
  19. 19. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion The Algorithm Example |M | = 4 O I O I 1 2 3 4 O 10 9 B1 O 8 I B1 = 5, 6, 7ECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 15
  20. 20. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion The Algorithm Example |M | = 4 O I O I 1 2 3 4 10 B2 I O B1 = 5, 6, 7 B2 = B1 , 8, 9 = 5, 6, 7, 8, 9ECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 15
  21. 21. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion The Algorithm Example |M | = 4 1 2 3 4 10 B2 B1 = 5, 6, 7 B2 = B1 , 8, 9 = 5, 6, 7, 8, 9ECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 15
  22. 22. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion The Algorithm Example |M | = 4 1 2 3 4 10 9 B1 8 B1 = 5, 6, 7 B2 = B1 , 8, 9 = 5, 6, 7, 8, 9ECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 15
  23. 23. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion The Algorithm Example |M | = 4 |M | = 5 1 2 3 4 10 9 5 6 8 7 B1 = 5, 6, 7 B2 = B1 , 8, 9 = 5, 6, 7, 8, 9ECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 15
  24. 24. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion Outline 1 Introduction 2 Paths, Trees and Flowers 3 Efficient Implementation of Edmonds’ Algorithm Data Structures The Algorithm Performance 4 Reachability Problem Approach 5 ConclusionECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 16
  25. 25. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion Data Structures Three Arrays u is an exposed vertex. A vertex v is outer if there is a path P (v) = (v, v1 , . . . , u), where vv1 ∈ M . 1 MATE: Specifies a matching. An entry for each vertex: ´ vw ∈ M ⇒ MATE (v) = w and MATE (w) = v. 2 LABEL: Provides a type and a value: LABEL(v) ≥ 0 → v is outer LABEL(u) → start label, P (u) = (u) 1 ≤ LABEL(v) ≤ n → vertex label n + 1 ≤ LABEL(v) ≤ n + 2m → edge label 3 START (v) = the first non-outer vertex in P (v).ECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 17
  26. 26. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion The Algorithm Gabow’s Algorithm (1976) for all u ∈ V, u is exposed do while ∃ an edge xy, x is outer AND no augmenting path found do if y is exposed, y = u then (y, x, . . . , u) is an augmenting path else if y is outer then Assign edge labels to P (x) and P (y) else if MATE (y) is non-outer then Assign a vertex label to MATE (y) end if end while end forECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 18
  27. 27. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion The Algorithm Gabow’s Algorithm (1976) O(n) for all u ∈ V, u is exposed do while ∃ an edge xy, x is outer AND no augmenting path found do O(1) if y is exposed, y = u then O(n) (y, x, . . . , u) is an augmenting path O(n) else if y is outer then O(n) Assign edge labels to P (x) and P (y) O(n) else if MATE (y) is non-outer then O(1) Assign a vertex label to MATE (y) end if end while end for Complexity: O(n3 )ECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 18
  28. 28. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion Performance Experimental Performance Using an implementation in Algol W on the IBM 360/165 Worst-case graphs: ´ Efficient Implementation: run times proportional to n2.8 . ´ Edmond: run times proportional to n3.5 . Random graphs: times one order of magnitude faster than worst-case graphs. Space used is 5n + 4m.ECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 19
  29. 29. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion Outline 1 Introduction 2 Paths, Trees and Flowers 3 Efficient Implementation of Edmonds’ Algorithm 4 Reachability Problem Approach Reachability and Graphs The Algorithm 5 ConclusionECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 20
  30. 30. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion Reachability and Graphs The Reachability Problem in Bipartite Graphs Construction: Bipartite graph + Matching → Directed graph G = (A, B, E) + M → G = (V , E ) ´ V = V ∪ {s, t} ´ ∀ xy ∈ M , x ∈ A, y ∈ B → (x, y) ∈ E e∈M ⇒e:A→B ´ ∀ xy ∈ M , x ∈ A, y ∈ B → (y, x) ∈ E / e∈M ⇒e:B→A / ´ ∀ b ∈ B, b is exposed → add (s, b) to E ´ ∀ a ∈ A, a is exposed → add (a, t) to E A1 B1 A1 B1 =⇒ t s A2 B2 A2 B2ECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 21
  31. 31. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion Reachability and Graphs The Reachability Problem in Bipartite Graphs Construction: Bipartite graph + Matching → Directed graph G = (A, B, E) + M → G = (V , E ) ´ V = V ∪ {s, t} ´ ∀ xy ∈ M , x ∈ A, y ∈ B → (x, y) ∈ E e∈M ⇒e:A→B ´ ∀ xy ∈ M , x ∈ A, y ∈ B → (y, x) ∈ E / e∈M ⇒e:B→A / ´ ∀ b ∈ B, b is exposed → add (s, b) to E ´ ∀ a ∈ A, a is exposed → add (a, t) to E A1 B1 A1 B1 =⇒ t s A2 B2 A2 B2 An augmenting path in G ⇔ A simple path from s to t in G .ECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 21
  32. 32. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion Reachability and Graphs The Reachability Problem in General Graphs Construction For each v ∈ V , we introduce two nodes vA and vB V = {vA , vB |v ∈ V } ∪ {s, t} s, t ∈ V, s = t / e ∈ M ⇒ e : A → B, e∈M ⇒e:B→A / E = {(xA , yB ), (yA , xB ) | (x, y) ∈ M } ∪ {(xB , yA ), (yB , xA ) | (x, y) ∈ M } / ∪ {(s, xB ) | x is exposed} ∪ {(xA , t) | x is exposed} t 1 2 1A 2A 3A 4A =⇒ 1B 2B 3B 4B 4 3 sECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 22
  33. 33. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion Reachability and Graphs The Reachability Problem in General Graphs Strongly Simple Paths A path P in G is strongly simple if: P is simple. vA ∈ P ⇒ vB ∈ P . / Theorem There is an augmenting path in G if and only if there is a strongly simple path from s to t in G . t 1 2 1A 2A 3A 4A =⇒ 1B 2B 3B 4B 4 3 sECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 23
  34. 34. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion Reachability and Graphs Solving the Reachability Problem Solution: A strongly simple path from s to t in G : Depth-First Search (DFS) for t starting at s. DFS finds simple paths. We need to find strongly simple paths only. We use a Modified Depth-First Search (MDFS) algorithm. Example: t 1 2 1A 2A 3A 4A =⇒ 1B 2B 3B 4B 4 3 sECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 24
  35. 35. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion Reachability and Graphs Solving the Reachability Problem Solution: A strongly simple path from s to t in G : Depth-First Search (DFS) for t starting at s. DFS finds simple paths. We need to find strongly simple paths only. We use a Modified Depth-First Search (MDFS) algorithm. Example: t 1 2 1A 2A 3A 4A =⇒ 1B 2B 3B 4B 4 3 sECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 24
  36. 36. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion The Algorithm Data Structures Stack K ´ TOP(K): the last vertex added to the stack K. ´ Vertices in K form the current path. ´ In each step, the MDFS algorithm considers an edge (TOP(K), v), v ∈ V . List L(vA ) ´ To get a strongly simple path, vA and vB cannot be in K simultaneously (we may ignore a vertex, temporarily). ´ List L(vA ) keeps track of such vertices.ECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 25
  37. 37. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion The Algorithm Hopcroft and Karp Algorithm for Bipartite Graphs (1973) Step 1: M ←φ Step 2: Let l(M ) be the length of a shortest augmenting path of M Find a maximal set of paths {Q1 , Q2 , . . . , Qt } such that: 2.1 For each i, Qi is an augmenting path of M , |Qi | = l(M ), Qi are vertex-disjoint. 2.2 Halt if no such paths exists. Step 3: M ← M ⊕ Q1 ⊕ Q2 ⊕ · · · ⊕ Qt ; Go to 1. Hopcroft and Karp Theorem If the cardinality of a maximum matching is s, then this algorithm √ constructs a maximum matching within 2 s + 2 executions of Step 2. √ Step 2 complexity: O(m) ⇒ Overall complexity: O( nm)ECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 26
  38. 38. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion The Algorithm √ An O( nm) Algorithm for General Graphs Blum describes an O(m) implementation of Step 2 for general graphs, using a Modified Breadth-First Search (MBFS). Blum’s Step 2 Algorithm: Step 1: Using MBFS, compute G Step 2: Using MDFS, compute a maximal set of strongly simple paths from s to t in G . Blum’s Theorm A maximum matching in a general graph can be found in time √ O( nm) and space O(m + n).ECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 27
  39. 39. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion Outline 1 Introduction 2 Paths, Trees and Flowers 3 Efficient Implementation of Edmonds’ Algorithm 4 Reachability Problem Approach 5 Conclusion Summary QuestionsECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 28
  40. 40. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion Summary Summary O(n2.5 ) O(n4 ) O(n3 ) O(n2.5 ) O(n2.5 ) 1965 1976 1980 1989 1990 1991 Ed Ga M Va Bl iran Ga ica um i’s m z bo bo on li w’ w & ds s Im Va Pr pl z oo ira em f ni en t at io nECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 29
  41. 41. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion Summary References Jack Edmonds Paths, Trees, and Flowers Canadian Journal of Mathematics, 17:449–467, 1965. http://www.cs.berkeley.edu/~christos/classics/edmonds.ps Harold N. Gabow An Efficient Implementation of Edmonds’ Algorithm for Maximum Matching on Graphs Journal of the ACM (JACM), 23(2):221–234, 1976. Norbert Blum A New Approach to Maximum Matching in General Graphs Lecture Notes in Computer Science: Automata, Languages and Programming, 443::586–597, Springer Berlin / Heidelberg, 1990.ECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 30
  42. 42. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion Summary Thank You Thank You!ECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 31
  43. 43. Introduction Paths, Trees and Flowers Efficient Implementation Reachability Approach Conclusion Questions Questions ???ECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 32

×