Paths, Trees, and Flowers by Jack Edmonds Xiang Gao ETH Zurich - - PowerPoint PPT Presentation

paths trees and flowers by jack edmonds
SMART_READER_LITE
LIVE PREVIEW

Paths, Trees, and Flowers by Jack Edmonds Xiang Gao ETH Zurich - - PowerPoint PPT Presentation

Paths, Trees, and Flowers by Jack Edmonds Xiang Gao ETH Zurich Distributed Computing Group www.disco.ethz.ch Introduction and background Edmonds maximum matching algorithm Matching-duality theorem Matching Matching in a graph is a


slide-1
SLIDE 1

Paths, Trees, and Flowers by Jack Edmonds

Xiang Gao

ETH Zurich – Distributed Computing Group – www.disco.ethz.ch

slide-2
SLIDE 2

Introduction and background Edmonds maximum matching algorithm Matching-duality theorem

slide-3
SLIDE 3

Matching

Matching in a graph is a set of edges, no two of which meet at a common vertex. Maximum matching is a matching of maximum cardinality.

slide-4
SLIDE 4

Matching

Matching in a graph is a set of edges, no two of which meet at a common vertex. Maximum matching is a matching of maximum cardinality.

slide-5
SLIDE 5

Question

Why do we want to study matching problems?

slide-6
SLIDE 6

A lot of applications

Job recruitment process.

slide-7
SLIDE 7

A lot of applications

Then someone is not happy.

slide-8
SLIDE 8

A lot of applications

Everyone is happy now.

slide-9
SLIDE 9

Question

You don’t want to do it manually. So, how can you find the maximum matching?

slide-10
SLIDE 10

First try: greedy method

Enumerate every edge, if both end points are not covered by the matching, add the edge to the matching. Not always work. May reach local optimum (maximal matching).

slide-11
SLIDE 11

First try: greedy method

How to improve the matching?

slide-12
SLIDE 12

Augment the matching

If we flip the edges...

slide-13
SLIDE 13

Augment the matching

Seems we have found a way to improve the matching! Then we want to generalize the idea.

slide-14
SLIDE 14

Exposed vertex

Exposed(free) vertex is a vertex that is not incident with any edge in the matching M M exposed vertex

slide-15
SLIDE 15

Alternating path

Alternating path is a path whose edges are alternately in M and M M exposed vertex alternating path

slide-16
SLIDE 16

Augmenting path

Augmenting path is a simple alternating path between exposed ver- tices M exposed vertex augmenting path

slide-17
SLIDE 17

Augmenting path

We can find a larger matching in the augmenting path!

M exposed vertex This operation is called symmetric difference ⊕.

slide-18
SLIDE 18

Symmetric difference

Symmetric difference of two sets D and E is defined as D ⊕ E = (D − E) ∪ (E − D) D E D ⊕ E The result of the symmetric difference between a matching and an augmenting path on the graph is a larger matching.

slide-19
SLIDE 19

Intuition

Then our algorithm can try to find aug- menting paths to improve the known mathcing.

slide-20
SLIDE 20

Question

Can we stop when there is no aug- menting paths? What is the optimality condition for the algorithm to terminate?

slide-21
SLIDE 21

Answer

Berge theorem says if there is no aug- menting path, we can stop!

slide-22
SLIDE 22

Berge’s theorem

Theorem - Berge(1957)

M is not a maximum matching if and only if there exists an augmenting path with respect to M

◮ Proof:

We have already seen that if there is an augmenting path we can find a larger matching. So we only need to prove if the matching is not maximum, there must exist an augmenting path.

slide-23
SLIDE 23

Berge’s theorem

If we have a larger matching, how to find an augmenting path?

slide-24
SLIDE 24

Berge’s theorem

Recall that we use ⊕ to find a larger matching. Now we reverse the step. If we apply ⊕ between matching M1 and a larger matching M2, what do we get?

