1 / 35

Network Flows

Network Flows. Menger ’ s Theorem. Theorem 7.1. (Menger [1927] ) Let G be a graph (directed or undirected), let s and t be two vertices, and k  N . Then there are k edge-disjoint s-t-paths if and only if after deleting any k – 1 edges t is still reachable from s.

gretaw
Télécharger la présentation

Network Flows

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. Network Flows

  2. Menger’s Theorem Theorem 7.1. (Menger [1927] ) Let G be a graph (directed or undirected), let s and t be two vertices, and k  N. Then there are k edge-disjoint s-t-paths if and only if after deleting any k – 1edges t is still reachable from s.

  3. Proof (directed case) • Necessity is obvious. • To prove sufficiency in the directed case, let (G, u, s, t) be a network with unit capacities u≡1such that t is reachable from s even after deleting any k – 1edges. • This implies that the minimum capacity of an s-t-cut is at least k. • By the Max-Flow-Min-Cut Theorem and Corollary 6.7 there is an integral s-t-flow of value at least k. • By Theorem 6.8 this flow can be decomposed into integral flows on s-t-paths (and possibly some circuits). • Since all capacities are 1 we must have at least k edge-disjoint s-t-paths.

  4. Proof(undirected case) • Necessity is obvious. • Let G be an undirected graph with two vertices s and t such that t is reachable from s even after deleting any k – 1edges.

  5. Proof(undirected case) u v u v

  6. Vertex-disjoint path • We call two paths vertex-disjoint if they have no edge and no inner vertex in common (they may have one or two common endpoints).

  7. Menger’s Theorem (2) Theorem 7.2. (Menger [1927] ) Let G be a graph (directed or undirected), let s and t be two non-adjacent vertices, and k N. Then there are k vertex-disjoint s-t-paths if and only if after deleting any k – 1vertices (distinct from s and t) t is still reachable from s.

  8. Proof v v0 v1

  9. Proof v v0 v1 Any set of k – 1 edges in the new graph whose deletion makes t unreachable from s implies a set of at most k – 1vertices in Gwhose deletion makes t unreachable from s. Moreover, edge-disjoint s-t-paths in the new graph corresponds to vertex-disjoint paths in the old one.

  10. k-edge-connected Graph Corollary 7.3. ( Whitney [1932] ) An undirected graph G with at least two vertices is k-edge-connected if and only if for each pair s, t V(G) with s ≠ t there are k edge-disjoint s-t-paths. An undirected graph G with more than k vertices is k-connected if and only if for each pair s, t V(G) with s ≠ t there are k vertex-disjoint s-t-paths.

  11. Proof • To prove the second statement let G be an undirected graph with more than k vertices. • If G hask−1 vertices whose deletion makes the graph disconnected, then it cannot have k vertex disjoint s-t-paths for each pair s, t V(G). • Conversely, if G does not have k vertex-disjoint s-t-paths for some s, t V(G), then we consider two cases. • If s and t are non-adjacent, then by the 2nd Menger Theorem G has k−1 vertices whose deletion separates s and t. •  Gis not k-connected.

  12. Proof(sand tare adjacent) • Ifs and tare joined by a setF ofparallel edges. • ThenG – F has nok – |F|vertex-disjoint s-t-paths. (|F| ≥ 1) • So by the 2nd Menger Theorem it has a setX ofk− |F| –1verticeswhose deletion separates s and t. • Let v V(G)\(X {s,t}). Then v cannot be reachable from s and from t in G – F – X. • Say v is not reachable from t. Add vertex s to X. Then v and t are in different connected components of G – (X {s}). • |X {s}| = k− |F|≤ k –1 •  Gis not k-connected.

  13. Directed Edge-Disjoint Paths Problem • Instance: Two directed graphs (G, H) on the same vertices. • Task: Find a family (Pf)fE(H) of edge-disjoint paths in G such that for each f = (t, s) in H, Pfis an s-t-path. Such a family is called a solution of (G, H). We say that Pfrealizesf. The edges of G are called supply edges, the edges of Hdemand edges. A vertex incident to some demand edge is called a terminal.

  14. Solvable instance Proposition 7.4. Let (G, H) be an instance of the Directed Edge-Disjoint Paths Problem whereH is just a set of parallel edges and G + H is Eulerian.Then(G, H) has a solution.

  15. Solvable instance Proposition 7.4. Let (G, H) be an instance of the Directed Edge-Disjoint Paths Problem where H is just a set of parallel edges and G + H is Eulerian.Then(G, H) has a solution. Proof (induction on number of parallel edges in H). Since G + H is Eulerian, every edge, in particular any f  E(H), belong to some circuit C. We take C – F as the first part of our solution, delete C, and apply induction.

  16. Ford-Fulkerson Algorithm Input: A network (G, u, s, t). Output: An s-t-flow f of maximum value.

  17. Edmonds-Karp Algorithm Input: A network (G, u, s, t). Output: An s-t-flow f of maximum value.

  18. Lemma Lemma 7.5. Let f1, f2, ... be a sequence of flows such that fi+1 results from fi by augmenting along Pi, where Pi is a shortest fi-augmenting path. Then a) |E(Pk)| ≤ | E(Pk+1)| for all k. b) |E(Pk)| + 2 ≤ |E(Pl)| for all k < l such that Pk∪Plcontains a pair of reverse edges.

  19. |E(Pk)| ≤ | E(Pk+1)| for all k • Consider the graph G1, which results from Pk Pk+1by deleting pairs of reverse edges. (Edges appearing both in Pkand Pk+1are taken twice.)

  20. GraphG1 G1 S t G1=PkUPk+1−{reverse edges}

  21. Proof a) • Consider the graph G1, which results from Pk Pk+1by deleting pairs of reverse edges. (Edges appearing both in Pk and Pk+1are taken twice.) • Note that E(G1)  E(Gfk), since any edge in E(Gfk+1)\E(Gfk)must be the reverse of an edge in Pk.

  22. Proof a) • Consider the graph G1, which results from Pk Pk+1by deleting pairs of reverse edges. (Edges appearing both in Pk and Pk+1are taken twice.) • Note that E(G1)  E(Gfk), since any edge in E(Gfk+1)\E(Gfk)must be the reverse of an edge in Pk. • Let H1simply consists of two copies of (t,s). • Obviously G1+ H1is Eulerian.

  23. G1+ H1 G1 S t G1=PkUPk+1−reverse edges H1− two edges (t,s)

  24. Proof a) • Consider the graph G1, which results from Pk Pk+1by deleting pairs of reverse edges. (Edges appearing both in Pk and Pk+1are taken twice.) • Note that E(G1)  E(Gfk), since any edge in E(Gfk+1)\E(Gfk)must be the reverse of an edge in Pk. • Let H1simply consists of two copies of (t,s). • Obviously G1+ H1is Eulerian. • Proposition 7.4. there are two edge disjoint s-t-pathsQ1 andQ2. • E(G1)  E(Gfk)  both Q1 andQ2 areaugmenting paths inGfk.

  25. |E(Pk)| ≤ | E(Pk+1)| for all k • Since Pkwas a shortest fk-augmenting path, |E(Pk)| ≤ |E(Q1)| and|E(Pk)| ≤ |E(Q2)|. • 2|E(Pk)| ≤ |E(Q1)| + |E(Q2)|≤ |E(G1)| ≤ ≤ |E(Pk)| + |E(Pk+1)|. • |E(Pk)| ≤|E(Pk+1)|.

  26. |E(Pk)| + 2 ≤ |E(Pl)| for all k < l suchthat Pk⋃Plcontains a pair of reverse edges • Letk < l such thatfor anyi, k < i < l,Pi  Pl contains no pair of reverse edges. • Consider the graph G1, which results fromPk Plby deleting pairs of reverse edges. • Again, E(G1)  E(Gfk): • E(Pk)  E(Gfk), E(Pl)  E(Gfl) • Any edge of E(Gfl)\E(Gfk)must be the reverse of an edge in one ofPk, Pk+1,…, Pl–1. • But − due to choice of kandl − among these paths onlyPkcontains the reverse of an edge in Pl . • 2|E(Pk)| ≤ |E(Q1)| + |E(Q2)|≤ |E(G1)| ≤ ≤ |E(Pk)| + |E(Pk+1)|– 2.

  27. Lemma Lemma 7.5. Let f1, f2, ... be a sequence of flows such that fi+1 results from fi by augmenting along Pi, where Pi is a shortest fi-augmenting path. Then a) |E(Pk)| ≤ | E(Pk+1)| for all k. b) |E(Pk)| + 2 ≤ |E(Pl)| for all k < l such that Pk∪Plcontains a pair of reverse edges.

  28. Number of Augmentations Theorem 7.6. (Edmonds, Karp [1972] ) Regardless of the edge capacities, the Edmonds-Karp Algorithm stops after at most mn/2 augmentations, where m is the number of edges and n is the number of vertices.

  29. Proof • LetP1, P2,… be the augmenting paths chosen during the Edmonds-Karp Algorithm. • By the choice ofγin step 3 of the algorithm, each augmenting path contains at least one bottleneck edgee: uf (e) = γ. • For any edge e, letPi1, Pi2 ,… be the subsequence of augmenting paths containingeas a bottleneck edge. • ThenbetweenPij, Pij+1there must be an augmenting pathPкcontaining a reverse edgeofe.

  30. Proof • Lemma 7.5 b)  |E(Pij)| + 4≤|E(Pk)| + 2 ≤|E(Pij+1)| for all j. • 1 ≤ |E(Pij)| ≤ n – 1  there can be at most n/4 augmenting paths containingeas a bottleneck edge. • Since any augmenting path must contain at least one edge ofĞas a bottleneck edge, there can be at most (n|E(Ğ)|)/4 =(mn)/2 augmenting paths.

  31. Running time of Edmonds-Karp Algorithm Corollary 7.7. The Edmonds-Karp Algorithm solves the Maximum Flow Problem in O(m2n) time.

  32. Applications: scheduling problem P. • Given set of jobs J = {J1,…, Jn} and m parallel identical machines. A processing time pj, a release time rj, and a deadline dj are associated with each job Jj. • Find a feasible preemptive schedule or decide that none exists. • Preemption of a job means that processing may be interrupted and resumed at a later time, even on another machine. • So, a schedule is for each job an allocation of one or more intervals to one or more machines. • Schedule is feasible if no two time intervals overlap on the same machine, no two time intervals allocated to the same job overlap, and each job Jj is executed inside the interval [rj, dj].

  33. Exersice 7.1 • Find a polynomial time algorithm for the scheduling problem P.

  34. Solution Let t0 < t1 < …< tr be the ordered sequence of all different ri-values and di-values. J1 I1 p1 mT1 pi Tk mTk Ji Ik pi+1 Tk Ji+1 mTr Ir pn Jn Consider the intervals Ik:=[tk– 1,tk] of length Tk = tk– tk– 1.

  35. Homework Escape problem • Given m ≤n2 starting points (x1, y1), (x2, y2),…, (xm,ym) in the grid, the escape problem is to determine whether or not there are m vertex-disjoint paths from the starting points to any m different points on the boundary. • Reduce the Escape problem to the Maximum Flow problem.

More Related