+ All Categories
Home > Documents > CS4234 Optimiz(s)ationAlgorithmsstevenha/cs4234/lectures/07... · 2020. 11. 30. · CS3233/CS4234...

CS4234 Optimiz(s)ationAlgorithmsstevenha/cs4234/lectures/07... · 2020. 11. 30. · CS3233/CS4234...

Date post: 26-Mar-2021
Category:
Upload: others
View: 5 times
Download: 0 times
Share this document with a friend
27
CS4234 Optimiz(s)ation Algorithms L7 – (Weighted) Max-Cardinality -(Bipartite)-Matching https://visualgo.net/en/matching v0.1: Seth Gilbert V1.4: Steven Halim CS3233/CS4234 Steven Halim, SoC, NUS
Transcript
Page 1: CS4234 Optimiz(s)ationAlgorithmsstevenha/cs4234/lectures/07... · 2020. 11. 30. · CS3233/CS4234 Dual Slides Dr. Steven Halim This course material is now made available for public

CS4234Optimiz(s)ation Algorithms

L7 – (Weighted) Max-Cardinality-(Bipartite)-Matching

https://visualgo.net/en/matching

v0.1: Seth GilbertV1.4: Steven Halim

CS3233/CS4234Steven Halim, SoC, NUS

Page 2: CS4234 Optimiz(s)ationAlgorithmsstevenha/cs4234/lectures/07... · 2020. 11. 30. · CS3233/CS4234 Dual Slides Dr. Steven Halim This course material is now made available for public

CS3233/CS4234Dual Slides 

Dr. Steven Halim

This course material is now made available for public usage.Special acknowledgement to School of Computing, National University of Singapore

for allowing Steven to prepare and distribute these teaching materials.

CS3233/CS4234Steven Halim, SoC, NUS

Page 3: CS4234 Optimiz(s)ationAlgorithmsstevenha/cs4234/lectures/07... · 2020. 11. 30. · CS3233/CS4234 Dual Slides Dr. Steven Halim This course material is now made available for public

Graph Matching– Overview

– Greedy Bipartite Matching (Special Case)

– Unweighted MCBM: Max Flow (Dinic’s) review, Augmenting Path,Hopcroft‐Karp (nice theoretical result), Augmenting Path++

– Hall’s Marriage Theorem

– A few other relevant applications will be discussed in T07 

• Remember that T06 is going to be just past paper discussions

Roadmap (for CS4234) – Week 07

Page 4: CS4234 Optimiz(s)ationAlgorithmsstevenha/cs4234/lectures/07... · 2020. 11. 30. · CS3233/CS4234 Dual Slides Dr. Steven Halim This course material is now made available for public

Graph Matching– Weighted MCBM: (Min/Max) Cost (Max) Flow,

Hungarian (Kuhn‐Munkres algorithm)

– Unweighted MCM: Edmonds’ Matching (overview)

– Weighted MCM: DP with Bitmask (small graph only, review…)

• This DP with Bitmask solution will also solve other variants,but only if they are posed on small (V ≤ 20) graphs…

• Still unable to make it work for Christofides’s1.5‐Approximation algorithm for M‐R/NR‐TSP as of year 2020

Roadmap (for CS4234) – Week 09

Page 5: CS4234 Optimiz(s)ationAlgorithmsstevenha/cs4234/lectures/07... · 2020. 11. 30. · CS3233/CS4234 Dual Slides Dr. Steven Halim This course material is now made available for public

Graph Matching

A matching (marriage) in a graph G = (V, E) (real life) is a subset M of E edges in G (special relationships) such that no two of which meet at a common vertex (no affair)

Thus a.                   and b.   are matchings (red thick edge),

But trying to match both edges in c.is invalid since there is an overlapping vertex

Page 6: CS4234 Optimiz(s)ationAlgorithmsstevenha/cs4234/lectures/07... · 2020. 11. 30. · CS3233/CS4234 Dual Slides Dr. Steven Halim This course material is now made available for public

Max-Cardinality-Matching (MCM)

Usually, the problem asked in graph matching is the size (cardinality) of a maximum (not maximal) matching

A maximum matching is a matching that containsthe largest possible number of edges

A possible variant: Perfect Matching• MCM with no vertex left unmatched

– PS: This is impossible on graph with odd number of vertices

CS3233/CS4234Steven Halim, SoC, NUS

Page 7: CS4234 Optimiz(s)ationAlgorithmsstevenha/cs4234/lectures/07... · 2020. 11. 30. · CS3233/CS4234 Dual Slides Dr. Steven Halim This course material is now made available for public

Examples

is a max(imum) matching (0 matching)(no edge to be matched)

is also a max(imum) matching (1 matching)(no other edge to be matched)

But is not a max(imum) matching(it is a max(imal) matching btw)