slide-25
SLIDE 25

Berge’s theorem

The results are paths and circuits which are alternating for M1 and M2. M1 M2 M1 ⊕ M2 We have found alternating paths, which is very close to find aug- menting paths!

slide-26
SLIDE 26

Berge’s theorem

Since the matching M2 is larger, there must be a component has one more edge in M2 than in M1. This component is an augmenting path. Why?

slide-27
SLIDE 27

Berge’s theorem

Since the matching M2 is larger, there must be a component has one more edge in M2 than in M1. This component is an augmenting path. Why?

slide-28
SLIDE 28

Berge’s theorem

Since the matching M2 is larger, there must be a component has one more edge in M2 than in M1. This component is an augmenting path. Why?

slide-29
SLIDE 29

Berge’s theorem

Because there are only four kinds of alternating paths. The only case when edges not in the matching are more than edges in the matching is an augmenting path!

slide-30
SLIDE 30

Algorithm

Then we have a general algorithm, which keeps finding augmenting paths and improving the matching until there is no more augmenting path. Maximum-Matching(G) 1 M = ∅ 2 repeat 3 if there is an augmenting path P with respect to M 4 M = M ⊕ P 5 until there isn’t an augmenting path with respect to M 6 return M

slide-31
SLIDE 31

Algorithm

How can we perform the search for an augmenting path effi- ciently? By brute force, the search space could be exponential. And... what is an efficient algorithm?

slide-32
SLIDE 32

Digression

Edmonds defined that an efficient algorithm should have poly- nomial running time in this paper, which is earlier than Stephen Cook defined P and NP.

slide-33
SLIDE 33

Previous work: bipartite matching

A bipartite graph is a graph whose vertices can be divided into two disjoint sets U and V such that every edge connects a vertex in U to one in V . Equivalently, a bipartite graph is a graph that does not contain any

  • dd-length cycles!

There are polynomial time algorithms for maximum matching on bipartite graphs! 1 2 3 4 A B C

slide-34
SLIDE 34

Find an augmenting path using BFS

We can use some greedy heuristic to find an initial matching. Then we start from an exposed vertex to grow an alternating tree, since the augmenting path is an alternating path. r even nodes

  • dd nodes
slide-35
SLIDE 35

Find an augmenting path using BFS

Case 1, y is an exposed vertex not contained in T. We found an augmenting path! r x y even nodes

  • dd nodes
slide-36
SLIDE 36

Find an augmenting path using BFS

Case 2, y is matched vertex not in T, grow the tree. r x y even nodes

  • dd nodes
slide-37
SLIDE 37

Find an augmenting path using BFS

Case 3, y is already contained in T as an odd vertex. Ignore it, no worry! Why? r y x even nodes

  • dd nodes
slide-38
SLIDE 38

Find an augmenting path using BFS

Case 4, y is already contained in T as an even vertex. Can’t ignore y, but it doesn’t happen on a bipartite graph (no odd cycle)! r y x even nodes

  • dd nodes
slide-39
SLIDE 39

Summary

The algorithm grows an alternating tree from an exposed vertex, if we find an exposed vertex, we can enlarge the matching and start from another exposed vertex growing the tree again. After growing trees from all the exposed vertices, the algorithm terminates. Time complexity O(nm), n is the number of vertices, m is the num- ber of edges.

slide-40
SLIDE 40

Summary

The algorithm grows an alternating tree from an exposed vertex, if we find an exposed vertex, we can enlarge the matching and start from another exposed vertex growing the tree again. After growing trees from all the exposed vertices, the algorithm terminates. Time complexity O(nm), n is the number of vertices, m is the num- ber of edges.

slide-41
SLIDE 41

Summary

The algorithm grows an alternating tree from an exposed vertex, if we find an exposed vertex, we can enlarge the matching and start from another exposed vertex growing the tree again. After growing trees from all the exposed vertices, the algorithm terminates. Time complexity O(nm), n is the number of vertices, m is the num- ber of edges.

