analysis of algorithms

65
Analysis of Algorithms Uri Zwick April 2014 Maximum matching 1

Upload: max

Post on 24-Feb-2016

58 views

Category:

Documents


0 download

DESCRIPTION

Analysis of Algorithms. Maximum matching. Uri Zwick April 2014. TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: A A A A A. Matching. A subset of edges no two of which touch each other. Maximal but not maximum matching. Matching. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Analysis of Algorithms

Analysis of Algorithms

Uri ZwickApril 2014

Maximum matching

1

Page 2: Analysis of Algorithms

2

A subset of edges no two of which touch each other

Maximal but not maximum matching

Matching

Page 3: Analysis of Algorithms

3

A subset of edges no two of which touch each other

An augmenting path

Matching

Page 4: Analysis of Algorithms

4

MatchingA subset of edges no two of which touch each other

A maximum (even perfect) matching

Page 5: Analysis of Algorithms

5

Maximum matchingThe maximum matching problem in bipartite graphs

can be easily reduced to a maximum network flow problem

The problem in non-bipartite graphs is harder. First polynomial time algorithm given by [Edmonds (1965)]

The bipartite case can be solved in O(mn1/2) time[Hopcroft-Karp (1973)] ([Dinic (1970) ] [Even-Tarjan (1975)])

An O(mn α(m,n))-time implementation of Edmonds’ algorithm was given by [Gabow (1976)]

An O(mn1/2)-time algorihm for the non-bipartite case given by [Micali-Vazirani (1980)] ([Vazirani (2014)])

and later also by [Gabow-Tarjan (1991)]

Page 6: Analysis of Algorithms

Alternating paths and cycleswith respect to a given matching M

An alternating path/cycle P is simple path such that amongany two consecutive edges, one is in M and one is not

Lemma: If P is an alternating path such that its endpoints are either unmatched, or matched by the edges touching

them in P, then MP is also a matching

Page 7: Analysis of Algorithms

Augmenting pathswith respect to a given matching M

An alternating path that starts and ends in unmatched vertices

Theorem: [Petersen (1891)] [Kőnig (1931)] [Berge (1957)] M is a maximum matching if and only if

there are no augmenting paths with respect to M.

How do we find augmenting paths?

Page 8: Analysis of Algorithms

Proof of augmenting paths theoremLemma 1: If M and M’ are matchings, then M M’ is

composed of isolated vertices, alternating paths and alternating cycles with respect to both M and M’.

Lemma 2: If M and M’ are matchings and |M’|=|M|+k, where k1, then there are at least k vertex disjoint alternating paths with

respect to M. At least one of these augmenting paths is of length at most n/k−1.

The theorem follows easily

Page 9: Analysis of Algorithms

Alternating forestsRoots are unmatched

Vertices in the forest are even or odd depending on the parity of their level

All root to leaf paths are alternating

even

odd

even

even

odd

odd Scan unmatched edges of even vertices; Scan matched edges of odd vertices;

Until an augmenting path (or a blossom) is found, or until all appropriate edges are scanned

Page 10: Analysis of Algorithms

Extending an alternating forest

Add an unmatched vertex as a root

Page 11: Analysis of Algorithms

Extending an alternating forest

Augmenting path found

An unmatched edge from an even vertex

to an unmatched vertex

Page 12: Analysis of Algorithms

Unmatched edge between two even vertices

in different trees

Augmenting path found

Extending an alternating forest

Page 13: Analysis of Algorithms

Matched edge between two odd vertices

in different trees

Augmenting path found

Extending an alternating forest

Page 14: Analysis of Algorithms

Tree extended

An unmatched edge from an even vertex to a matched vertex

not already in the forest

Extending an alternating forest

Page 15: Analysis of Algorithms

Tree extended

A matched edgefrom an odd vertex

to a vertex not in the forest

Extending an alternating forest

Page 16: Analysis of Algorithms

Ignore(for the time being)

A unmatched edgefrom an even vertex

to an odd vertex

Extending an alternating forest

Page 17: Analysis of Algorithms

