Paths, Trees, and Flowers by Jack Edmonds

Similar documents
1 Matching in Non-Bipartite Graphs

Lecture 4: Primal Dual Matching Algorithm and Non-Bipartite Matching. 1 Primal/Dual Algorithm for weighted matchings in Bipartite Graphs

Advanced Combinatorial Optimization September 15, Lecture 2

2. Lecture notes on non-bipartite matching

5.1 Min-Max Theorem for General Matching

Lecture 8: Non-bipartite Matching. Non-partite matching

Matching Algorithms. Proof. If a bipartite graph has a perfect matching, then it is easy to see that the right hand side is a necessary condition.

Matching. Algorithms and Networks

Graph Algorithms Matching

Sources for this lecture. 3. Matching in bipartite and general graphs. Symmetric difference

Topics in Combinatorial Optimization February 5, Lecture 2

Design And Analysis of Algorithms Lecture 6: Combinatorial Matching Algorithms.

Lecture notes on: Maximum matching in bipartite and non-bipartite graphs (Draft)

MTL 776: Graph Algorithms Lecture : Matching in Graphs

Mathematical and Algorithmic Foundations Linear Programming and Matchings

1 Bipartite maximum matching

Maximum Matching Algorithm

Matching Theory. Figure 1: Is this graph bipartite?

PERFECT MATCHING THE CENTRALIZED DEPLOYMENT MOBILE SENSORS THE PROBLEM SECOND PART: WIRELESS NETWORKS 2.B. SENSOR NETWORKS OF MOBILE SENSORS

Lecture 15: Matching Problems. (Reading: AM&O Chapter 12)

Advanced Combinatorial Optimization September 17, Lecture 3. Sketch some results regarding ear-decompositions and factor-critical graphs.

PERFECT MATCHING THE CENTRALIZED DEPLOYMENT MOBILE SENSORS THE PROBLEM SECOND PART: WIRELESS NETWORKS 2.B. SENSOR NETWORKS OF MOBILE SENSORS

Matchings. Saad Mneimneh

Solutions to Problem Set 2

6. Lecture notes on matroid intersection

LECTURES 3 and 4: Flows and Matchings

Assignment and Matching

1. Lecture notes on bipartite matching

Outline. 1 The matching problem. 2 The Chinese Postman Problem

MC302 GRAPH THEORY Thursday, 10/24/13

Matching 4/21/2016. Bipartite Matching. 3330: Algorithms. First Try. Maximum Matching. Key Questions. Existence of Perfect Matching

Maximum flows & Maximum Matchings

GRAPH DECOMPOSITION BASED ON DEGREE CONSTRAINTS. March 3, 2016

CS261: A Second Course in Algorithms Lecture #14: Online Bipartite Matching

Chapter 5 Graph Algorithms Algorithm Theory WS 2012/13 Fabian Kuhn

Paths, Flowers and Vertex Cover

1 Linear programming relaxation

Lecture 3: Graphs and flows

A study of Matchings in Graphs

1. Lecture notes on bipartite matching February 4th,

Lecture 10,11: General Matching Polytope, Maximum Flow. 1 Perfect Matching and Matching Polytope on General Graphs

Matching and Covering

GRAPH THEORY and APPLICATIONS. Matchings

CSE 417: Algorithms and Computational Complexity

1 Matchings in Graphs

Figure 2.1: A bipartite graph.

Graph Theory: Matchings and Factors

THE PROBLEM OF WORM PROPAGATION/PREVENTION

Announcements. CSEP 521 Applied Algorithms. Announcements. Polynomial time efficiency. Definitions of efficiency 1/14/2013

12.1 Formulation of General Perfect Matching

Edmonds Blossom Algorithm

Combinatorial Optimization

Theorem 2.9: nearest addition algorithm

COMP260 Spring 2014 Notes: February 4th

Matchings. Examples. K n,m, K n, Petersen graph, Q k ; graphs without perfect matching. A maximal matching cannot be enlarged by adding another edge.

5. Lecture notes on matroid intersection

Ma/CS 6b Class 2: Matchings

Copyright 2007 Pearson Addison-Wesley. All rights reserved. A. Levitin Introduction to the Design & Analysis of Algorithms, 2 nd ed., Ch.

Paths, Flowers and Vertex Cover

The Weighted Matching Approach to Maximum Cardinality Matching

Lecture 14: Linear Programming II

Advanced Algorithms Class Notes for Monday, October 23, 2012 Min Ye, Mingfu Shao, and Bernard Moret