slide-42
SLIDE 42

Question

Why will odd cycles be a trouble?

slide-43
SLIDE 43

Examples of BFS failure on non-bipartite graphs

◮ Initial graph

1 2 3 4 5 6

◮ Start from vertex 1, we add vertex 2 and 3.

1 2 3 even nodes

  • dd nodes
slide-44
SLIDE 44

Examples of BFS failure on non-bipartite graphs

◮ Initial graph

1 2 3 4 5 6

◮ Two vertices 4 and 5 could be visited. If we first visit 4...

1 2 3 4 5 even nodes

  • dd nodes
slide-45
SLIDE 45

Examples of BFS failure on non-bipartite graphs

◮ Initial graph

1 2 3 4 5 6

◮ From 5, we find 3 which is contained in T, if we ignore it, we

will stop here.

1 2 3 4 5 even nodes

  • dd nodes
slide-46
SLIDE 46

Examples of BFS failure on non-bipartite graphs

◮ Initial graph

1 2 3 4 5 6

◮ But actually there is an augmenting path!

1 2 3 4 5 6

slide-47
SLIDE 47

Examples of BFS failure on non-bipartite graphs

◮ Initial graph

1 2 3 4 5 6

◮ The problem is that 3 already been visited in even layer, and

5 is also in even layer. But the tree must alternate between different layers.

1 2 3 4 5 even nodes

  • dd nodes
slide-48
SLIDE 48

Examples of BFS failure on non-bipartite graphs

◮ Initial graph

1 2 3 4 5 6

◮ First idea: allow vertices to be visited both even and odd layers.

1 2 3 4 5 5 4 6 even nodes

  • dd nodes
slide-49
SLIDE 49

Examples of BFS failure on non-bipartite graphs

◮ Initial graph

1 2 3 4 5 6

◮ But the augmenting path we find may not be a simple path.

1 2 2 3 3 4 4 5 5 6

slide-50
SLIDE 50

Examples of BFS failure on non-bipartite graphs

◮ Result graph

1 2 3 4 5 6

◮ If we flip the edges...

1 2 2 3 3 4 4 5 5 6

slide-51
SLIDE 51

Review

The frontier of the BFS consist of only even nodes, from where we extend the search tree. r even nodes

  • dd nodes
slide-52
SLIDE 52

Review

For any node in the tree, there is a unique path from root to the node. For odd node, the path length is odd. For even node, the path lenght is even. r even nodes

  • dd nodes
slide-53
SLIDE 53

Review

If there is an edge connecting two even nodes (equivalently there is an odd cycle), there are now two paths from root to every node in the odd cycle, one is odd length, the other is even length. Then the previous odd nodes can also become even nodes, from which we can continue growing the tree! r r

slide-54
SLIDE 54

Edmonds’ idea

An alternating path with an exposed vertex at one end and a match- ing edge at the other end is called stem. The odd cycle is called blossom. The alternating path from root plus the blossom is called flower.

slide-55
SLIDE 55

Edmonds’ idea

An alternating path with an exposed vertex at one end and a match- ing edge at the other end is called stem. The odd cycle is called blossom. The alternating path from root plus the blossom is called flower.

slide-56
SLIDE 56

Edmonds’ idea

An alternating path with an exposed vertex at one end and a match- ing edge at the other end is called stem. The odd cycle is called blossom. The alternating path from root plus the blossom is called flower.

slide-57
SLIDE 57

Edmonds’ idea

Since all the nodes in the odd cycle can become even nodes, we shrink all the nodes to an even pseudo vertex, all edges connected to the nodes in the odd cycle now connect to the pseudo vertex.

slide-58
SLIDE 58

Edmonds’ idea

Since all the nodes in the odd cycle can become even nodes, we shrink all the nodes to an even pseudo vertex, all edges connected to the nodes in the odd cycle now connect to the pseudo vertex.

