28
1 Matching Algorithms for Decision Support Marjan van den Akker, Includes slides from: Hans Bodlaender Johan van Rooij

Matching - Universiteit Utrecht · Classroom assignment Opponents selection for sport competitions. 7 ADS: Matching Application: matching moving objects Moving objects, seen at two

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Matching - Universiteit Utrecht · Classroom assignment Opponents selection for sport competitions. 7 ADS: Matching Application: matching moving objects Moving objects, seen at two

1

Matching

Algorithms for Decision Support

Marjan van den Akker,

Includes slides from: Hans Bodlaender Johan van Rooij

Page 2: Matching - Universiteit Utrecht · Classroom assignment Opponents selection for sport competitions. 7 ADS: Matching Application: matching moving objects Moving objects, seen at two

2

ADS: Matching

This lecture

� Matching: problem statement and applications

� Bipartite matching

� Perfect matchings in regular bipartite graphs

� Schrijvers algorithm

� Edge coloring and classroom scheduling application

Page 3: Matching - Universiteit Utrecht · Classroom assignment Opponents selection for sport competitions. 7 ADS: Matching Application: matching moving objects Moving objects, seen at two

3

ADS: Matching

Matching

� Given a graph (V,E)

� Matching: Set of edges � ⊆ � such that no vertex is endpoint of more than one edge.

� Maximal matching� No � ∉ � with � ∪ � also a matching

� Maximum matching� Matching with � as large as possible

� Perfect matching� � = �/2: each vertex endpoint of edge in �.

Page 4: Matching - Universiteit Utrecht · Classroom assignment Opponents selection for sport competitions. 7 ADS: Matching Application: matching moving objects Moving objects, seen at two

4

ADS: Matching

Cost versions

� Each edge has cost; look for perfect matching with minimum cost

� Also polynomial time solvable, but harder

Page 5: Matching - Universiteit Utrecht · Classroom assignment Opponents selection for sport competitions. 7 ADS: Matching Application: matching moving objects Moving objects, seen at two

5

ADS: Matching

Problems

� Given graph �, find

� Maximal matching: easy (greedy algorithm)

� Maximum matching• Polynomial time; general case not easy.

• Important special case: bipartite graphs

� Perfect matching• Special case of maximum matching

• A theorem for regular bipartite graphs and Schrijver’salgorithm

Page 6: Matching - Universiteit Utrecht · Classroom assignment Opponents selection for sport competitions. 7 ADS: Matching Application: matching moving objects Moving objects, seen at two

6

ADS: Matching

Applications

� Personnel assignment

� Tasks and competences

� Classroom assignment

� Opponents selection for sport competitions

Page 7: Matching - Universiteit Utrecht · Classroom assignment Opponents selection for sport competitions. 7 ADS: Matching Application: matching moving objects Moving objects, seen at two

7 ADS: Matching

Application: matching moving objects

� Moving objects, seen at two successive time moments

� Which object came from where?

Page 8: Matching - Universiteit Utrecht · Classroom assignment Opponents selection for sport competitions. 7 ADS: Matching Application: matching moving objects Moving objects, seen at two

8

BIPARTITE MATCHING

ADS

Page 9: Matching - Universiteit Utrecht · Classroom assignment Opponents selection for sport competitions. 7 ADS: Matching Application: matching moving objects Moving objects, seen at two

9

ADS: Matching

Bipartite graphs: using maximum flow algorithms

� Finding maximum matching in bipartite graphs:

� Model as flow problem, and solve it: make sure algorithm finds integral flow.

� Max flow algorithm: Ford-Fulkerson (algorithms course, wikipedia)

s t

Capacities 1

Page 10: Matching - Universiteit Utrecht · Classroom assignment Opponents selection for sport competitions. 7 ADS: Matching Application: matching moving objects Moving objects, seen at two

10

ADS: Matching

Technique works for variants too

� Minimum cost perfect matching in bipartite graphs

� Model as min-cost flow problem

� b-matchings in bipartite graphs

� Function �: � → ℕ.

� Look for set of edges �, with each � endpoint of exactly �(�)edges in �.

� b(v) becomes the capacity of the edge from s or to t.

Page 11: Matching - Universiteit Utrecht · Classroom assignment Opponents selection for sport competitions. 7 ADS: Matching Application: matching moving objects Moving objects, seen at two

11

ADS: Matching