Fast and Simple Algorithms for Weighted Perfect Matching

Greedy algorithms is another useful way for solving optimization problems.

Lecture 7. s.t. e = (u,v) E x u + x v 1 (2) v V x v 0 (3)

10. EXTENDING TRACTABILITY

Dual-fitting analysis of Greedy for Set Cover

Notes for Lecture 20

Today. Types of graphs. Complete Graphs. Trees. Hypercubes.

Optimization I : Brute force and Greedy strategy

10. EXTENDING TRACTABILITY

and 6.855J March 6, Maximum Flows 2

A new NC Algorithm for Perfect Matching in Bipartite Cubic Graphs

B r u n o S i m e o n e. La Sapienza University, ROME, Italy

Exam problems for the course Combinatorial Optimization I (DM208)

Important separators and parameterized algorithms

THE PROBLEM WORMS (1) WORMS (2) THE PROBLEM OF WORM PROPAGATION/PREVENTION THE MINIMUM VERTEX COVER PROBLEM

Incremental Assignment Problem

Graphs and Algorithms 2016

On Covering a Graph Optimally with Induced Subgraphs

Dual-Based Approximation Algorithms for Cut-Based Network Connectivity Problems

Global Constraints. Combinatorial Problem Solving (CPS) Enric Rodríguez-Carbonell (based on materials by Javier Larrosa) February 22, 2019

Introduction to Graph Theory

AMS /672: Graph Theory Homework Problems - Week V. Problems to be handed in on Wednesday, March 2: 6, 8, 9, 11, 12.

Solution for Homework set 3

Graph Algorithms (part 3 of CSC 282),

Algorithm Design and Analysis

CSE 417 Network Flows (pt 4) Min Cost Flows

List of Theorems. Mat 416, Introduction to Graph Theory. Theorem 1 The numbers R(p, q) exist and for p, q 2,

Theorem 3.1 (Berge) A matching M in G is maximum if and only if there is no M- augmenting path.

Lecture 6: Graph Properties

MATH 682 Notes Combinatorics and Graph Theory II

Lecture 2 - Graph Theory Fundamentals - Reachability and Exploration 1

5 Matchings in Bipartite Graphs and Their Applications

1 Variations of the Traveling Salesman Problem

Linear Programming Duality and Algorithms

Graph Algorithms. Chapter 22. CPTR 430 Algorithms Graph Algorithms 1

Blossom Algorithms for 1-Matching/Edge Covering Problems in Undirected Networks

Topics on Computing and Mathematical Sciences I Graph Theory (3) Trees and Matchings I

Graphs and Network Flows IE411. Lecture 21. Dr. Ted Ralphs

Transcription:

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 set of edges, no two of which meet at a common vertex. Maximum matching is a matching of maximum cardinality.

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.

Question Why do we want to study matching problems?

A lot of applications Job recruitment process.

A lot of applications Then someone is not happy.

A lot of applications Everyone is happy now.

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

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).

First try: greedy method How to improve the matching?

Augment the matching If we flip the edges...

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

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

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

Augmenting path Augmenting path is a simple alternating path between exposed vertices M exposed vertex augmenting path

Augmenting path We can find a larger matching in the augmenting path! M exposed vertex This operation is called symmetric difference.

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.

Intuition Then our algorithm can try to find augmenting paths to improve the known mathcing.

Question Can we stop when there is no augmenting paths? What is the optimality condition for the algorithm to terminate?

Answer Berge theorem says if there is no augmenting path, we can stop!

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.

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

Berge s theorem Recall that we use to find a larger matching. Now we reverse the step. If we apply between matching M 1 and a larger matching M 2, what do we get?

Berge s theorem The results are paths and circuits which are alternating for M 1 and M 2. M 1 M 2 M 1 M 2 We have found alternating paths, which is very close to find augmenting paths!

Berge s theorem Since the matching M 2 is larger, there must be a component has one more edge in M 2 than in M 1. This component is an augmenting path. Why?

Berge s theorem Since the matching M 2 is larger, there must be a component has one more edge in M 2 than in M 1. This component is an augmenting path. Why?

Berge s theorem Since the matching M 2 is larger, there must be a component has one more edge in M 2 than in M 1. This component is an augmenting path. Why?

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!

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

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

Digression Edmonds defined that an efficient algorithm should have polynomial running time in this paper, which is earlier than Stephen Cook defined P and N P.

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 odd-length cycles! There are polynomial time algorithms for maximum matching on bipartite graphs! 1 2 3 4 A B C

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 odd nodes

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