slide-59
SLIDE 59

Edmonds’ idea

◮ Whenever a blossom B is found, we shrink it to a pseudo vertex,

and recursively run the algorithm to find maximum matching

  • f the new graph G/B.

◮ Edmonds proved that the maximum matching of G is equal to

the maximum matching of G/B plus the maximum matching

  • f B.

◮ Since there are at most n exposed vertices, we need O(n) aug-

mentations.

◮ Each augmentation will shrink at most O(n) blossoms. ◮ Constructing the alternating tree takes at most n2 if we use

adjacency matrix.

◮ ∴ O(n4).

slide-60
SLIDE 60

Edmonds’ idea

◮ Whenever a blossom B is found, we shrink it to a pseudo vertex,

and recursively run the algorithm to find maximum matching

  • f the new graph G/B.

◮ Edmonds proved that the maximum matching of G is equal to

the maximum matching of G/B plus the maximum matching

  • f B.

◮ Since there are at most n exposed vertices, we need O(n) aug-

mentations.

◮ Each augmentation will shrink at most O(n) blossoms. ◮ Constructing the alternating tree takes at most n2 if we use

adjacency matrix.

◮ ∴ O(n4).

slide-61
SLIDE 61

Edmonds’ idea

◮ Whenever a blossom B is found, we shrink it to a pseudo vertex,

and recursively run the algorithm to find maximum matching

  • f the new graph G/B.

◮ Edmonds proved that the maximum matching of G is equal to

the maximum matching of G/B plus the maximum matching

  • f B.

◮ Since there are at most n exposed vertices, we need O(n) aug-

mentations.

◮ Each augmentation will shrink at most O(n) blossoms. ◮ Constructing the alternating tree takes at most n2 if we use

adjacency matrix.

◮ ∴ O(n4).

slide-62
SLIDE 62

Edmonds’ idea

◮ Whenever a blossom B is found, we shrink it to a pseudo vertex,

and recursively run the algorithm to find maximum matching

  • f the new graph G/B.

◮ Edmonds proved that the maximum matching of G is equal to

the maximum matching of G/B plus the maximum matching

  • f B.

◮ Since there are at most n exposed vertices, we need O(n) aug-

mentations.

◮ Each augmentation will shrink at most O(n) blossoms. ◮ Constructing the alternating tree takes at most n2 if we use

adjacency matrix.

◮ ∴ O(n4).

slide-63
SLIDE 63

Edmonds’ idea

◮ Whenever a blossom B is found, we shrink it to a pseudo vertex,

and recursively run the algorithm to find maximum matching

  • f the new graph G/B.

◮ Edmonds proved that the maximum matching of G is equal to

the maximum matching of G/B plus the maximum matching

  • f B.

◮ Since there are at most n exposed vertices, we need O(n) aug-

mentations.

◮ Each augmentation will shrink at most O(n) blossoms. ◮ Constructing the alternating tree takes at most n2 if we use

adjacency matrix.

◮ ∴ O(n4).

slide-64
SLIDE 64

Edmonds’ idea

◮ Whenever a blossom B is found, we shrink it to a pseudo vertex,

and recursively run the algorithm to find maximum matching

  • f the new graph G/B.

◮ Edmonds proved that the maximum matching of G is equal to

the maximum matching of G/B plus the maximum matching

  • f B.

◮ Since there are at most n exposed vertices, we need O(n) aug-

mentations.

◮ Each augmentation will shrink at most O(n) blossoms. ◮ Constructing the alternating tree takes at most n2 if we use

adjacency matrix.

◮ ∴ O(n4).

slide-65
SLIDE 65

Other implementations

◮ Actually we do not need to contract the blossom. We can also

put all the odd nodes in the blossom to the queue of the BFS. But mainting the alternating path to every vertex still needs some trick (We need to change the odd path to the odd node with the other even length path).

