7. NETWORK FLOW II ‣ Bipartite Matching ‣ Disjoint Paths
Total Page:16
File Type:pdf, Size:1020Kb
Soviet rail network (1950s) "Free world" goal. Cut supplies (if cold war turns into real war). 7. NETWORK FLOW II ‣ bipartite matching ‣ disjoint paths ‣ extensions to max flow ‣ survey design ‣ airline scheduling ‣ image segmentation ‣ project selection Lecture slides by Kevin Wayne ‣ baseball elimination Copyright © 2005 Pearson-Addison Wesley http://www.cs.princeton.edu/~wayne/kleinberg-tardos Reference: On the history of the transportation and maximum flow problems. Alexander Schrijver in Math Programming, 91: 3, 2002. Last updated on Mar 31, 2013 3:25 PM Figure 2 2 From Harris and Ross [1955]: Schematic diagram of the railway network of the Western So- viet Union and Eastern European countries, with a maximum flow of value 163,000 tons from Russia to Eastern Europe, and a cut of capacity 163,000 tons indicated as ‘The bottleneck’. Max-flow and min-cut applications Max-flow and min-cut are widely applicable problem-solving model. ・Data mining. 7. NETWORK FLOW II ・Open-pit mining. ・Bipartite matching. ‣ bipartite matching ・Network reliability. ‣ disjoint paths ・Baseball elimination. ‣ extensions to max flow ・Image segmentation. ・Network connectivity. ‣ survey design liver and hepatic vascularization segmentation ・Distributed computing. ‣ airline scheduling ・Security of statistical data. ‣ image segmentation ・Egalitarian stable matching. ・Network intrusion detection. ‣ project selection ・Multi-camera scene reconstruction. ‣ baseball elimination ・Sensor placement for homeland security. ・Many, many, more. 3 Matching Bipartite matching Def. Given an undirected graph G = (V, E) a subset of edges M ⊆ E is Def. A graph G is bipartite if the nodes can be partitioned into two subsets a matching if each node appears in at most one edge in M. L and R such that every edge connects a node in L to one in R. Max matching. Given a graph, find a max cardinality matching. Bipartite matching. Given a bipartite graph G = (L ∪ R, E), find a max cardinality matching. 1 1' 2 2' 3 3' 4 4' L 5 5' R matching: 1-2', 3-1', 4-5' 5 6 Bipartite matching Bipartite matching: max flow formulation Def. A graph G is bipartite if the nodes can be partitioned into two subsets ・Create digraph G' = (L ∪ R ∪ {s, t}, E' ). L and R such that every edge connects a node in L to one in R. ・Direct all edges from L to R, and assign infinite (or unit) capacity. ・Add source s, and unit capacity edges from s to each node in L. Bipartite matching. Given a bipartite graph G = (L ∪ R, E), find a max ・Add sink t, and unit capacity edges from each node in R to t. cardinality matching. 1 1' G' 1 ∞ 1' 2 2' 1 1 2 2' 3 3' s 3 3' t 4 4' 4 4' L 5 5' R 5 5' matching: 1-1', 2-2', 3-4', 4-5' L R 7 8 Max flow formulation: proof of correctness Max flow formulation: proof of correctness Theorem. Max cardinality of a matching in G = value of max flow in G'. Theorem. Max cardinality of a matching in G = value of max flow in G'. Pf. ≤ Pf. ≥ ・Given a max matching M of cardinality k. ・Let f be a max flow in G' of value k. ・Consider flow f that sends 1 unit along each of k paths. ・Integrality theorem ⇒ k is integral and can assume f is 0-1. ・f is a flow, and has value k. ▪ ・Consider M = set of edges from L to R with f (e) = 1. - each node in L and R participates in at most one edge in M - | M | = k: consider cut (L ∪ s, R ∪ t) ▪ 1 1' 1 ∞ 1' 1 ∞ 1' 1 1' 1 1 1 1 2 2' 2 2' 2 2' 2 2' 3 3' s 3 3' t s 3 3' t 3 3' 4 4' 4 4' 4 4' 4 4' G 5 5' 5 5' G' G' 5 5' 5 5' G 9 10 Perfect matching in a bipartite graph Perfect matching in a bipartite graph Def. Given a graph G = (V, E) a subset of edges M ⊆ E is a perfect matching Notation. Let S be a subset of nodes, and let N(S) be the set of nodes if each node appears in exactly one edge in M. adjacent to nodes in S. Q. When does a bipartite graph have a perfect matching? Observation. If a bipartite graph G = (L ∪ R, E) has a perfect matching, then | N(S) | ≥ | S | for all subsets S ⊆ L. Structure of bipartite graphs with perfect matchings. Pf. Each node in S has to be matched to a different node in N(S). ▪ ・Clearly we must have | L | = | R |. ・What other conditions are necessary? 1 1' ・What conditions are sufficient? S = { 2, 4, 5 } 2 2' N(S) = { 2', 5' } 3 3' 4 4' 5 5' 11 no perfect matching 12 Hall's theorem Proof of Hall's theorem Theorem. Let G = (L ∪ R, E) be a bipartite graph with | L | = | R |. Pf. ⇐ Suppose G does not have a perfect matching. G has a perfect matching iff | N(S) | ≥ | S | for all subsets S ⊆ L. ・Formulate as a max flow problem and let (A, B) be min cut in G'. ・By max-flow min-cut theorem, cap(A, B) < | L |. Pf. ⇒ This was the previous observation. ・Define LA = L ∩ A, LB = L ∩ B , RA = R ∩ A. ・cap(A, B) = | LB | + | RA |. ・Since min cut can't use ∞ edges: N(LA) ⊆ RA. ・| N(LA) | ≤ | RA | = cap(A, B) – | LB | < | L | – | LB | = | LA |. 1 1' ・Choose S = LA . ▪ 1 ∞ 1 ∞ S = { 2, 4, 5 } 2 2' G' 1' LA = {2, 4, 5} N(S) = { 2', 5' } A 2' LB = {1, 3} 3 ∞ 3' 2 1 RA = {2', 5'} s 3' N(LA) = {2', 5'} 4 4' 4 1 3 4' 5 5' 5 5' 1 t no perfect matching 13 14 Bipartite matching running time Nonbipartite matching Theorem. The Ford-Fulkerson algorithm solves the bipartite matching Nonbipartite matching. Given an undirected graph (not necessarily problem in O(m n) time. bipartite), find a matching of maximum cardinality. ・Structure of nonbipartite graphs is more complicated. Theorem. [Hopcroft-Karp 1973] The bipartite matching problem can be ・But well-understood. [Tutte-Berge, Edmonds-Galai] solved in O(m n1/2) time. ・Blossom algorithm: O(n4). [Edmonds 1965] ・Best known: O(m n1/2). [Micali-Vazirani 1980, Vazirani 1994] SIAM J. COMPUT. Vol. 2, No. 4, December 1973 PATHS, TREES, AND FLOWERS COMBINATORICA COMBINATORICA 14 (i) (1994) 71-109 Akad6miai Kiad6 - Springer-Verlag JACK EDMONDS ANn s/2 ALGORITHM FOR MAXIMUM MATCHINGS 1. Introduction. A graph G for purposes here is a finite set of elements A THEORY OF ALTERNATING PATHS AND BLOSSOMS FOR IN BIPARTITE GRAPHS* called vertices and a finite set of elements called edges such that each edge PROVING CORRECTNESS OF THE O(v/-VE) GENERAL GRAPH meets exactly two vertices, called the end-points of the edge. An edge is said MAXIMUM MATCHING ALGORITHM JOHN E. HOPCROFT" AND RICHARD M. KARP to join its end-points. A matching in G is a subset of its edges such that no two meet the same VIJAY V. VAZIRANI 1 Abstract. The present paper shows how to construct a maximum matching in a bipartite graph vertex. We describe an efficient algorithm for finding in a given graph a match- ing of maximum cardinality. This problem was posed and partly solved by Received December 30, 1989 with n vertices and m edges in a number of computation steps proportional to (m + n)x/. C. Berge; see Sections 3.7 and 3.8. Revised June 15, 1993 Key words, algorithm, algorithmic analysis, bipartite graphs, computational complexity, graphs, Maximum matching is an aspect of a topic, treated in books on graph theory, which has developed during the last 75 years through the work of matching about a dozen authors. In particular, W. T. Tutte (8) characterized graphs which do not contain a perfect matching, or 1-factor as he calls it—that is a 1. Introduction. Suppose we are given a rectangular array in which each cell set of edges with exactly one member meeting each vertex. His theorem 1. Introduction prompted attempts at finding an efficient construction for perfect matchings. is designated as "occupied" or "unoccupied". A set of cells is independent if no This and our two subsequent papers will be closely related to other work on Finding a maximum matching in a graph is a classical problem in the study two of the cells lie in the same row or column. Our object is to construct an indepen- the topic. Most of the known theorems follow nicely from our treatment, of algorithms. In this paper we present new algorithmically relevant combinatorial though for the most part they are not treated explicitly. Our treatment is structure of matchings. This structure yields the first proof of correctness of the general graph matching algorithm of Mieali and Vazirani [14]; this is currently the dent set of occupied cells having maximum cardinality. 15 independent and so no background reading is necessary. most efficient known matching algorithm. 16 In one interpretation, the rows of the array represent boys, and the columns Section 2 is a philosophical digression on the meaning of "efficient algorithm." Berge's theorem [2], which says that matching M in graph G is a maximum Section 3 discusses ideas of Berge, Norman, and Rabin with a new proof of matching if and only if there are no augmenting paths w.r.t, it, gives an iterative represent girls. Cell i,j is occupied if boy and girl j are compatible, and we wish Berge's theorem.