Find an augmenting path using BFS Case 2, y is matched vertex not in T, grow the tree. r even nodes odd nodes x y

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 even nodes odd nodes x

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 even nodes odd nodes x

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 number of edges.

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 number of edges.

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 number of edges.

Question Why will odd cycles be a trouble?

Examples of BFS failure on non-bipartite graphs Initial graph 4 6 1 2 3 5 Start from vertex 1, we add vertex 2 and 3. 1 2 3 even nodes odd nodes

Examples of BFS failure on non-bipartite graphs Initial graph 4 6 1 2 3 5 Two vertices 4 and 5 could be visited. If we first visit 4... 1 2 3 4 5 even nodes odd nodes

Examples of BFS failure on non-bipartite graphs Initial graph 4 6 1 2 3 5 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 odd nodes

Examples of BFS failure on non-bipartite graphs Initial graph 4 6 1 2 3 5 But actually there is an augmenting path! 1 2 3 5 4 6

Examples of BFS failure on non-bipartite graphs Initial graph 4 6 1 2 3 5 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 odd nodes

Examples of BFS failure on non-bipartite graphs Initial graph 4 6 1 2 3 5 First idea: allow vertices to be visited both even and odd layers. 1 2 3 4 5 5 4 6 even nodes odd nodes

Examples of BFS failure on non-bipartite graphs Initial graph 6 4 1 2 3 5 But the augmenting path we find may not be a simple path. 4 5 1 2 3 3 2 6 5 4

Examples of BFS failure on non-bipartite graphs Result graph 6 4 1 2 3 5 If we flip the edges... 4 5 1 2 3 3 2 6 5 4

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

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 odd nodes

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

Edmonds idea An alternating path with an exposed vertex at one end and a matching 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.

Edmonds idea An alternating path with an exposed vertex at one end and a matching 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.

Edmonds idea An alternating path with an exposed vertex at one end and a matching 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.

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.

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.

Edmonds idea Whenever a blossom B is found, we shrink it to a pseudo vertex, and recursively run the algorithm to find maximum matching of 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 of B. Since there are at most n exposed vertices, we need O(n) augmentations. Each augmentation will shrink at most O(n) blossoms. Constructing the alternating tree takes at most n 2 if we use adjacency matrix. O(n 4 ).

Edmonds idea Whenever a blossom B is found, we shrink it to a pseudo vertex, and recursively run the algorithm to find maximum matching of 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 of B. Since there are at most n exposed vertices, we need O(n) augmentations. Each augmentation will shrink at most O(n) blossoms. Constructing the alternating tree takes at most n 2 if we use adjacency matrix. O(n 4 ).

Edmonds idea Whenever a blossom B is found, we shrink it to a pseudo vertex, and recursively run the algorithm to find maximum matching of 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 of B. Since there are at most n exposed vertices, we need O(n) augmentations. Each augmentation will shrink at most O(n) blossoms. Constructing the alternating tree takes at most n 2 if we use adjacency matrix. O(n 4 ).

Edmonds idea Whenever a blossom B is found, we shrink it to a pseudo vertex, and recursively run the algorithm to find maximum matching of 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 of B. Since there are at most n exposed vertices, we need O(n) augmentations. Each augmentation will shrink at most O(n) blossoms. Constructing the alternating tree takes at most n 2 if we use adjacency matrix. O(n 4 ).

Edmonds idea Whenever a blossom B is found, we shrink it to a pseudo vertex, and recursively run the algorithm to find maximum matching of 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 of B. Since there are at most n exposed vertices, we need O(n) augmentations. Each augmentation will shrink at most O(n) blossoms. Constructing the alternating tree takes at most n 2 if we use adjacency matrix. O(n 4 ).

