290 likes | 409 Views
UMass Lowell Computer Science 91.503 Analysis of Algorithms Prof. Karen Daniels Fall, 2006. Lecture 5 Wednesday, 10/4/06 Graph Algorithms: Part 2. Network Flow. Chapter 26. Basic Network Flow Concepts. 2. 3. 1. 1. 1. 3. 2. 3. Network Flow. edge weights. source.
E N D
UMass Lowell Computer Science 91.503Analysis of AlgorithmsProf. Karen DanielsFall, 2006 Lecture 5 Wednesday, 10/4/06 Graph Algorithms: Part 2
Network Flow Chapter 26
2 3 1 1 1 3 2 3 Network Flow edge weights source Goal: compute second set of edge weights <= capacities. sink weighted network flow in = flow out (except at source, sink) flow direction source: Sedgewick, Graph Algorithms
Network Flow Applications • Distribution Problems • move objects from place to place within network • examples: • merchandise • communications • traffic flow source: Sedgewick, Graph Algorithms
Network Flow Applications (continued) • Matching Problems • network represents ways to connect vertices • goal: choose connections to • cover vertex set • only touch each vertex once • examples: • job placement • minimum-distance point matching (2 point sets) source: Sedgewick, Graph Algorithms
Network Flow Applications(continued) • Cut Problems • remove edges to cut network into >= 2 pieces • examples: • network reliability • cutting supply lines source: Sedgewick, Graph Algorithms
2 3 1 1 1 3 2 3 Flow Definitions • Flow network G = (V, E) • directed graph • each edge (u,v) in E has capacity c(u,v) >= 0 • every vertex is on some path from source s to sink t • G is connected • |E| >= |V| - 1 capacity source: 91.503 textbook Cormen et al.
Flow Properties • Flow in G is f: VxV -> R satisfying: • Capacity Constraint: • Skew Symmetry: • Flow Conservation: • f (u,v) is net flow from vertex u to vertex v • positive flow entering vertex v: • positive flow entering a vertex other than source or sink must = positive flow leaving the vertex • Value of a flow f is total net flow out of source: source: 91.503 textbook Cormen et al.
Flow Properties (continued) • Lemma 26.1 • Let G=(V, E) be a flow network, and let f be a flow in G. Then: • Implicit summation notation: Exercise: show source: 91.503 textbook Cormen et al.
Flow Properties (continued)Flow Equilibrium D = amount of flow out of right set (and not into left set) B = amount of flow out of left set (and not into right set) C = amount of flow into right set from outside left set A = amount of flow into left set from outside right set x = amount of flow into left set from right set y = amount of flow into right set from left set EQUILIBRIUM requires A + x = B + y C + y = D + x A + C = B + D source: Sedgewick, Graph Algorithms
Controlling Network Flow open switches along path < 0,2,4,5> open switches along path < 0,1,3,5> 3 leave s 2 leave s 2 flow into t 3 flow into t reduce by 1 change switch at 1 to redirect flow to fill 1-4; add flow on < 0,2,3,5 > (maxflow results) increase by 1 source: Sedgewick, Graph Algorithms
Augmenting Flow on a Path 2 2 1 1 2 2 increase flow in <0,2> increase flow in <2,3> decrease flow in <1,3> flow increases from 3 to 4 1 1 2 increase flow on <1,4>,<4,5> source: Sedgewick, Graph Algorithms
Augmenting Path Sequences Try #1 Strategy: Keep trying until no augmenting path can be found. Same max flow in each case although strategy is greedy! • To show strategy always produces max flow, 3 key ideas: • augmenting paths • residual networks • cuts Try #3 Try #2 source: Sedgewick, Graph Algorithms
26.3 26.1 Residual Networks min capacity on augmenting path residual capacity flow network G and flow f residual network Gf and augmenting path flow=amount we can remove augmented flow in Gf augmented flow in G (no 0 edges are shown) source: 91.503 textbook Cormen et al.
s-t Cut Disconnects source from sink source: Sedgewick, Graph Algorithms
s-t Cut “Negative” flow edges are excluded from cut capacity. c(S,T)=24 c(S,T)=29 c(S,T)=26 Minimum cut is cut (S,T) whose capacity is minimum over alls-t cuts of network. What is it for this network? source: 91.503 textbook Cormen et al.
MaxFlow MinCut Theorem • If f is a flow in a flow network G=(V, E) with source s and sink t, then, equivalently: • 1. f is a maximum flow in G • 2. The residual network Gf contains no augmenting paths • 3. | f | = c(S,T) for some cut (S,T) of G source: 91.503 textbook Cormen et al.
MaxFlow MinCut TheoremProof Layout Lemma 26.1 Lemma 26.2 Lemma 26.3 Eq 26.4 Eq 26.6 Lemma 26.5 (2) -> (3) Corollary 26.4 (1) -> (2) Corollary 26.6 (3) -> (1) MaxFlow MinCut Theorem 26.7
General Approach source: 91.503 textbook Cormen et al.
With Residual Networks source: 91.503 textbook Cormen et al.
Analysis Q(|E|) time Time depends on method termination? O( |maxf | ) iterations, assuming integral capacities Each iteration of while loop can be executed in O(|E|) time = time to find path in residual network using BFS or DFS Total time = O( |E| |maxf | ) assuming integral capacities source: 91.503 textbook Cormen et al.
Shortest Augmenting PathsEdmonds-Karp source: Sedgewick, Graph Algorithms
Shortest Augmenting PathsEdmonds-Karp • Time is in O(|V||E|2): • Each iteration of while loop takes time in O(|E|) • Number of iterations is in O(|V||E|) • Shortest-path distance in residual network increases monotonically with each flow augmentation • Total number of augmentations is in O(|V||E|) • Proof Sketch: • Edge in residual network is critical on augmenting path if residual capacity of path is residual capacity of (u,v) • Critical edge disappears from residual network • Critical edge reappears only if net flow from u to v is decreased; happens only if (v,u) appears later on another augmenting path • From time (u,v) becomes critical to time it next becomes critical, distance of u from source increases by >= 2 • (u,v) becomes critical at most O(|V|) times