◮ With some careful implementaion, Gabow[73] reduced the time

complexity to O(n3).

◮ An O(n2.5) time complexity can be achieved by finding many

augmenting paths at one time, see Micali and Vazirani[80].

◮ Currently the best known algorithm gives O(n2.376) complexity,

based on fast matrix multiplication.

slide-66
SLIDE 66

Other implementations

◮ Actually we do not need to contract the blossom. We can also

put all the odd nodes in the blossom to the queue of the BFS. But mainting the alternating path to every vertex still needs some trick (We need to change the odd path to the odd node with the other even length path).

◮ With some careful implementaion, Gabow[73] reduced the time

complexity to O(n3).

◮ An O(n2.5) time complexity can be achieved by finding many

augmenting paths at one time, see Micali and Vazirani[80].

◮ Currently the best known algorithm gives O(n2.376) complexity,

based on fast matrix multiplication.

slide-67
SLIDE 67

Other implementations

◮ Actually we do not need to contract the blossom. We can also

put all the odd nodes in the blossom to the queue of the BFS. But mainting the alternating path to every vertex still needs some trick (We need to change the odd path to the odd node with the other even length path).

◮ With some careful implementaion, Gabow[73] reduced the time

complexity to O(n3).

◮ An O(n2.5) time complexity can be achieved by finding many

augmenting paths at one time, see Micali and Vazirani[80].

◮ Currently the best known algorithm gives O(n2.376) complexity,

based on fast matrix multiplication.

slide-68
SLIDE 68

Other implementations

◮ Actually we do not need to contract the blossom. We can also

put all the odd nodes in the blossom to the queue of the BFS. But mainting the alternating path to every vertex still needs some trick (We need to change the odd path to the odd node with the other even length path).

◮ With some careful implementaion, Gabow[73] reduced the time

complexity to O(n3).

◮ An O(n2.5) time complexity can be achieved by finding many

augmenting paths at one time, see Micali and Vazirani[80].

◮ Currently the best known algorithm gives O(n2.376) complexity,

based on fast matrix multiplication.

slide-69
SLIDE 69

Examples

A graph G = (V , E) and a matching M. 1 2 3 4 5 6 7 8 9 10

slide-70
SLIDE 70

Examples

A graph G = (V , E) and a matching M. 1 2 3 4 5 6 7 8 9 10 Start a BFS from 1. 1 even

slide-71
SLIDE 71

Examples

A graph G = (V , E) and a matching M. 1 2 3 4 5 6 7 8 9 10 Grow the tree. 1 even 2

  • dd

3 even

slide-72
SLIDE 72

Examples

A graph G = (V , E) and a matching M. 1 2 3 4 5 6 7 8 9 10 Grow the tree.. 1 even 2

  • dd

3 even 4

  • dd

5 even

slide-73
SLIDE 73

Examples

A graph G = (V , E) and a matching M. 1 2 3 4 5 6 7 8 9 10 Grow the tree.... 1 even 2

  • dd

3 even 4

  • dd

5 even 10

  • dd

9 even

slide-74
SLIDE 74

Examples

A graph G = (V , E) and a matching M. 1 2 3 4 5 6 7 8 9 10 Encounter an edge connecting two even vertices. Find an odd cycle! 1 even 2

  • dd

3 even 4

  • dd

5 even 10

  • dd

9 even

slide-75
SLIDE 75

Examples

A graph G = (V , E) and a matching M. 1 2 3 4 (5, 10, 9) 6 7 8 Shrink (5,10,9) into a single pseudo vertex. 1 even 2

  • dd

3 even 4

  • dd

even (5, 10, 9)

slide-76
SLIDE 76

Examples

A graph G = (V , E) and a matching M. 1 2 3 4 (5, 10, 9) 6 7 8 Continue the search, and encounter the odd cycle (5,10,9)-6-8. 1 even 2

  • dd