as we can change it to                          or (2 matchings)

CS3233/CS4234Steven Halim, SoC, NUS

Page 8: CS4234 Optimiz(s)ationAlgorithmsstevenha/cs4234/lectures/07... · 2020. 11. 30. · CS3233/CS4234 Dual Slides Dr. Steven Halim This course material is now made available for public

Max-Cardinality-Bipartite-Matching (MCBM)

A Bipartite Graph is a graph whose vertices can be divided into two disjoint sets X and Y such that every edge can only connect a vertex in X to one in Y

Matching in this kind of graph is a lot easierthan matching in general graph

So if we are given a graph matching problem,our first check is to see whether the giveninput graph is bipartite…

05

1 3

2

7

CS3233/CS4234Steven Halim, SoC, NUS

Page 9: CS4234 Optimiz(s)ationAlgorithmsstevenha/cs4234/lectures/07... · 2020. 11. 30. · CS3233/CS4234 Dual Slides Dr. Steven Halim This course material is now made available for public

Weighted Matching

In some applications, the weights of edges are not uniform (1 unit) but varies

We may then want to take MCBM or MCM with minimum (or even maximum) total weight

Page 10: CS4234 Optimiz(s)ationAlgorithmsstevenha/cs4234/lectures/07... · 2020. 11. 30. · CS3233/CS4234 Dual Slides Dr. Steven Halim This course material is now made available for public

Types of Graph Matching

Bipartite?Yes No

Unweighted MCM• Edmonds’ Matching++

No

Weighted MCM

Yes

1

3

2

45

Weighted MCBM• Min Cost Max Flow• Kuhn-Munkres

(Hungarian)

Yes

1

3

42

No

Unweighted MCBM• Augmenting Path• Max Flow (Dinic’s)• Hopcroft-Karp• Augmenting Path++

EASIER

Small?

Weighted?

No

Greedy-able?

EASIER

Un/weighted MCM• DP with Bitmask

Yes

EASIER

Weighted?

NoUn/weighted MCBM• Greedy Bip Matching

Yes

EASIER

Page 11: CS4234 Optimiz(s)ationAlgorithmsstevenha/cs4234/lectures/07... · 2020. 11. 30. · CS3233/CS4234 Dual Slides Dr. Steven Halim This course material is now made available for public

Greedy Bipartite Matching

• Not all MCBM problems require special graph matching algorithms

• Let’s see https://nus.kattis.com/problems/loowater

• Can be modeled as MCBM• But the problem constraints allows the usage of a Greedy solution

• CP4 Book 1, Section 3.4.1 page 159

CS3233 ‐ Competitive Programming,Steven Halim, SoC, NUS

Hidden, review the recording?

Page 12: CS4234 Optimiz(s)ationAlgorithmsstevenha/cs4234/lectures/07... · 2020. 11. 30. · CS3233/CS4234 Dual Slides Dr. Steven Halim This course material is now made available for public

UNWEIGHTED MCBM

e‐Lecture: https://visualgo.net/en/matching?slide=4 to slide 4‐8Solutions:Augmenting Path Algorithm (very simple to implement)Max Flow (Dinic’s, longer to code)Hopcroft‐Karp Algorithm (essentially Dinic’s too)Augmenting Path Algorithm++ (the ++ is important :O)

CS3233 ‐ Competitive Programming,Steven Halim, SoC, NUS

Page 13: CS4234 Optimiz(s)ationAlgorithmsstevenha/cs4234/lectures/07... · 2020. 11. 30. · CS3233/CS4234 Dual Slides Dr. Steven Halim This course material is now made available for public

AUGMENTING PATH ALGORITHMCP4 BOOK 1 SECTION 4.6.3

e‐Lecture: https://visualgo.net/en/matching?slide=4‐1 to slide 4‐3

Finding MCBM via

CS3233/CS4234Steven Halim, SoC, NUS

Page 14: CS4234 Optimiz(s)ationAlgorithmsstevenha/cs4234/lectures/07... · 2020. 11. 30. · CS3233/CS4234 Dual Slides Dr. Steven Halim This course material is now made available for public

MAX FLOWCP4 BOOK 2 SECTION 8.4 & 8.5

e‐Lecture: https://visualgo.net/en/matching?slide=4‐4

Finding MCBM by reducing this problem into

CS3233/CS4234Steven Halim, SoC, NUS

See https://visualgo.net/en/maxflow, select modeling, Bipartite Matching, all ones

Time Complexity of such modeling:Depends on the chosen Max Flow algorithm, but much faster than general case as the capacities are all ones (unit weights) and the graph is bipartite, e.g., O(m2) for basic FF (discussed in Tut04), orO(sqrt(n)*m) (other analysis: O(min(n2/3, m1/2)*m)) for Dinic’s

