Upcoming SlideShare
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Standard text messaging rates apply

# Simple algorithm & hopcroft karp for bipartite graph

5,788

Published on

Published in: Technology
1 Comment
1 Like
Statistics
Notes
• Full Name
Comment goes here.

Are you sure you want to Yes No
• The demonstration of hopcroft karp helped a lot. Thanks!

Are you sure you want to  Yes  No
Views
Total Views
5,788
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
136
1
Likes
1
Embeds 0
No embeds

No notes for slide

### Transcript

• 1. Combinatorial Algorithms(Algorithms in Bipartite Graphs)
• 2. IntroductionAlgorithms in unweighted bipartite graphMaximum matchingA simple algorithmHopcroft-Karp algorithmOutline
• 3. DefinitionA graph G = (V, E) is bipartite if there exists partitionV = X Y∪ with X Y =∩ ∅ and E X × Y⊆ .Bipartite Graph typesUnweightedWeightedFor every edge e E∈ , there is aweight w(e) .Introduction
• 4. Example:There are a set of boys and a set of girls.Each boy only likes girls and each girl only likes boys.A common friend wants to match each boy with a girl such thatthe boy and girl are both happy – but they both will only behappy if the boy likes the girl and the girl likes the boy.Is it possible for every situation?IntroductionWe can use a bipartite graphto model this problem
• 5. ProblemTesting bipartitenessMatchingMaximum matching problemIntroduction
• 6. Maximum matching
• 7. DefinitionMatchingA Matching is a subset M E⊆ such that ∀v V∈ at most oneedge in M is incident upon v– Maximum matching– A Maximum Matching is matching M such that everyothermatching M′ satisfies |M′| ≤ |M|.– Unweighted graph: |M|= the number of edges– Weighted graph: |M|=– Perfect Matching– A matching which matches all vertices of the graphMaximum matching
• 8. A Matching A Maximum MatchingNot a MatchingDefinitionWe say that a vertex is matched if it is incident to some edge inM.Otherwise, the vertex is freematchedfree(not perfect)Maximum matching
• 9. DefinitionAlternating PathsA path is alternating if its edges alternatebetween M and E − M.Augmenting PathsAn alternating path is augmenting if bothendpoints are freeAlternating TreeA tree rooted at some free vertex v inwhich every path is an alternating path.• Alternating paths( Y1, X2, Y2, X4 )• Augmenting Path(Y1, X2, Y2, X4, Y4, X5)Maximum matching
• 10. Property of Augmenting PathsReplacing the M edges by the E − M ones increments size of thematching(Path: Y1, X2, Y2, X4, Y4,X5)Berges Theorem: A matching M is maximum iff ithas no augmenting path (Proof: Lec01 Page 3)Maximum matching
• 11. A simple algorithmX2X3X1Y1Y2 Y3 Y4 Maximum matching
• 12. A simple algorithmX2X3X1Y1Y2 Y3 Y4 X2X3X1Y1Y2 Y3 Y4 X2X3X1Y1Y2 Y3 Y4 Maximum matching
• 13. A simple algorithmX2X3X1Y1Y2 Y3 Y4 X2X3X1Y1Y2 Y3 Y4 X2X3X1Y1Y2 Y3 Y4 X2X3X1Y1Y2 Y3 Y4 Maximum matching
• 14. A simple algorithmX2X3X1Y1Y2 Y3 Y4 X2X3X1Y1Y2 Y3 Y4 X2X3X1Y1Y2 Y3 Y4 Maximum matching
• 15. A simple algorithm• Commonly search algorithm (BFS, DFS) O(E)• At most V times• Complexity: O(VE)X2X3X1Y1Y2 Y3 Y4 Maximum matching
• 16. Hopcroft-Karp AlgorithmAn algorithm to find the maximum matching given abipartite graphGordon
• 17. Introduction• The Hopcroft-Karp algorithm was published in1973• It is a matching algorithm that finds amaximum matching in bipartite graphs• The main idea is to augment along a set ofvertex-disjoint shortest augment pathssimulatenously• The complexity is O(√|V||E|)• In this section, some Theorems and Lemmasfrom graph theory will be stated withoutshowing the proof.
• 18. Definition• We let the set A B denote the symmetric⊕difference of the set• A B = (A B) – (A B)⊕ ∪ ∩• A maximal set of vertex-disjoint minimumlength augmenting path is defined as follows : It is a set of augmenting path No two path share a same vertex If the minimum length augmenting path is oflength k, then all paths in S are of length k If p is an augmenting path not in S, then pshares a vertex with some path p’ in S
• 19. AlgorithmThe algorithm of Hopcroft and Kraft is as follows :Given a graph G = (X Y),E)∪1) Let M = {} ,2) Find S = {P1 , P2 , … Pk}3) While S ≠ {}M = M S⊕Find S4) Output M
• 20. Demonstration of algorithm at some stageLet the dark edges represent the edgesin a matching M
• 21. Demonstration of algorithm at some stagePink edges represent anaugmenting pathDeleting them
• 22. Demonstration of algorithm at some stageAnother augmenting pathNo more paths
• 23. Demonstration of algorithm at some stagePink edges represent thepaths in maximal set SM S⊕Note the before and after