460 likes | 526 Views
Bipartite Matching. Unweighted Bipartite Matching. Definitions. Matching. Free Vertex. Definitions. Maximum Matching: matching with the largest number of edges. Definition. Note that maximum matching is not unique. Intuition. Let the top set of vertices be men
E N D
Definitions Matching Free Vertex
Definitions • Maximum Matching: matching with the largest number of edges
Definition • Note that maximum matching is not unique.
Intuition • Let the top set of vertices be men • Let the bottom set of vertices be women • Suppose each edge represents a pair of man and woman who like each other • Maximum matching tries to maximize the number of couples!
Applications • Matching has many applications. • This lecture lets you know how to find maximum matching.
Alternating Path • Alternating between matching and non-matching edges. a c d e b f h i j g d-h-e: alternating path a-f-b-h-d-i: alternating path starts and ends with free vertices f-b-h-e: not alternating path e-j: alternating path starts and ends with free vertices
Idea • “Flip” augmenting path to get better matching • Note: After flipping, the number of matched edges will increase by 1!
Idea • Theorem (Berge 1975): A matching M in G is maximum iffThere is no augmenting path Proof: • () If there is an augmenting path, clearly not maximum. (Flip matching and non-matching edges in that path to get a “better” matching!)
Proof for the other direction • () Suppose M is not maximum. Let M’ be a maximum matching such that |M’|>|M|. • Consider H = MM’ = (MM’)-(MM’)i.e. a set of edges in M or M’ but not both • H has two properties: • Within H, number of edges belong to M’ > number of edges belong to M. • H can be decomposed into a set of paths. All paths should be alternating between edges in M and M’. • There should exist a path with more edges from M’. Also, it is alternating.
Idea of Algorithm • Start with an arbitrary matching • While we still can find an augmenting path • Find the augmenting path P • Flip the edges in P
Breadth-First Search Algorithm for Augmented Path • Use Breadth-First Search: • LEVEL(0) = some unmatched vertex r • for odd L > 0, • LEVEL(L) = {u|{v,u} E – M • when v LEVEL(L -1) • and when u in no lower level} • For even L > 0, • LEVEL(L) = {u|{v,u} M • when v LEVEL(L -1) • and u in no lower level} • Assume G is bipartite graph with matching M.
Proof of Breadth-First Search Algorithm for Augmented Path • Cases • (1) If for some odd L >0, • LEVEL(L) contains an unmatched vertex u • then the Breadth First Search tree T has an augmenting path from r to u • (2) Otherwise no augmenting path exists, so • M is maximal.
Labelling Algorithm • Start with arbitrary matching
Labelling Algorithm • Pick a free vertex in the bottom
Labelling Algorithm • Run BFS
Labelling Algorithm • Alternate unmatched/matched edges
Labelling Algorithm • Until a augmenting path is found
Repeat • Pick another free vertex in the bottom
Repeat • Run BFS
Repeat • Flip
Answer • Since we cannot find any augmenting path, stop!
Overall algorithm • Start with an arbitrary matching (e.g., empty matching) • Repeat forever • For all free vertices in the bottom, • do bfs to find augmenting paths • If found, then flip the edges • If fail to find, stop and report the maximum matching.
Time analysis • We can find at most |V| augmenting paths (why?) • To find an augmenting path, we use bfs! Time required = O( |V| + |E| ) • Total time: O(|V|2 + |V| |E|)
Improvement • We can try to find augmenting paths in parallel for all free nodes in every iteration. • Using such approach, the time complexity is improved to O(|V|0.5 |E|)
Weighted Bipartite Graph 3 4 6 6
Weighted Matching Score: 6+3+1=10 3 4 6 6
Maximum Weighted Matching Score: 6+1+1+1+4=13 3 4 6 6
Augmenting Path (change of definition) • Any alternating path such that total score of unmatched edges > that of matched edges • The score of the augmenting path is • Score of unmatched edges – that of matched edges 3 4 6 6 Note: augmenting path need not start and end at free vertices!
Idea for finding maximum weight matching • Theorem: Let M be a matching of maximum weight among matchings of size |M|. • If P is an augmenting path for M of maximum weight, • Then, the matching formed by augmenting M by P is a matching of maximum weight among matchings of size |M|+1.
Overall Algorithm • Start with an empty matching • Repeat forever • Find an augmenting path P with maximum score • If the score > 0, then flip the edges • Otherwise, stop and report the maximum weight matching.
Time analysis • The same! • Time required = O(|V|2 + |V| |E|)
Stable Marriage Problem • Given N men and N women, each person list in order of preference all the people of the opposite sex who would like to marry. • Problem: • Engage all the women to all the men in such a way as to respect all their preferences as much as possible.
A B C D E 1 2 3 4 5 2 1 2 1 5 E D A C D 5 2 3 3 3 A E D B B 1 3 5 2 2 D B B D C 3 4 4 4 1 B A C A E 4 5 1 5 4 C C E E A Stable? • A set of marriages is unstable if • two people who are not married both prefer each other than their spouses • E.g. Suppose we have A1 B3 C2 D4 E5. This is unstable since • A prefer 2 more than 1 • 2 prefer A more than C
Naïve solution • Starting from a feasible solution. • Check if it is stable. • If yes, done! • If not, remove an unstable couple. • Is this work?
A B C D E 1 2 3 4 5 2 1 2 1 5 E D A C D 5 2 3 3 3 A E D B B 1 3 5 2 2 D B B D C 3 4 4 4 1 B A C A E 4 5 1 5 4 C C E E A Naïve solution (2) • Does not work! • E.g. • A1 B3 C2 D4 E5 • A2B3 C1 D4 E5 • A3 B2 C1 D4 E5 • A3 B1 C2 D4 E5
Solution • Let X be the first man. • X proposes to the best woman in the remaining on his list. (Initially, the first woman on his list!) • If α is not engaged • Pair up (X, α). Then, set X=next man and goto 1. • If α prefers X more than her fiancee Y, • Pair up (X, α). Then, set X=Y and goto 1. • Goto 1
A B C D E 1 2 3 4 5 2 1 2 1 5 E D A C D 5 2 3 3 3 A E D B B 1 3 5 2 2 D B B D C 3 4 4 4 1 B A C A E 4 5 1 5 4 C C E E A Example A B C D E 2 1 2 1 5 5 2 3 3 3 1 3 5 2 4
Time analysis • If there are N men and N women, • O(N2) time