3 even 4

  • dd

even 5, 10, 9 6

  • dd

8 even

slide-77
SLIDE 77

Examples

A graph G = (V , E) and a matching M. 1 2 3 4 (5, 10, 9), 6, 8 7 Shrinke the odd cycle and encounter an exposed vertex 7. 1 even 2

  • dd

3 even 4

  • dd

even (5, 10, 9), 6, 8 7

slide-78
SLIDE 78

Examples

A graph G = (V , E) and a matching M. 1 2 3 4 (5, 10, 9), 6, 8 7 Find an augmenting path! Still need to find the augmenting path in the original graph... 1 even 2

  • dd

3 even 4

  • dd

even (5, 10, 9), 6, 8 7

slide-79
SLIDE 79

Examples

A graph G = (V , E) and a matching M. 1 2 3 4 (5, 10, 9) 6 7 8 Expand the pseudo vertex to recover the augmenting path. Since there are two ways to bypass the odd cycle, one is odd length, the other is even length, we can always choose one to ensure the path is still an augmenting path. 1 even 2

  • dd

3 even 4

  • dd

even 5, 10, 9 6

  • dd

7 8 even

slide-80
SLIDE 80

Examples

A graph G = (V , E) and a matching M. 1 2 3 4 5 6 7 8 9 10 Expand the pseudo vertex to recover the augmenting path. 1 2 3 4 5 9 10 6 8 7

slide-81
SLIDE 81

Examples

Applying M = M ⊕ P yeilds following enlarged matching in the

  • riginal graph.

1 2 3 4 5 6 7 8 9 10

slide-82
SLIDE 82

Summary

◮ An efficient algorithm has been found. ◮ The essence is to extend the search tree with odd nodes in the

  • blossom. The other parts are the same with the algorithm on

bipartite graph.

slide-83
SLIDE 83

Summary

◮ An efficient algorithm has been found. ◮ The essence is to extend the search tree with odd nodes in the

  • blossom. The other parts are the same with the algorithm on

bipartite graph.

slide-84
SLIDE 84

Matching-duality theorem

The maximum matching problem can also be solved as linear programming problem. But, what is linear programming?

slide-85
SLIDE 85

Linear programming

Standard linear programming model

maximize cTx subject to Ax ≤ 0 x ≥ 0

slide-86
SLIDE 86

Maximum matching as linear programming

1 2 3 4

Maximum matching

maximize x13 + x23 + x24 subject to x13 ≤ 1 x23 + x24 ≤ 1 x13 + x23 ≤ 1 x24 ≤ 1

slide-87
SLIDE 87

Matching-duality theorem

Linear programming duality theorem

If x ≥ 0, Ax ≤ c y ≥ 0, ATy ≥ b for given real vectors b and c and real matrix A, then for real vectors x and y, maxx(b, x) = miny(c, y) if such extrema exist. Generally, if we can solve one, we can solve the other.

slide-88
SLIDE 88

Matching-duality theorem

And the dual problem of max match- ing is...?

slide-89
SLIDE 89

Matching-duality theorem on bipartite graph

1 2 3 4

Maximum matching

maximize x13 + x23 + x24 subject to x13 ≤ 1 x23 + x24 ≤ 1 x13 + x23 ≤ 1 x24 ≤ 1

Minimum vertex cover

minimize x1 + x2 + x3 + x4 subject to x1+ x3 ≥ 1 x2+ x3 ≥ 1 x2+ x4 ≥ 1

slide-90
SLIDE 90

Matching-duality theorem on bipartite graph

  • nig theorem

In a bipartite graph, the maximum size of a matching is equal to the minimum size of a vertex cover. 1 2 3 4 1 2 3 4 1 2 3 4

slide-91
SLIDE 91

Matching-duality theorem

But it does not hold on the general graph... 1 2 3 4 1 2 3 4 1 2 3 4

