Flow Algorithms Prepared by John Reif, Ph.D. Distinguished Professor of Computer Science Duke...

download Flow Algorithms Prepared by John Reif, Ph.D. Distinguished Professor of Computer Science Duke University Analysis of Algorithms Week 9, Lecture 2.

If you can't read please download the document

Transcript of Flow Algorithms Prepared by John Reif, Ph.D. Distinguished Professor of Computer Science Duke...

  • Slide 1

Flow Algorithms Prepared by John Reif, Ph.D. Distinguished Professor of Computer Science Duke University Analysis of Algorithms Week 9, Lecture 2 Slide 2 Flow Algorithms a)Max-flow, min-cut Theorem b)Augmenting Paths c)O-1 flow d)Vertex Connectivity e)Planar Flow Slide 3 Readings on Flow Algorithms Reading Selection: CLR, Chapter 26 Slide 4 Network Definition Slide 5 Reverse Edges Slide 6 Definition of Network Flow Slide 7 Value of Flow f Flow f Value Slide 8 Min Cut = Max Flow cut s t X X _ Slide 9 Proof that Min Cut = Max Flow Lemma Proof Slide 10 Residual Flow and Augmenting paths residual capacity of edge e: res(e) = c(e) f (e) residual graph R: use modified capacities c ( e)=res(e) for res(e) > 0 augmenting path p for flow f is path in R from s to t res(p) = min (res(e)) e p Slide 11 Characterization of Residual Flow Lemma: R has max flow value value ( f *) value ( f ), where f * is the max flow of G. Proof: If f is flow in R, then f + f is flow of G. Also, f = f * f is a flow in R. Q.E.D. Slide 12 Flow f on a path Flow f on path p = (e 1, e 2, , e k ) e1e1 e2e2 ekek f ( e 1 ) f ( e k ) f ( e 2 ) Slide 13 Augmenting Flow residual res(p) = = min (c(e) f (e)) e p gives Augmented flow f + res(p) ts e1e1 e2e2 ekek f ( e 1 ) + f ( e k ) + f ( e 2 ) + Slide 14 Flow f and Augmenting Flow in Residual Network s cd ba t 3 3 3 4 3 2 4 1 f = 0 f = 2 f = 3 f = 1 Saturated Edge Network with Flow s cd ba t 3 2 3 22 2 1 1 3 1 2 1 Residual Network Augmenting Path (s,b,d,a,c,t) Saturated Edge Slide 15 Min Cut = Max Flow min cut: cut of minimum capacity max flow: max (value ( f )) f is flow X X s t _ Cut Slide 16 Example of Min Cut = Max Flow Max Flow = Min Cut = 6 Edges Labeled (Capacity, Flow) Slide 17 Ford-Fulkerson Proof of Min Cut = Max Flow Slide 18 Bounding Flow augmentations give Max Flow Lemma: At most |E| flow augmentations are required to construct max flow. Slide 19 Improving Flow by Augmenting Flow from Residue graph Slide 20 Blocking Flow Definitions given flow f saturated edge e has f(e)=c(e) blocking flow f : every path from s to t has saturated edge (so cannot augment flow!) Idea: Re-route flow if it is blocking Slide 21 Shortest Augmenting paths via level Graph Level Graph L is subgraph of residual graph R Note L gives shortest augmenting paths Construct L in O(|V|+|E|) time by Breadth First Search of R Slide 22 Dinics Flow Algorithm Input: network G=(V,E) s.t. capacities c i : (E E R ) R + Initialization: Slide 23 Dinics Flow Algorithm (contd) Loop: Slide 24 Proof of Dinics Flow Algorithm (contd) Theorem Dinics Algorithm halts after |V| blocking steps Proof Suppose f is flow with R = residual graph (currently) level (v) = min length path from s to v in R R' = new residual graph level ' (v) = min length of path s to v in R' Slide 25 Proof of Dinics Flow Algorithm (contd) Claimlevel ' (t) > level (t) Proof(by contradiction) If level (t) = level ' (t), then level (w) = level (v)+1 for every edge (v,w) L. This contradicts the fact that at least one edge is saturated (on the blocking flow) on any path p in L. Q.E.D. Hence n steps suffice for the algorithm Slide 26 Example of Dinics Flow Algorithm (contd) Network 3 s cd ba t 3 3 4 3 2 4 1 Slide 27 Example of Dinics Flow Algorithm (contd) 1st Level Graph with Blocking Flow s cd ba t 3 3 3 4 3 2 4 1 f = 1 f = 3 f = 2 f = 1 f = 3 f = 0 f = 1 level 1 level 2 level 3 level 0 Slide 28 Example of Dinics Flow Algorithm (contd) 2nd Level Graph with Blocking Flow s c d ba t 3 2 3 2 f = 1 f = 0 f = 1 level 1 level 2 level 3 level 0 1 level 4 Slide 29 Example of Dinics Flow Algorithm (contd) 3rd Level Graph with Blocking Flow s c d b a t 2 2 2 1 f = 1 level 0 2 level 5 Slide 30 Example of Dinics Flow Algorithm (contd) Final Flow s cd ba t 3 3 3 4 3 2 4 f = 1 f = 3 f = 2 f = 3 f = 1 1 Slide 31 Finding a Blocking Flow by Karzanov Preflow j: (1) Satisfies capacities constraints (2) May have unbalanced vertices where Slide 32 Finding a Blocking Flow (contd) Wave method: begin with blocking preflow f (saturates on edge on every path s to t ) balance vertices so f(v) = 0 to get blocking flow Slide 33 Finding a Blocking Flow (contd) To balance blocked vertex v: Repeat (until f(v) = 0) do choose edge (u,v) with f(u,v) > 0 decrease f(u,v) by min (f(uv), f(v)) Slide 34 Finding a Blocking Flow (contd) To attempt to balance unblocked vertex v : Repeat (until f ( v ) = 0, or there is not an unsaturated edge ( v,w ) where w is unblocked). do choose some such edge ( v,w ) and decrease f ( v,w ) by min ( C ( v,w )- f ( v,w ), f ( v )). Slide 35 Finding a Blocking Flow (contd) Wave Algorithm for Blocking Flow Initialize: with preflow that saturates every edge out of s and otherwise 0. St c(e 1 ) c(e k ) 0 0 0 0 Slide 36 Example of Finding a Blocking Flow (contd) Edges Labeled (Capacity, Flow) Increased Flow to Blocked vertex d Decreased Flow Balanced at vertex d But Blocked vertex c Slide 37 Example of Finding a Blocking Flow (contd) Edges Labeled (Capacity, Flow) Decreased Flow All vertices Balanced Decreased Flow Balanced vertex c But Blocked vertex a Slide 38 Finding a Blocking Flow (contd) Set s blocked, and set V-{s} all unblocked. Repeat until there are no unbalanced vertices do Increase flow: Scan all vertices between t,s in topological order, balancing every vertex v that is unbalanced and unblocked. (If balancing fails, make v blocked.) Decrease flow: Scan vertices in reverse topological order, balancing each vertex that is unbalanced and blocked. Slide 39 Proof of O (n 2 ) Time for Finding a Blocking Flow Theorem: Wave Algorithm computes a blocking flow in O(n 2 ) time (and hence a max flow in O(n 3 ) time). Proof (use invariants): (1) If v blocked every path from v to t has saturated edge. (2) The preflows constructed by algorithm are blocking. Slide 40 Proof of O (n 2 ) Time for Finding a Blocking Flow (contd) Modify: s blocked, and departing edges saturated. Inductive Step: (a) Scanning in topological order in increase flow guarantees no unblocked, unbalanced vertices. (b) Scanning in reverse topological order guarantees every blocked vertex gets balanced. Slide 41 Proof of O (n 2 ) Time for Finding a Blocking Flow (contd) Note: Each step blocks at least 1 vertex at most n steps flow on edge e increases and decreases at most once total time O(|V| 2 + |E|) = O(|V| 2 ) = O (n 2 ) Slide 42 Improved Flow Algorithms Can use data structures to decrease blocking flow algorithms to O(|E| log|V|) time, giving Theorem Max flow can be computed in O(|V||E| log|V|) time. Slide 43 0-1 Flow Algorithms Special Case: Theorem (Evan and Tarjan) Slide 44 Unit Flow Unit Network: All capacities Z and every vertex v other than s or t has Claim: If Unit Network G has max flow f, then max level is Proof: G can be decomposed into value(f ) vertex-disjoint paths from s to t. so value (f ) (level-1) |V| Slide 45 Illustration of Unit Flow st level G is decomposed into value(f ) vertex-disjoint paths from s to t. Slide 46 Unit Flow Algorithms Slide 47 s-t Vertex Separator s-t Vertex Separator S V : if all paths from s to t contain v S. Mengers Theorem: The size of the smallest s,t Vertex Separator S is exactly the same as the number of vertex disjoint paths from s to t. Slide 48 Illustration of s-t Vertex Separator S Slide 49 Solving Vertex Connectivity via Flow Transform Vertex Connectivity to Unit Network Flow Problem Slide 50 Time for Solving Vertex Connectivity via Flow Total Time O(|V| |E| log(E)) to compute s-t Vertex Connectivity N ( s,t ) (from s to t ). N(s,t) = number of disjoint paths from s to t. Slide 51 Vertex Connectivity N(u,v) = min vertex cut size for (G, u, v) G undirected Slide 52 Bounding Vertex Connectivity Lemma Proof Q.E.D. (also true for edge connectivity) Slide 53 Algorithm for Vertex Connectivity Lemma: Proof: G S has at least 2 - components Slide 54 Proof of Algorithm for Vertex Connectivity Let b be any node in a component of G-S which does not have a. Thus, N(a,b) | S | = c(G). Q.E.D. Slide 55 Idea for Randomized Algorithm for Vertex Connectivity Idea: Choose at random a V. Slide 56 Randomized Algorithm for Vertex Connectivity (Melhorn & Students) Slide 57 Randomized Algorithm for Vertex Connectivity (contd) Theorem: Prob ( c ( G )) Proof: Let S be a Vertex Separator with Slide 58 Definition of Planar Graph G = (V,E) is a planar graph if G can be embedded on plane so no two edges cross. Slide 59 Dual of Planar Graph Dual: D(G)=(F, D(E)) F = faces of embedding D(E) = { {F i, F j }| e E is between F i, F j } Slide 60 Max Flow in Planar Graph Slide 61 Min Cost Cycle in Dual Graph D(G) separating s, t Slide 62 Definition of Outerplanar Embedded Graph G is outerplanar embedded if the planar embedding has face F 0 incident to all vertices. Slide 63 Algorithm for Max Flow in Outerplanar Embedded Graph Idea: To reduce to Min Cost Path Add new edge (s,t) with weight . Slide 64 Time Cost of Algorithm for Max Flow in Outerplanar Embedded Graph Slide 65 Developing an Efficient Algorithm for Max Flow in a General Planar Graph Lemma: [Reif] If (s,t) is a minimum cost path in D(G) from a face bounding on s to a face bounding on t, then any min cost cycle in D(G) separating s,t must contain an edge of (s,t). Slide 66 Illustration of (s,t) Path Separating s and t in Dual Graph D(G) Slide 67 Proof of Lemma Proof: Suppose not. Then we can shortcut any cycle of D(G) separating s,t to get a shorter one, using edges of the (s,t) path. Slide 68 Efficient Divide and Conquer Algorithm for Max Flow in a General Planar Graph Theorem: [Reif] The min cost flow in a planar graph can be computed in O(|V|log 2 |V|) time. Proof: Idea: use (s,t) cut in D(G) to guide a recursive divided and conquer algorithm. On each step, divide the (s,t) path in half and solve the problem on each half, separately, using s,t cut as separator. Slide 69 Illustration of an Efficient Divide and Conquer Algorithm for Max Flow in a General Planar Graph Slide 70 Flow Algorithms Prepared by John Reif, Ph.D. Distinguished Professor of Computer Science Duke University Analysis of Algorithms Week 9, Lecture 2