An unmatched edge connecting two even vertices of the same tree

Blossom found

Extending an alternating forest

Page 18: Analysis of Algorithms

Blossom found

A matched edge connectingtwo odd vertices of the same tree

Extending an alternating forest

Page 19: Analysis of Algorithms

Scanning strategiesIn the generic algorithms for bipartite and non-bipartite graphs, the order in which edges are scanned is arbitrary

Fewer cases arise if when scanning an unmatched edge leading to a matched vertex not in the forest, we

immediately scan the matched edge and add it to the forest

We can build the trees of the forest one by onein DFS order (again fewer cases to consider)

We can build all trees simultaneously, level by level, in BFS order, to find shortest augmenting paths

Page 20: Analysis of Algorithms

CorrectnessTheorem: If there is an augmenting path, then the

scanning algorithm, with any scanning order , finds either an augmenting path or a blossom

If the scanning algorithm terminates, all vertices on the augmenting path must be labeled even or odd

If the labels alternate, then one of the endpoints is oddand an augmenting path must have been found

Otherwise, there must be an unmatched edge between two even vertices, or a matched edge between two odd vertices

augmenting path or a blossom found

e o e e

Page 21: Analysis of Algorithms

21

Vertex coverA set CV is a vertex cover if

at least one endpoint of each edge belongs to C

For every matching M and vertex cover C: |M| ≤ |C|

Page 22: Analysis of Algorithms

22

Minimum vertex coverIn general graphs,

finding minimum vertex cover is an NP-hard problem. (C is a VC iff V−C is an independent set.)

In bipartite graphs, a minimum vertex cover can be easily obtained from a maximum matching.

Theorem: [Kőnig (1931)] [Egerváry (1931)] In a bipartite graph, the size of a maximum matching

is equal to the size of a minimum vertex cover

Special case of the max-flow min-cut theorem, which in turn is a special case of LP-duality

Page 23: Analysis of Algorithms

Maximum matching = Minimum vertex cover(in bipartite graphs)

Construct a fully-grown alternating forest from all unmatched vertices of S

G=(S,T,E)

Take the T endpoints of the edges of M in the forest,and the S endpoints of the edges of M not in the forest

Page 24: Analysis of Algorithms

Maximum matching Minimum vertex cover

(in general graphs)

But, stay tuned…

Page 25: Analysis of Algorithms

Equivalent formulation of the scanning algorithm for Bipartite graphs

S T

Direct unmatched edges from S to TDirect matched edges from T to S

Page 26: Analysis of Algorithms

Equivalent formulation of the scanning algorithm for Bipartite graphs

Direct unmatched edges from S to T

S T

Direct matched edges from T to S

Alternating path Directed path

Augmenting path Directed path from an unmatched

vertex in S to an unmatched vertex in T

Residual flow network

Page 27: Analysis of Algorithms

27

The algorithm of Hopcroft-Karp (1973)for bipartite graphs

Start with some (possibly empty) matching M

In each phase, find a maximal collection of vertex disjoint shortest augmenting paths

Number of phases is at most 2n1/2

Each phase can be implemented in O(m) time

Total running time is O(mn1/2)

Page 28: Analysis of Algorithms

Forest Layered graph

Grow the graph, level by level from all unmatched vertices of S

Stop after completing the first level that contains unmatched vertices from T

Find a maximal set of vertex disjoint shortest augmenting paths

Page 29: Analysis of Algorithms

Forest Layered graph

Grow the graph, level by level from all unmatched vertices of S

Stop after completing the first level that contains unmatched vertices from T

Find a maximal set of vertex disjoint shortest augmenting paths

Page 30: Analysis of Algorithms

Forest Layered graph

Grow the graph, level by level from all unmatched vertices of S

Stop after completing the first level that contains unmatched vertices from T

Find a maximal set of vertex disjoint shortest augmenting paths

Page 31: Analysis of Algorithms

Number of phases

Lemma: If P be a shortest augmenting path w.r.t. M and let P’ be a shortest augmenting path w.r.t. MP.