Page 15: CS4234 Optimiz(s)ationAlgorithmsstevenha/cs4234/lectures/07... · 2020. 11. 30. · CS3233/CS4234 Dual Slides Dr. Steven Halim This course material is now made available for public

CP4 Book 2 Ex 8.5.3.1*:Why the graph has to be directed?

• Try this counter example (there are many others)– |MCBM| = 2 (e.g. 0‐3 and 1‐4)– But |MF| from source to sink = 3(all edges are undirected and have capacity 1)(e.g. s‐0‐3‐t, s‐1‐4‐t, AND s‐2‐4‐0‐5‐t)we should NOT have back edge 40… 

Answer hidden, review the recording?

Page 16: CS4234 Optimiz(s)ationAlgorithmsstevenha/cs4234/lectures/07... · 2020. 11. 30. · CS3233/CS4234 Dual Slides Dr. Steven Halim This course material is now made available for public

When To Use Max Flow Solution?

Only if we are solving Bipartite Matchingwith Capacity (the “Assignment Problem”)• e.g., UVa 00259, CP4 Book 2 Section 8.4.5

• This variant will be much slower to solve if reduced to MCBM, imagine if the typical capacities of the edges are big, reducing the problem to MCBM will lead to a gigantic bipartite graph…

But if we are solving pure MCBM (capacities are all 1),just use the Augmenting Path algorithm(easier to code and faster)

CS3233/CS4234Steven Halim, SoC, NUS

See https://visualgo.net/en/maxflow, select modeling, Bipartite Matching, random

Page 17: CS4234 Optimiz(s)ationAlgorithmsstevenha/cs4234/lectures/07... · 2020. 11. 30. · CS3233/CS4234 Dual Slides Dr. Steven Halim This course material is now made available for public

HOPCROFT‐KARP ALGORITHM(CP4 BOOK 2 SECTION 9.26)

e‐Lecture: https://visualgo.net/en/matching?slide=4‐5 to slide 4‐6

Finding MCBM via

CS3233/CS4234Steven Halim, SoC, NUS

Page 18: CS4234 Optimiz(s)ationAlgorithmsstevenha/cs4234/lectures/07... · 2020. 11. 30. · CS3233/CS4234 Dual Slides Dr. Steven Halim This course material is now made available for public

Hopcroft‐Karp Algorithm (1973)

Hopcroft‐Karp runs in O(V * E), proof omitted• For the extreme test case in previous slide,

this is O(sqrt(N+M)*N*M)• With M = N, this is about O(N5/2), OK for N ≤ [500..600]

– PS: Dinic’s algorithm on Bipartite Matching graph also runs in O(N5/2)

Is this algorithm must be learned in order to have a good MCBM algorithm that does well in practice/programming contest?• (CP) Answer: NOT needed…

– You can make the previous Augmenting Path Algorithm avoidsits worst case O(VE) behavior by doing O(V+E) randomized (to avoid adversary test case) greedy pre‐processing earlier , try this in VisuAlgo: “Augmenting Path with Randomized Greedy Preprocessing” on the same Example: Complete Bipartite Graph K5,5 or near K5,5

That is, up to V iterations only

Page 19: CS4234 Optimiz(s)ationAlgorithmsstevenha/cs4234/lectures/07... · 2020. 11. 30. · CS3233/CS4234 Dual Slides Dr. Steven Halim This course material is now made available for public

AUGMENTING PATH ALGORITHM++CP4 BOOK 2 SECTION 8.5.3

e‐Lecture: https://visualgo.net/en/matching?slide=4‐7 to slide 4‐8

Finding MCBM via

CS3233/CS4234Steven Halim, SoC, NUS

https://github.com/stevenhalim/cpbook-code/blob/master/ch4/mcbm.cpp

Page 20: CS4234 Optimiz(s)ationAlgorithmsstevenha/cs4234/lectures/07... · 2020. 11. 30. · CS3233/CS4234 Dual Slides Dr. Steven Halim This course material is now made available for public

Live Solve

https://nus.kattis.com/problems/bookclubFrom my Augmenting Path Algorithm++baseline code (C++)

CS3233/CS4234Steven Halim, SoC, NUS

Hidden, review the recording?

Page 21: CS4234 Optimiz(s)ationAlgorithmsstevenha/cs4234/lectures/07... · 2020. 11. 30. · CS3233/CS4234 Dual Slides Dr. Steven Halim This course material is now made available for public

MORE EXAMPLES OF MCBM PROBLEMS

THE SINGLE MOST IMPORTANT PART OF THIS LECTURE