slide-92
SLIDE 92

Matching-duality theorem

Can we find a minimization problem whose optimal value is equal to the maximum matching on the general graph?

slide-93
SLIDE 93

Matching-duality theorem

Odd set cover An odd set contains odd number of vertices. A edge is covered by a single vertex set S if it is adjacent to the vertex. If the size of the odd set is larger than 1, both end points of the edge must be in the set O. The capacity of the odd-set cover is defined as: |S| +

t

  • j=1

|Oj|−1 2

. Note |O|−1

2

is the possible size of the maximum match- ing of the odd set O.

verticesS

  • dd-setsO

j

slide-94
SLIDE 94

Matching-duality theorem

General K¨

  • nig theorem

If M is a maximum matching and C is a minimum odd-set cover then |M| = capacity(C)

◮ Proof:

Edges of M are covered by either S or Oj. Each vertex of S can cover at most one edge in the matching, and Oj can cover at most |O|−1

2

edges and leave one vertex exposed. Therefore, |M| ≤ capacity(C).

slide-95
SLIDE 95

Matching-duality theorem

◮ Proof:

Then we have only to prove the existence of an odd set cover and a matching for which the numbers are equal. For a perfect matching M with no exposed vertices, the odd set cover consists of two sets. One is a single vertex, one consists

  • f other vertices.

1 2 3 4 5 6

slide-96
SLIDE 96

Matching-duality theorem

◮ Proof:

For a graph which has a matching with one exposed vertices, the odd set cover consists of one set, that is the set of all the vertices. 1 2 3 5 6

slide-97
SLIDE 97

Matching-duality theorem

◮ Proof:

For a graph with more than one exposed vertex, if we run the blossom algorithm from an exposed vertex, we get an alternat- ing tree.

slide-98
SLIDE 98

Matching-duality theorem

◮ Proof:

The odd set cover for the alternating tree J consists of the sets

  • f blossoms, and all the odd nodes as single vertex sets. And

its capacity is equal to the size of the matching on J.

slide-99
SLIDE 99

Matching-duality theorem

◮ Proof:

For the other components of the graph G − J, the number

  • f exposed vertex is reduced by one. If we assume |MG−J| =

capacity(CG−J), we can prove the theorem by induction.

slide-100
SLIDE 100

Summary

◮ We have found the dual problem to maximum matching on

general graphs!

◮ Although maximum matching is an integer programming prob-

lem, which is inherently intractable, Edmonds proved in an-

  • ther paper that the optimal value of this integer programming

is equal to the optimal value of the corresponding linear pro- gramming problem, if we relax the integral constraints. But it is beyond the scope of this talk.

slide-101
SLIDE 101

Summary

◮ We have found the dual problem to maximum matching on

general graphs!

◮ Although maximum matching is an integer programming prob-

lem, which is inherently intractable, Edmonds proved in an-

  • ther paper that the optimal value of this integer programming

is equal to the optimal value of the corresponding linear pro- gramming problem, if we relax the integral constraints. But it is beyond the scope of this talk.

slide-102
SLIDE 102

Conclusion

◮ We have defined what an efficient algorithm is. ◮ We have extended the algorithm for finding maximum matching

  • n bipartite graph to the general graph, which has polynomial

running time guarantee.

◮ We have generalized K¨

  • nig theorem to general graph which is

mathematically elegant.

slide-103
SLIDE 103

Conclusion

◮ We have defined what an efficient algorithm is. ◮ We have extended the algorithm for finding maximum matching

  • n bipartite graph to the general graph, which has polynomial

running time guarantee.

◮ We have generalized K¨

  • nig theorem to general graph which is

mathematically elegant.

slide-104
SLIDE 104

Conclusion

◮ We have defined what an efficient algorithm is. ◮ We have extended the algorithm for finding maximum matching

  • n bipartite graph to the general graph, which has polynomial

running time guarantee.