Then, |P’| |P|+2|PP’|.

N= (MP)P’ |N|= |M|+2

MN = PP’ contains two disjoint augmenting path P1 and P2 w.r.t. to M

Page 32: Analysis of Algorithms

Number of phasesLemma: If P1,…,Pk be a maximal collection of shortest

augmenting path w.r.t. M. Let P’ be a shortest augmenting path w.r.t. MP1 Pk. Then, |P’| > |P1|=…=|Pk|.

Pk is an augmenting path w.r.t. M P1 Pk−1.

If P’ is disjoint from P1,…,Pk then P’ is also augmenting w.r.t. M

Assume, w.l.o.g. that P’ Pk. (Otherwise, reorder.)

By the previous lemma, |P’| |Pk|+ 2|P’ Pk | > |Pk|

By the maximality of the collection |P’| > |P1|=…=|Pk|.

Page 33: Analysis of Algorithms

Number of phasesTheorem: The algorithm of Hopcroft and Karp

finishes after at most 2n1/2 phases

By previous lemma, the augmenting paths found in each phase get longer and longer

After n1/2 phases, if algorithm is not yet done,the augmenting paths are of length at least n1/2

By Lemma 2 on slide 8, the number of edges missing in the current matching is at most n1/2

Thus, a maximum matching is found after at most n1/2 additional phases

Page 34: Analysis of Algorithms

Flowers and blossoms

A flower with respect to M is composed of a stem, which is an alternating path of even length from an unmatched vertex r, called

the root, to a vertex b, called the base, and an odd ‘alternating’ cycle B that passes through b, called the blossom

r bB

The stem may be empty,in which case b=r is unmatched

An odd ‘alternating’ cycle is called a blossom only of it is a part of a flower

Page 35: Analysis of Algorithms

The challenge of blossoms

e ee

o

oo

ee e

e

e

oo

o

o

Page 36: Analysis of Algorithms

The challenge of blossoms

e ee

e

oo

o

o

oe

e ee

e

oo

o

o

oe

oe

Page 37: Analysis of Algorithms

Shrinking (contracting) blossoms

Contract the blossom and consider it to be a (super) even vertex

Scan unmatched edges from all vertices of the blossom, including those that were originally odd

Page 38: Analysis of Algorithms

Augmenting path in contracted graph Augmenting path in original graph

B

The matched edge must enter B at b.The blossom contains an even alternating path from b to c.

Theorem: If there is an augmenting path P after shrinking a blossom B, then there is also an augmenting path before the shrinking

Bb

c

Page 39: Analysis of Algorithms

Theorem: If there is an augmenting path P before shrinking a blossom B, then there is also an augmenting path after the shrinking

If P does not pass though B, then P is also an augmenting path in the contracted graph

What do we do if P does pass through B?

Important to note that B is part of a flowerand thus has a (possibly empty) stem Q

Augmenting path in original graph Augmenting path in contracted graph

Page 40: Analysis of Algorithms

Is P an augmenting pathin the contracted graph?

Bb

P is not necessarily a simple path in the contracted graphP is not necessarily an alternating path in the contracted graph

P

Page 41: Analysis of Algorithms

Theorem: If there is an augmenting path P before shrinking a blossom B, then there is also an augmenting path after the shrinking

Bb

Easy case: B has an empty stem

Let P’ be the subpath of P that starts at an endpoint a of Pthat is not b and continues until the first encounter with B

P’ is an augmenting path from a to B in the contracted graph

P’

a

B is unmatched in the contracted graph

Rest of Pc

Augmenting path in original graph Augmenting path in contracted graph

Page 42: Analysis of Algorithms

B

b

Hard(er) case: B has a non-empty stem

If the first encounter of P with the flower is at B,and not at the stem Q, than this is again an easy sub-case

P’

a

r

Rest of Pc

Page 43: Analysis of Algorithms

B

b

Hard(er) case: B has a non-empty stem

If the first encounter of P with the flower is at B,and not at the stem Q, than this is again an easy sub-case

But, what if P, from both its sides, first encounters the flower at its stem?

