Presentation is loading. Please wait.

Presentation is loading. Please wait.

UMass Lowell Computer Science 91.503 Analysis of Algorithms Prof. Karen Daniels Fall, 2006 Lecture 5 Wednesday, 10/4/06 Graph Algorithms: Part 2.

Similar presentations


Presentation on theme: "UMass Lowell Computer Science 91.503 Analysis of Algorithms Prof. Karen Daniels Fall, 2006 Lecture 5 Wednesday, 10/4/06 Graph Algorithms: Part 2."— Presentation transcript:

1 UMass Lowell Computer Science 91.503 Analysis of Algorithms Prof. Karen Daniels Fall, 2006 Lecture 5 Wednesday, 10/4/06 Graph Algorithms: Part 2

2 Network Flow Chapter 26

3 Basic Network Flow Concepts

4 Network Flow source: Sedgewick, Graph Algorithms weighted network edge weights Goal: compute second set of edge weights <= capacities. flow direction source sink flow in = flow out (except at source, sink) 2 3 2 3 3 1 1 1

5 Network Flow Applications Distribution ProblemsDistribution Problems move objects from place to place within networkmove objects from place to place within network examples:examples: merchandisemerchandise communicationscommunications traffic flowtraffic flow source: Sedgewick, Graph Algorithms

6 Network Flow Applications (continued) Matching ProblemsMatching Problems network represents ways to connect verticesnetwork represents ways to connect vertices goal: choose connections togoal: choose connections to cover vertex setcover vertex set only touch each vertex onceonly touch each vertex once examples:examples: job placementjob placement minimum-distance point matching (2 point sets)minimum-distance point matching (2 point sets) source: Sedgewick, Graph Algorithms

7 Network Flow Applications (continued) Cut ProblemsCut Problems remove edges to cut network into >= 2 piecesremove edges to cut network into >= 2 pieces examples:examples: network reliabilitynetwork reliability cutting supply linescutting supply lines source: Sedgewick, Graph Algorithms

8 Flow Definitions Flow network G = (V, E)Flow network G = (V, E) directed graphdirected graph each edge (u,v) in E has capacity c(u,v) >= 0each edge (u,v) in E has capacity c(u,v) >= 0 every vertex is on some path from source s to sink tevery vertex is on some path from source s to sink t G is connectedG is connected |E| >= |V| - 1|E| >= |V| - 1 source: 91.503 textbook Cormen et al. 2 3 2 3 3 1 1 1 capacity

9 Flow Properties Flow in G is f: VxV -> R satisfying:Flow in G is f: VxV -> R satisfying: Capacity Constraint:Capacity Constraint: Skew Symmetry:Skew Symmetry: Flow Conservation:Flow Conservation: f (u,v) is net flow from vertex u to vertex vf (u,v) is net flow from vertex u to vertex v positive flow entering vertex v:positive flow entering vertex v: positive flow entering a vertex other than source or sink must = positive flow leaving the vertexpositive 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:Value of a flow f is total net flow out of source: source: 91.503 textbook Cormen et al.

10 Flow Properties (continued) Lemma 26.1 Lemma 26.1 Let G=(V, E) be a flow network, and let f be a flow in G. Then: Let G=(V, E) be a flow network, and let f be a flow in G. Then: Implicit summation notation: Implicit summation notation: source: 91.503 textbook Cormen et al. Exercise: show

11 source: Sedgewick, Graph Algorithms Flow Properties (continued) Flow Equilibrium A = amount of flow into left set from outside right 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 D = amount of flow out of right set (and not into left set) y = amount of flow into right set from left set x = amount of flow into left set from right set EQUILIBRIUM requires A + x = B + y C + y = D + x A + C = B + D

12 Controlling Network Flow source: Sedgewick, Graph Algorithms open switches along path open switches along path change switch at 1 to redirect flow to fill 1-4; add flow on (maxflow results) 2 leave s 2 flow into t 3 leave s 3 flow into t increase by 1 reduce by 1

13 Augmenting Paths

14 Augmenting Flow on a Path source: Sedgewick, Graph Algorithms increase flow in 2 2 2 2 decrease flow in increase flow on, 1 1 1 1 2 flow increases from 3 to 4

15 Augmenting Path Sequences source: Sedgewick, Graph Algorithms Try #1 Try #2 Try #3 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: 1) 1)augmenting paths 2) 2)residual networks 3) 3)cuts

16 Residual Networks

17 source: 91.503 textbook Cormen et al. flow network G and flow f residual network G f and augmenting path augmented flow in G augmented flow in G f min capacity on augmenting path 26.3 26.1 residual capacity flow = amount we can remove (no 0 edges are shown)

18 Cuts

19 s-t Cut source: Sedgewick, Graph Algorithms Disconnects source from sink

20 s-t Cut source: 91.503 textbook Cormen et al. c(S,T)=29 c(S,T)=26 c(S,T)=24 “Negative” flow edges are excluded from cut capacity. Minimum cut is cut (S,T) whose capacity is minimum over all s-t cuts of network.

21 MaxFlow MinCut Theorem If f is a flow in a flow network G=(V, E) with source s and sink t, then, equivalently: 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 1. f is a maximum flow in G 2. The residual network G f contains no augmenting paths 2. The residual network G f contains no augmenting paths 3. | f | = c(S,T) for some cut (S,T) of G 3. | f | = c(S,T) for some cut (S,T) of G source: 91.503 textbook Cormen et al.

22 MaxFlow MinCut Theorem Proof Layout Lemma 26.1 Lemma 26.2 Lemma 26.3 Corollary 26.4 Lemma 26.5 Corollary 26.6 Eq 26.6 Eq 26.4 MaxFlow MinCut Theorem 26.7 (3) -> (1) (1) -> (2) (2) -> (3)

23 Ford-Fulkerson MaxFlow Method

24 General Approach source: 91.503 textbook Cormen et al.

25 With Residual Networks source: 91.503 textbook Cormen et al.

26

27 Analysis source: 91.503 textbook Cormen et al. Time depends on method termination?  (|E|) time  ( | max f | ) 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 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 =  ( |E| | max f | ) assuming integral capacities Total time =  ( |E| | max f | ) assuming integral capacities

28 Shortest Augmenting Paths Edmonds-Karp source: Sedgewick, Graph Algorithms

29 Shortest Augmenting Paths Edmonds-Karp Time is in O(|V||E| 2 ):Time is in O(|V||E| 2 ): Each iteration of while loop takes time in O(|E|)Each iteration of while loop takes time in O(|E|) Number of iterations is in O(|V||E|)Number of iterations is in O(|V||E|) Shortest-path distance in residual network increases monotonically with each flow augmentationShortest-path distance in residual network increases monotonically with each flow augmentation Total number of augmentations is in O(|V||E|)Total number of augmentations is in O(|V||E|) Proof Sketch:Proof Sketch: Edge in residual network is critical on augmenting path if residual capacity of path is residual capacity of (u,v)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 networkCritical 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 pathCritical 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 >= 2From 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(u,v) becomes critical at most O(|V|) times


Download ppt "UMass Lowell Computer Science 91.503 Analysis of Algorithms Prof. Karen Daniels Fall, 2006 Lecture 5 Wednesday, 10/4/06 Graph Algorithms: Part 2."

Similar presentations


Ads by Google