◮ We have generalized K¨

  • nig theorem to general graph which is

mathematically elegant.

slide-105
SLIDE 105

Thank you! && Questions?

slide-106
SLIDE 106

Appendix

Lemma 1

If G/B contains an augmenting path P starting at r (or the pseudo node containing r), w.r.t. the matching M/B, then G contains an augmenting path starting at r w.r.t. matching M.

slide-107
SLIDE 107

Proof of Lemma 1

Proof: If P does not contain the pseudo node b, it is also augmenting path in G. Case 1: non-empty stem

◮ Next suppose that the stem is non-empty.

r i b j q P1 P2

slide-108
SLIDE 108

Proof of Lemma 1

r i b j q P1 P2

◮ After the expansion, j must be incident to some node in the

  • blossom. Let this node be k.

◮ If k = w, there is an alternating path P2 from w to k that ends

in a matching edge.

◮ P1 + (i, w) + P2 + (k, j) + P3 is an augmenting path.

r i w k j q P1 P2 P3

slide-109
SLIDE 109

Proof of Lemma 1

◮ if k = w, then P1 + (i, w) + (w, j) + P3 is an augmenting

path. r i w k j q P1 P3

slide-110
SLIDE 110

Proof of Lemma 1

Proof: Case 2: empty stem

◮ If the stem is empty then after expanding the blossom, w = r.

b j q P3 w r k j q P2 P3

◮ The path r + P2 + (k, j) + P3 is an augmenting path.

slide-111
SLIDE 111

Proof of Lemma 2

Lemma 2

If G contains an augmenting path P from r to q w.r.t. matching M then G/B contains an augmenting path from r (or the pseudo node containing r) to q w.r.t. the matching M/B. Proof:

◮ If P does not contain a node from B there is nothing to prove. ◮ We can assume that r and q are the only exposed nodes in G.

slide-112
SLIDE 112

Proof of Lemma 2

Case 1: empty stem

◮ Let i be the last node on the path P that is part of the blossom. ◮ P is of the form P1 + (i, j) + P2, for some node j and (i, j) is

unmatched.

◮ (b, j) + P2 is an augmenting path in the contracted graph.

w i j q P1 P2 b j q P2

slide-113
SLIDE 113

Proof of Lemma 2

Case 2: non-empty stem

◮ Let P3 be alternating path from r to w. Define M+ = M ⊕P3.

r i w k j q P3

slide-114
SLIDE 114

Proof of Lemma 2

Case 2: non-empty stem

◮ In M+, r is matched and w is unmatched. ◮ G must contain an augmenting path w.r.t. matching M+, since

M and M+ have same cardinality.

◮ This path must go between w and q as these are the only

unmatched vertices w.r.t. M+. r i w k j q P3

slide-115
SLIDE 115

Proof of Lemma 2

Case 2: non-empty stem

◮ For M+/B the blossom has an empty stem. Case 1 applies. ◮ G/B has an augmenting path w.r.t. M+/B. It must also have

an augmenting path w.r.t. M/B, as both matchings have the same cardinality.

◮ This path must go between r and q, since they are the only

exposed nodes. w k j q b j q P2

slide-116
SLIDE 116

Reference

◮ http://wwwmayr.informatik.tu-muenchen.de/lehre/2011WS/

ea/index.html.en

◮ www.cs.berkeley.edu/~karp/greatalgo/ ◮ en.wikipedia.org/wiki/Edmonds’s_matching_algorithm ◮ http://ilyoan.tistory.com/entry/Paths-Trees-and-Flowers- ◮ http://www.slideshare.net/akhayyat/maximum-matching-in- ◮ http://www.csie.ntnu.edu.tw/~u91029/Matching.html ◮ http://www.cse.cuhk.edu.hk/~chi/csc5160-2008/notes.

html

◮ https://tkramesh.wordpress.com/2009/10/02/bipartite-matching-