P’

a

r

Rest of Pc

We can either face the problem head on, or bypass it

Page 44: Analysis of Algorithms

Hard(er) case: B has a non-empty stem

Let GB be the contracted graph

Easy solution for hard(er) case

Bbr

Q

Let Q be a stem of the flower with blossom B

Let MB= M−B be the matching in the contracted graph

Let M’= M Q

Page 45: Analysis of Algorithms

Hard(er) case: B has a non-empty stem

Let GB be the contracted graph

Bbr

Q

Let Q be a stem of the flower with blossom B

Let MB= M−B be the matching in the contracted graph

Let M’= M Q

|M’|= |M| and |MB|= |M’B| B is a blossom with an empty stem w.r.t. M’

By the easy case, there is an augmenting path w.r.t. M’B, and hence also w.r.t. MB

M’

Easy solution for hard(er) case

Page 46: Analysis of Algorithms

Hard(er) case: B has a non-empty stem

First encounters of P with the flower are at the stem Q

Bbr

P’a

Start with an endpoint a of P that is not r

P’ is the subpath of P until first encounter with the stem

If P’ meets the stem at an even vertex c,that is again an easy sub-case

c

Direct solution for hard(er) case

Q

Page 47: Analysis of Algorithms

Hard(er) case: B has a non-empty stem

First encounters of P with the flower are at the stem Q

Bbr

P’a

Start with an endpoint a of P that is not r

P’ is the subpath of P until first encounter with the stem

If P’ meets the stem at an even vertex c,that is again an easy sub-case

c

Direct solution for hard(er) case

Q

Page 48: Analysis of Algorithms

P first encounters stem at odd vertices

If P does not enter B, then P remains an augmenting path

Let P’ be the subpath of P until first encounter with the stem

Let P’’ be the subpath of P from the last time it leaves B

Bbr

P’a

c

P’’

Do we always get an augmenting path P’, (c to B), P’’ ???

Unfortunately not. (Why?)

Hard(er) case: B has a non-empty stemDirect solution for hard(er) case

Page 49: Analysis of Algorithms

A challenging example

Where is the augmenting path?Not in the picture…

Bb

P’

P’’

r

a

c

Page 50: Analysis of Algorithms

If P be an augmenting path, and let Q be a stem of Bsuch that P first meets Q as close as possible to B

P’’ be cannot intersect the path (c to B)

Bbr

P’a

c

P’’

We thus get an augmenting path P’, (c to B) , P’’

Hard(er) case: B has a non-empty stemDirect solution for hard(er) case

Page 51: Analysis of Algorithms

1

6

7

9

8

3

2

4

510

11 12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

Nested blossoms

Number of vertices k in a (nested) blossom

is always odd

Number of matched edges in the blossom

is (k−1)/2

Only vertex unmatched inside a blossom

is its base

There is an even alternating path from the base to any

other vertex in the blossom

Page 52: Analysis of Algorithms

1

3

6

7

4

9

810

2

5

11 12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

An augmenting path through nested blossoms

How do we find such a path?

Page 53: Analysis of Algorithms

56

Odd Vertex coverA set CV and a collection of subsets B1,…,Bk V

is an odd vertex cover if for every edge eeither e C≠ or e Bi for some i

The cost of the odd vertex cover is defined to be

Without loss of generality, we may assume that all the sets Bi are of odd size, hence the name,

and that C and B1,…,Bk are disjoint

Page 54: Analysis of Algorithms

57

Odd Vertex coverTheorem: In any graph, the size of the maximum matching

is equal to the cost of the minimum odd vertex cover

To prove equality we look at the alternating forest constructed using the last (failed) iteration of Edmonds’ algorithm

For every matching M and every odd vertex cover C and B1,…,Bk we have

Page 55: Analysis of Algorithms

Maximum matching = Minimum odd vertex cover

Every even node in the forestis possibly a nested blossom

The set C is composed of the odd vertices in the forest, plus an arbitrary vertex not in the forest

Each blossom becomes a set Bi. The vertices not in the forest, except one, become the last set Bk