Edmonds idea Whenever a blossom B is found, we shrink it to a pseudo vertex, and recursively run the algorithm to find maximum matching of 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 of B. Since there are at most n exposed vertices, we need O(n) augmentations. Each augmentation will shrink at most O(n) blossoms. Constructing the alternating tree takes at most n 2 if we use adjacency matrix. O(n 4 ).

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(n 3 ). An O(n 2.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(n 2.376 ) complexity, based on fast matrix multiplication.

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(n 3 ). An O(n 2.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(n 2.376 ) complexity, based on fast matrix multiplication.

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(n 3 ). An O(n 2.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(n 2.376 ) complexity, based on fast matrix multiplication.

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(n 3 ). An O(n 2.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(n 2.376 ) complexity, based on fast matrix multiplication.

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

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

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

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

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

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

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

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

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

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

Examples A graph G = (V, E) and a matching M. 1 2 3 4 7 6 (5, 10, 9) 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. even 1 odd 2 even 3 odd 4 even 5, 10, 9 odd 6 7 even 8

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

Examples Applying M = M P yeilds following enlarged matching in the original graph. 1 2 3 4 7 6 5 10 8 9

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.

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.

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

Linear programming Standard linear programming model maximize c T x subject to Ax 0 x 0

Maximum matching as linear programming 1 2 3 4 Maximum matching maximize subject to x 13 + x 23 + x 24 x 13 1 x 23 + x 24 1 x 13 + x 23 1 x 24 1

Matching-duality theorem Linear programming duality theorem If x 0, Ax c y 0, A T y b for given real vectors b and c and real matrix A, then for real vectors x and y, if such extrema exist. max x (b, x) = min y (c, y) Generally, if we can solve one, we can solve the other.

Matching-duality theorem And the dual problem of max matching is...?

Matching-duality theorem on bipartite graph 1 2 3 4 Maximum matching maximize subject to x 13 + x 23 + x 24 x 13 1 x 23 + x 24 1 x 13 + x 23 1 x 24 1 Minimum vertex cover minimize subject to x 1 + x 2 + x 3 + x 4 x 1 + x 3 1 x 2 + x 3 1 x 2 + x 4 1

Matching-duality theorem on bipartite graph Kö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

Matching-duality theorem But it does not hold on the general graph... 1 2 3 4 1 2 3 4 1 2 3 4

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

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 O j 1 2. Note O 1 2 is the possible size of the maximum matching of the odd set O. verticess odd-setso j

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 O j. Each vertex of S can cover at most one edge in the matching, and O j can cover at most O 1 2 edges and leave one vertex exposed. Therefore, M capacity(c).

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 of other vertices. 1 2 3 4 5 6

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

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 alternating tree.

Matching-duality theorem Proof: The odd set cover for the alternating tree J consists of the sets of blossoms, and all the odd nodes as single vertex sets. And its capacity is equal to the size of the matching on J.

Matching-duality theorem Proof: For the other components of the graph G J, the number of exposed vertex is reduced by one. If we assume M G J = capacity(c G J ), we can prove the theorem by induction.

Summary We have found the dual problem to maximum matching on general graphs! Although maximum matching is an integer programming problem, which is inherently intractable, Edmonds proved in another paper that the optimal value of this integer programming is equal to the optimal value of the corresponding linear programming problem, if we relax the integral constraints. But it is beyond the scope of this talk.

Summary We have found the dual problem to maximum matching on general graphs! Although maximum matching is an integer programming problem, which is inherently intractable, Edmonds proved in another paper that the optimal value of this integer programming is equal to the optimal value of the corresponding linear programming problem, if we relax the integral constraints. But it is beyond the scope of this talk.

Conclusion We have defined what an efficient algorithm is. We have extended the algorithm for finding maximum matching on 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.

Conclusion We have defined what an efficient algorithm is. We have extended the algorithm for finding maximum matching on 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.

Conclusion We have defined what an efficient algorithm is. We have extended the algorithm for finding maximum matching on 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.

Thank you! && Questions?

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.

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 P 1 b P 2 i j q

Proof of Lemma 1 r P 1 b P 2 i j q 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 P 2 from w to k that ends in a matching edge. P 1 + (i, w) + P 2 + (k, j) + P 3 is an augmenting path. P 1 r i w P 3 k j q P 2

Proof of Lemma 1 if k = w, then P 1 + (i, w) + (w, j) + P 3 is an augmenting path. P 1 k P 3 r i w j q

Proof of Lemma 1 Proof: Case 2: empty stem If the stem is empty then after expanding the blossom, w = r. b j P 3 q r w P 3 k j q P 2 The path r + P 2 + (k, j) + P 3 is an augmenting path.

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.

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 P 1 + (i, j) + P 2, for some node j and (i, j) is unmatched. (b, j) + P 2 is an augmenting path in the contracted graph. w P 1 i j P 2 q b j P 2 q

Proof of Lemma 2 Case 2: non-empty stem Let P 3 be alternating path from r to w. Define M + = M P 3. P 3 r i w k j q

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 +. P 3 r i w k j q

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 P 2 q

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-mat