SO KEEP AN EYE ON LEFT/RIGHT, ROW/COL, alternate ROW/COL, PRIME/COPRIME, ODD/EVEN, MALE/FEMALE, JOB/EMPLOYEE,bi‐coloring, out‐degree only/in‐degree only, no‐odd‐length‐cycle,Tree*, etc (and lots of other common stuffs)(see CP4 Exercise 4.6.3.2*)

CS3233/CS4234Steven Halim, SoC, NUS

Time permitting

Page 22: CS4234 Optimiz(s)ationAlgorithmsstevenha/cs4234/lectures/07... · 2020. 11. 30. · CS3233/CS4234 Dual Slides Dr. Steven Halim This course material is now made available for public

Min Path Cover in DAG(CP4 Book 2 Section 8.6.8)

Illustration:• Let V = passengers, we draw edge between

two vertices if a single taxi can satisfythe demand of both passengers on time…

• What is the minimum number of taxis that mustbe deployed to serve all passengers? 

This problem is called: Min Path Cover• Set of directed paths s.t. every vertex in the

graph belong to at least one path (includingpath of length 0, i.e., a single vertex)

CS3233 ‐ Competitive Programming,Steven Halim, SoC, NUS

Answer:2 Taxis!

12

3

4

5

12

3

4

5

Page 23: CS4234 Optimiz(s)ationAlgorithmsstevenha/cs4234/lectures/07... · 2020. 11. 30. · CS3233/CS4234 Dual Slides Dr. Steven Halim This course material is now made available for public

Min Path Cover in DAG(CP4 Book 2 Section 8.6.8)

Also an NP‐Hard optimization problem on general graph• But on DAG, we can reduce this to MCBM!

– Notice vertices with out‐degrees only and in‐degrees only

Vout Vin Vout Vin

V = 5, initially we need 5 pathsM = MCBM = 3each matching reduce the need of one pathV–M = 5–3 = 2 paths can cover all vertices

Note to self: Add this to “Modeling” section of VisuAlgo later and use VA screenshots instead

1

1 1

12 2 2 2 2 2

33 3 3

3

4

4 4

4

3

5 5 5 5

Page 24: CS4234 Optimiz(s)ationAlgorithmsstevenha/cs4234/lectures/07... · 2020. 11. 30. · CS3233/CS4234 Dual Slides Dr. Steven Halim This course material is now made available for public

Hall’s Marriage Theorem (1)

• Let G be a bipartite graph with bipartite sets X and Y• Then there exists a matching that covers Xif and only if for each subset W of X, |W| ≤ |N(W)|

CS3233 ‐ Competitive Programming,Steven Halim, SoC, NUS

Steven in 2006

Guy competitor 1

Guy competitor 2

A girl that Steven liked

Random girl

Another random girl

Page 25: CS4234 Optimiz(s)ationAlgorithmsstevenha/cs4234/lectures/07... · 2020. 11. 30. · CS3233/CS4234 Dual Slides Dr. Steven Halim This course material is now made available for public

Hall’s Marriage Theorem (2)

• Let G be a bipartite graph with bipartite sets X and Y• Then there exists a matching that covers Xif and only if for each subset W of X, |W| ≤ |N(W)|

CS3233 ‐ Competitive Programming,Steven Halim, SoC, NUS

Steven in 2007

Guy competitor 1

Guy competitor 2

A girl that Steven liked

Random girl

Another random girl

Grace, Steven’s wife

PS: This is a decision problem and“each subset is pseudo-polynomial”

Page 26: CS4234 Optimiz(s)ationAlgorithmsstevenha/cs4234/lectures/07... · 2020. 11. 30. · CS3233/CS4234 Dual Slides Dr. Steven Halim This course material is now made available for public

Summary (so far…)

Bipartite?Yes No

Unweighted MCM• Edmonds’ Matching++

No

Weighted MCM

Yes

1

3

2

45

Weighted MCBM• Min Cost Max Flow• Kuhn-Munkres

(Hungarian)

Yes

1

3

42

No

Unweighted MCBM• Augmenting Path• Max Flow (Dinic’s)• Hopcroft-Karp• Augmenting Path++

EASIER

Small?

Weighted?

No

Greedy-able?

EASIER

Un/weighted MCM• DP with Bitmask

Yes

EASIER

Weighted?

NoUn/weighted MCBM• Greedy Bip Matching

Yes

EASIER

Page 27: CS4234 Optimiz(s)ationAlgorithmsstevenha/cs4234/lectures/07... · 2020. 11. 30. · CS3233/CS4234 Dual Slides Dr. Steven Halim This course material is now made available for public

References

• Mostly CP4, Book 1 Section 4.6.3 + Book 2 Section ~a bit of 8.4, 8.5, ~a bit 8.6

• TopCoder PrimePairs, RookAttack solution• More matching exercises/applications during next lecture (Week 09) and T07 (Week 09)

CS3233/CS4234Steven Halim, SoC, NUS


Recommended