180 likes | 489 Vues
7.5 Bipartite Matching. Matching. Matching. Input: undirected graph G = (V, E). M E is a matching if each node appears in at most edge in M. Max matching: find a max cardinality matching. Bipartite Matching. Bipartite matching.
E N D
Matching • Matching. • Input: undirected graph G = (V, E). • M E is a matching if each node appears in at most edge in M. • Max matching: find a max cardinality matching.
Bipartite Matching • Bipartite matching. • Input: undirected, bipartite graph G = (L R, E). • M E is a matching if each node appears in at most edge in M. • Max matching: find a max cardinality matching. 1 1' 2 2' matching 1-2', 3-1', 4-5' 3 3' 4 4' L R 5 5'
Bipartite Matching • Bipartite matching. • Input: undirected, bipartite graph G = (L R, E). • M E is a matching if each node appears in at most edge in M. • Max matching: find a max cardinality matching. 1 1' 2 2' max matching 1-1', 2-2', 3-3' 4-4' 3 3' 4 4' L R 5 5'
Bipartite Matching • Max flow formulation. • Create digraph G' = (L R {s, t}, E' ). • 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. • Add sink t, and unit capacity edges from each node in R to t. G' 1 1' 1 1 2 2' s 3 3' t 4 4' L R 5 5'
Bipartite Matching: Proof of Correctness • Theorem. Max cardinality matching in G = value of max flow in G'. • Pf. • Given max matching M of cardinality k. • Consider flow f that sends 1 unit along each of k paths. • f is a flow, and has value k. ▪ 1 1' 1 1' 1 1 2 2' 2 2' 3 3' s 3 3' t 4 4' 4 4' G' G 5 5' 5 5'
Bipartite Matching: Proof of Correctness • Theorem. Max cardinality matching in G = value of max flow in G'. • Pf. • Let f be a max flow in G' of value k. • Integrality theorem k is integral and can assume f is 0-1. • Consider M = set of edges from L to R with f(e) = 1. • each node in Land Rparticipates in at most one edge in M • |M| = k: consider cut (L s, R t) ▪ 1 1' 1 1' 1 1 2 2' 2 2' 3 3' s 3 3' t 4 4' 4 4' G' G 5 5' 5 5'
Edge Disjoint Paths • Disjoint path problem. Given a digraph G = (V, E) and two nodes s and t, find the max number of edge-disjoint s-t paths. • Def. Two paths are edge-disjoint if they have no edge in common. • Ex: communication networks. 2 5 s 3 6 t 4 7
Edge Disjoint Paths • Disjoint path problem. Given a digraph G = (V, E) and two nodes s and t, find the max number of edge-disjoint s-t paths. • Def. Two paths are edge-disjoint if they have no edge in common. • Ex: communication networks. 2 5 s 3 6 t 4 7
s t Edge Disjoint Paths • Max flow formulation: assign unit capacity to every edge. • Theorem. Max number edge-disjoint s-t paths equals max flow value. • Pf. • Suppose there are k edge-disjoint paths P1, . . . , Pk. • Set f(e) = 1 if e participates in some pathPi ; else set f(e) = 0. • Since paths are edge-disjoint, f is a flow of value k. ▪ 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Edge Disjoint Paths • Max flow formulation: assign unit capacity to every edge. • Theorem. Max number edge-disjoint s-t paths equals max flow value. • Pf. • Suppose max flow value is k. • Integrality theorem there exists 0-1 flow f of value k. • Consider edge (s, u) with f(s, u) = 1. • by conservation, there exists an edge (u, v) with f(u, v) = 1 • continue until reach t, always choosing a new edge • Produces k (not necessarily simple) edge-disjoint paths. ▪ 1 1 1 1 1 1 1 1 s t 1 1 1 1 1 1 can eliminate cycles to get simple paths if desired
Network Connectivity • Network connectivity. Given a digraph G = (V, E) and two nodes s and t, find min number of edges whose removal disconnects t from s. • Def. A set of edges F E disconnects t from s if all s-t paths uses at least on edge in F. 2 5 s 3 6 t 4 7
Edge Disjoint Paths and Network Connectivity • Theorem. [Menger 1927] The max number of edge-disjoint s-t paths is equal to the min number of edges whose removal disconnects t from s. • Pf. • Suppose the removal of F E disconnects t from s, and |F| = k. • All s-t paths use at least one edge of F. Hence, the number of edge-disjoint paths is at most k. ▪ 2 5 2 5 s 3 6 t s 3 6 t 4 7 4 7
Disjoint Paths and Network Connectivity • Theorem. [Menger 1927] The max number of edge-disjoint s-t paths is equal to the min number of edges whose removal disconnects t from s. • Pf. • Suppose max number of edge-disjoint paths is k. • Then max flow value is k. • Max-flow min-cut cut (A, B) of capacity k. • Let F be set of edges going from A to B. • |F| = k and disconnects t from s. ▪ 2 5 2 5 A s 3 6 t s 3 6 t 4 7 4 7