Steps by Ford-Fulkerson on the bipartite graph

� M-augmenting path

unmatchedbecomes

in a flow augmentation step

s

t

s t

Page 12: Matching - Universiteit Utrecht · Classroom assignment Opponents selection for sport competitions. 7 ADS: Matching Application: matching moving objects Moving objects, seen at two

12

MATCHING IN REGULAR BIPARTITE GRAPHS

ADS

Page 13: Matching - Universiteit Utrecht · Classroom assignment Opponents selection for sport competitions. 7 ADS: Matching Application: matching moving objects Moving objects, seen at two

13

ADS: Matching

Regular bipartite graphs

� Regular = all vertices have the same degree

� Say d is the degree of all vertices

� Theorem (proof follows): each regular bipartite graph has a perfect matching

� Schrijver’s algorithm: finds such a perfect matching quickly

� Has a nice application for scheduling classrooms and lessons

Page 14: Matching - Universiteit Utrecht · Classroom assignment Opponents selection for sport competitions. 7 ADS: Matching Application: matching moving objects Moving objects, seen at two

14

ADS: Matching

A simple non-constructive proof of a well known theorem

Theorem. Each regular bipartite graph has a perfect matching.

Proof:

� Construct flow model of G. Set flow of edges from s, or to t to 1, and other edges flow to 1/d.

� This flow has value n/2, which is optimal.

� Ford-Fulkerson will find integral flow of value n/2; which corresponds to perfect matching.

Page 15: Matching - Universiteit Utrecht · Classroom assignment Opponents selection for sport competitions. 7 ADS: Matching Application: matching moving objects Moving objects, seen at two

15

ADS: Matching

Perfect matchings in regular bipartite graphs: Schrijver’s algorithm

� Each edge e gets a weight w(e).

� Initially set all weights equal to 1.

� Let Gw denote the graph formed by the edges of positive weight.

� While Gw has a circuit

� Take such a circuit C (which must have even length).

� Split C into two matchings M and N, with w(M) ≥ w(N).

� Increase the weight of each edge in M by 1.

� Decrease the weight of each edge in N by 1.

Page 16: Matching - Universiteit Utrecht · Classroom assignment Opponents selection for sport competitions. 7 ADS: Matching Application: matching moving objects Moving objects, seen at two

16

ADS: Matching

On Schrijver’s algorithm

� Let each vertex have degree d.

� Invariant: the sum of the weights of the incident edges of a vertex is d.

� Before termination:� Suppose there is an edge (u,v) with weight less than d.

� Start a circuit at u starting with edge (u,v),

� By the invariant there another edge (v,w) with positive weight less than d: add (v,w) etc…..

� ….finally you arrive at a vertex you have visited before: circuit found.

� So at termination: no circuit in Gw, and by the invariant, it follows Gw must be a perfect matching.

Page 17: Matching - Universiteit Utrecht · Classroom assignment Opponents selection for sport competitions. 7 ADS: Matching Application: matching moving objects Moving objects, seen at two

17

ADS: Matching

Time to find circuits

� Finding circuits:� Keep a path P with edges of weight between 1 and d – 1

� Let v be last vertex on P.

� v must have edge not on P with weight between 1 andd – 1, say {v,x}.

� If x on P: we have a circuit.• Apply step on circuit.

• Remove circuit from P, and work with smaller path.

� Otherwise, add {v,x} to P, and repeat

� O(|C|) per circuit

Page 18: Matching - Universiteit Utrecht · Classroom assignment Opponents selection for sport competitions. 7 ADS: Matching Application: matching moving objects Moving objects, seen at two

18

ADS: Matching

Time analysis

� Look at the sum over all edges of � � �.

� Each improvement over a cycle � increases this sum by at least |�| (next slide).

� Initially �, at termination �

��2.

� Time to gain |C| is O(|C|): O(1) per unit gain.

� So, total time �(��2) = �(��).

Page 19: Matching - Universiteit Utrecht · Classroom assignment Opponents selection for sport competitions. 7 ADS: Matching Application: matching moving objects Moving objects, seen at two

19 ADS: Matching

( ) ( )∑∑∈∈

=−++NeMe