|C| is equal to the number of edges of M not contained in the Bi’s. The cost of each Bi is equal to the number of edges of M in it.

Page 56: Analysis of Algorithms

59

Tutte-Berge Theorem[Tutte (1947)] [Berge (1958)]

Theorem: In any graph, the size of the maximum matching is equal to

Proof: Take X to be the set of odd vertices in the final alternating tree

where odd(G−X) is the number of connected components in G−X with an odd number of vertices

Page 57: Analysis of Algorithms

Using an explicit representation of the blossoms we can get an O(n3) implementation

If v is in a (nested) blossom, then find(v) returns its base. If v is not in a blossom, then find(v)=v

Efficient Implementation

To get an O(mn α(m,n)) implementation we represent theblossoms implicitly using a union-find data structure

When a new blossom is found, we perform the appropriateunion operations, making sure that the base is the

representative item returned by find operations

An edge (u,v) in the original graph corresponds to an edge (u’,v’) in the contracted graph, where u’=find(u) and v’=find(v)

Page 58: Analysis of Algorithms

mate[v] – the vertex to which v is currently matched, if there is one. Otherwise mate[v]=null.

(If v is matched, (v,mate[v]) M.)

Efficient Implementation

pred[v] – the parent of v in the alternating forest.If v is a root, or not in the forest, then pred[v]=null.

(We define pred[v] only for odd vertices.)

label[v] – the parity (even or odd) of v in the alternating forest.If v is not in the forest, then label[v]=null.

pred[v] and label[v] are not changed when a blossom is formed

bridge[v] – the bridge (see below) that formed the first blossom containing the odd vertex v

Page 59: Analysis of Algorithms

Efficient Implementation

Q – a list of vertices to be scanned, i.e., even forest vertices and vertices contained in blossoms

Initially, either a single unmatched vertex, or all unmatched vertices are placed in Q

By letting Q be a queue or a stack, we can implement BFS or DFS search strategies

Page 60: Analysis of Algorithms

Shrinking a blossom

v

w

v0

v1

b=v2=w1

w0

When (v,w) is examined:

v0 = find(v) w0 = find(w)

As v0 and w0 are both even,and are in the same tree,

a blossom is found

Find the baseof the new blossom

v1 = find( pred[mate[v0]] )v2 = find( pred[mate[v1]] )

Page 61: Analysis of Algorithms

Shrinking a blossom

v

w

v0

v1

b=v2=w1

w0

Climb up from v0 and w0, alternatingly.First vertex already visited is b.

For every i do:

union(b,mate[vi])bridge[mate[vi]] (v,w)

insert(Q,mate[vi])union(b,vi)

For every j do:

union(b,mate[wj])bridge[mate[wj]] (w,v)

insert(Q,mate[wj])union(b, wj)

Page 62: Analysis of Algorithms

Shrinking a blossom

v

w

v0

v1

b=v2=w1

w0

Time proportional to size of new blossom, and does not depend on

sizes of the sub-blossoms

Page 63: Analysis of Algorithms

Find-pathfind-path(s,t) finds an even alternating path from s to t,

starting with a matched edge, provided that s’,t’ are even ands’ was a descendant of t in the alternating forest at some stage

If (v,w) is scanned, where w is unmatched vertex, and r is the root of the tree containing v, then

(w,v) + find-path(v,r)is an augmenting path

If (v,w) is scanned, where v,w are even vertices in different trees, and r and r’ are their roots, then

reverse(find-path(v,r) + (v,w) + find-path(w,r’)is an augmenting path

Page 64: Analysis of Algorithms

Find-pathfind-path(s,t) finds an even alternating path from s to t,

starting with a matched edge, provided that s’,t’ are even ands’ was a descendant of t in the alternating forest at some stage

If s is even, we go two steps up the tree using the edges (s,mate[s]) and (mate[s],pred[mate[s]]). We then use

find-path(pred[mate[s]],t)

Page 65: Analysis of Algorithms

Find-path

+ denotes catenation of lists How do we implement reverse?