Slideshare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.

Slideshare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.

Like this presentation? Why not share!

- Simple algorithm & hopcroft karp fo... by Miguel Pereira 8866 views
- [ACM-ICPC] Bipartite Matching by Chih-Hsuan Kuo 2248 views
- Teaching Graph Algorithms in the Fi... by Kostas Katrinis 549 views
- Surveillance System (Minimum Vertex... by Saksham Saxena 661 views
- Network Flow by Cagatay Yuksel 992 views
- Vertex cover Problem by Gajanand Sharma 4330 views

14,736 views

14,489 views

14,489 views

Published on

License: CC Attribution License

No Downloads

Total views

14,736

On SlideShare

0

From Embeds

0

Number of Embeds

22

Shares

0

Downloads

356

Comments

0

Likes

5

No embeds

No notes for slide

- 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. Introduction Paths, Trees and Flowers Eﬃcient Implementation Reachability Approach Conclusion Outline 1 Introduction 2 Paths, Trees and Flowers 3 Eﬃcient Implementation of Edmonds’ Algorithm 4 Reachability Problem Approach 5 ConclusionECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 2
- 3. Introduction Paths, Trees and Flowers Eﬃcient Implementation Reachability Approach Conclusion Outline 1 Introduction Terminology Berge’s Theorem Bipartite Matching 2 Paths, Trees and Flowers 3 Eﬃcient Implementation of Edmonds’ Algorithm 4 Reachability Problem Approach 5 ConclusionECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 3
- 4. Introduction Paths, Trees and Flowers Eﬃcient Implementation Reachability Approach Conclusion Terminology Maximum Matching G = (V, E) is a ﬁnite 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. Introduction Paths, Trees and Flowers Eﬃcient 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. Introduction Paths, Trees and Flowers Eﬃcient 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. Introduction Paths, Trees and Flowers Eﬃcient 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. Introduction Paths, Trees and Flowers Eﬃcient 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. Introduction Paths, Trees and Flowers Eﬃcient 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. Introduction Paths, Trees and Flowers Eﬃcient 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. Introduction Paths, Trees and Flowers Eﬃcient Implementation Reachability Approach Conclusion Outline 1 Introduction 2 Paths, Trees and Flowers Blossoms The Algorithm 3 Eﬃcient Implementation of Edmonds’ Algorithm 4 Reachability Problem Approach 5 ConclusionECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 10
- 12. Introduction Paths, Trees and Flowers Eﬃcient 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. Introduction Paths, Trees and Flowers Eﬃcient 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 iﬀ 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. Introduction Paths, Trees and Flowers Eﬃcient 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. Introduction Paths, Trees and Flowers Eﬃcient 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. Introduction Paths, Trees and Flowers Eﬃcient 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. Introduction Paths, Trees and Flowers Eﬃcient 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. Introduction Paths, Trees and Flowers Eﬃcient 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. Introduction Paths, Trees and Flowers Eﬃcient 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. Introduction Paths, Trees and Flowers Eﬃcient 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. Introduction Paths, Trees and Flowers Eﬃcient 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. Introduction Paths, Trees and Flowers Eﬃcient 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. Introduction Paths, Trees and Flowers Eﬃcient 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. Introduction Paths, Trees and Flowers Eﬃcient Implementation Reachability Approach Conclusion Outline 1 Introduction 2 Paths, Trees and Flowers 3 Eﬃcient 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. Introduction Paths, Trees and Flowers Eﬃcient 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: Speciﬁes 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 ﬁrst non-outer vertex in P (v).ECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 17
- 26. Introduction Paths, Trees and Flowers Eﬃcient 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. Introduction Paths, Trees and Flowers Eﬃcient 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. Introduction Paths, Trees and Flowers Eﬃcient Implementation Reachability Approach Conclusion Performance Experimental Performance Using an implementation in Algol W on the IBM 360/165 Worst-case graphs: ´ Eﬃcient 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. Introduction Paths, Trees and Flowers Eﬃcient Implementation Reachability Approach Conclusion Outline 1 Introduction 2 Paths, Trees and Flowers 3 Eﬃcient 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. Introduction Paths, Trees and Flowers Eﬃcient 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. Introduction Paths, Trees and Flowers Eﬃcient 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. Introduction Paths, Trees and Flowers Eﬃcient 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. Introduction Paths, Trees and Flowers Eﬃcient 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. Introduction Paths, Trees and Flowers Eﬃcient 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 ﬁnds simple paths. We need to ﬁnd strongly simple paths only. We use a Modiﬁed 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. Introduction Paths, Trees and Flowers Eﬃcient 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 ﬁnds simple paths. We need to ﬁnd strongly simple paths only. We use a Modiﬁed 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. Introduction Paths, Trees and Flowers Eﬃcient 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. Introduction Paths, Trees and Flowers Eﬃcient 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. Introduction Paths, Trees and Flowers Eﬃcient 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 Modiﬁed 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. Introduction Paths, Trees and Flowers Eﬃcient Implementation Reachability Approach Conclusion Outline 1 Introduction 2 Paths, Trees and Flowers 3 Eﬃcient 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. Introduction Paths, Trees and Flowers Eﬃcient 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. Introduction Paths, Trees and Flowers Eﬃcient 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 Eﬃcient 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. Introduction Paths, Trees and Flowers Eﬃcient Implementation Reachability Approach Conclusion Summary Thank You Thank You!ECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 31
- 43. Introduction Paths, Trees and Flowers Eﬃcient Implementation Reachability Approach Conclusion Questions Questions ???ECE @ Queen’s • Fall 2008 Ahmad Khayyat Maximum Matching in General Graphs • 32

No public clipboards found for this slide

×
### Save the most important slides with Clipping

Clipping is a handy way to collect and organize the most important slides from a presentation. You can keep your great finds in clipboards organized around topics.

Be the first to comment