1 / 15

7.5 Bipartite Matching

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.

milos
Télécharger la présentation

7.5 Bipartite Matching

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 7.5 Bipartite Matching

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

  3. 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'

  4. 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'

  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'

  6. 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'

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

  8. 7.6 Disjoint Paths

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

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

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

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

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

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

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

More Related