ewew 22 1)(1)(

( ) ( )∑ ∑∑∑∈ ∈∈∈

≥∪+−++Ne NeMeMe

NMewewewew ||)(2)(2)()( 22

( ) ( )∑∑∈∈

∪++NeMe

NMewew ||)()( 22

Sum of squares increases by |�|

Page 20: Matching - Universiteit Utrecht · Classroom assignment Opponents selection for sport competitions. 7 ADS: Matching Application: matching moving objects Moving objects, seen at two

20

EDGE COLORING AND CLASSROOM SCHEDULES

An application of matching in regular bipartite graphs:

Page 21: Matching - Universiteit Utrecht · Classroom assignment Opponents selection for sport competitions. 7 ADS: Matching Application: matching moving objects Moving objects, seen at two

21

ADS: Matching

Edge coloring and classroom schedules

� Teachers, classes

� A teacher has to teach to a number of classes but:� No teacher more than

one group at a time

� No class more than one lesson at the time

� How many hours needed???

Jansen Petersen Klaassen

1 X

2 X

3 X

Page 22: Matching - Universiteit Utrecht · Classroom assignment Opponents selection for sport competitions. 7 ADS: Matching Application: matching moving objects Moving objects, seen at two

22 ADS: Matching

Jansen Petersen Klaassen

1 X Time:11-12

Time12-13

2 Time11-12

Time12-13

X

3 Time12-13

X Time11-12

Page 23: Matching - Universiteit Utrecht · Classroom assignment Opponents selection for sport competitions. 7 ADS: Matching Application: matching moving objects Moving objects, seen at two

23

ADS: Matching

Edge coloring model

� Take bipartite graph with vertices for teachers and for classes

� Look for a coloring of the edges such that no vertex has two incident edges with the same color.

� The minimum number of needed colors is the number of required hours

� What is the minimum number of colors needed?

� Lower bound: maximum degree.

� We can attain the lower bound with help of matchings!!

Page 24: Matching - Universiteit Utrecht · Classroom assignment Opponents selection for sport competitions. 7 ADS: Matching Application: matching moving objects Moving objects, seen at two

24

ADS: Matching

A theorem

� Let G be a bipartite graph with maximum degree d. Then G has an edge coloring with d colors.

� Step 1: Make G regular by adding vertices and edges.

� Step 2: Repeatedly find a matching and remove it.

Page 25: Matching - Universiteit Utrecht · Classroom assignment Opponents selection for sport competitions. 7 ADS: Matching Application: matching moving objects Moving objects, seen at two

25

ADS: Matching

Making G regular

� Suppose G is bipartite with vertex sets V1 and V2 with edges only between V1 and V2.

� Make |V1| =|V2| � If |V1| > |V2| then add |V1| - |V2| isolated dummy vertices to V2 .

� If |V2| > |V1| then add |V2| - |V1| isolated dummy vertices to V1 .

� While not every vertex in V1 ∪ V2 has degree d:

� Find a vertex v in V1 of degree less than d

� Find a vertex w in V2 of degree less than d

� Add the edge {v,w} to the graph.

Mustexist

Page 26: Matching - Universiteit Utrecht · Classroom assignment Opponents selection for sport competitions. 7 ADS: Matching Application: matching moving objects Moving objects, seen at two

26

ADS: Matching

Edge coloring a regular bipartite graph

� Say G’ is bipartite and regular of degree d.

� For i = 1 to d do

� Find a perfect matching M in G’.

� Give all edges in M color i.

� Remove all edges in M from G’. (Note that G’ stays regular!)

Page 27: Matching - Universiteit Utrecht · Classroom assignment Opponents selection for sport competitions. 7 ADS: Matching Application: matching moving objects Moving objects, seen at two

27

ADS: Matching

Final step

� Take the edge coloring c of G’. Color G in the same way: G is subgraph of G.

� Time: carrying out d times a perfect matching algorithm in a regular graph:

� O(nd3) if we use Schrijver’s algorithm.

� Can be done faster by other algorithms.

Page 28: Matching - Universiteit Utrecht · Classroom assignment Opponents selection for sport competitions. 7 ADS: Matching Application: matching moving objects Moving objects, seen at two

28

ADS: Matching

Conclusion

� Many applications of matching! Often bipartite…

� Algorithms for finding matchings:� Bipartite: flow models

Bipartite, regular: Schrijver

� General: with M-augmenting paths and blossom-shrinking, see Algorithms and Networks

� Minimum cost matching can also be solved in polynomial time:� Min cost matching on bipartite graphs is solved using

min cost flow