Presentation is loading. Please wait.

Presentation is loading. Please wait.

Edmunds-Karp Algorithm: Choosing Good Augmenting Paths

Similar presentations


Presentation on theme: "Edmunds-Karp Algorithm: Choosing Good Augmenting Paths"— Presentation transcript:

1 Edmunds-Karp Algorithm: Choosing Good Augmenting Paths
Use care when selecting augmenting paths. Some choices lead to exponential algorithms. Clever choices lead to polynomial algorithms. Goal: choose augmenting paths so that: Can find augmenting paths efficiently. Few iterations. Edmonds-Karp (1972): choose augmenting path with Max bottleneck capacity. (fat path) Sufficiently large capacity. (capacity-scaling) Fewest number of arcs. (shortest path)

2 Shortest Augmenting Path
Intuition: choosing path via breadth first search. Easy to implement. may implement by coincidence! Finds augmenting path with fewest number of arcs. FOREACH e  E f(e)  0 Gf  residual graph WHILE (there exists augmenting path) find such a path P by BFS f  augment(f, P) update Gf RETURN f ShortestAugmentingPath(V, E, s, t)

3 Shortest Augmenting Path: Overview of Analysis
L1. Throughout the algorithm, the length of the shortest path never decreases. Proof ahead. L2. After at most m shortest path augmentations, the length of the shortest augmenting path strictly increases. Theorem. The shortest augmenting path algorithm runs in O(m2n) time. O(m+n) time to find shortest augmenting path via BFS. O(m) augmentations for paths of exactly k arcs. If there is an augmenting path, there is a simple one.  1  k < n  O(mn) augmentations.

4 Shortest Augmenting Path: Analysis
Level graph of (V, E, s). For each vertex v, define (v) to be the length (number of arcs) of shortest path from s to v. LG = (V, EG) is subgraph of G that contains only those arcs (v,w)  E with (w) = (v) + 1. 2 5 G: s 3 6 t 2 5 LG: s 3 6 t  = 0  = 1  = 2  = 3

5 Shortest Augmenting Path: Analysis
Level graph of (V, E, s). For each vertex v, define (v) to be the length (number of arcs) of shortest path from s to v. L = (V, F) is subgraph of G that contains only those arcs (v,w)  E with (w) = (v) + 1. Compute in O(m+n) time using BFS, deleting back and side arcs. P is a shortest s-v path in G if and only if it is an s-v path L. 2 5 L: s 3 6 t  = 0  = 1  = 2  = 3

6 Shortest Augmenting Path: Analysis
L1. Throughout the algorithm, the length of the shortest path never decreases. Let f and f' be flow before and after a shortest path augmentation. Let L and L' be level graphs of Gf and Gf ' Only back arcs added to Gf ' path with back arc has length greater than previous length 2 5 L s 3 6 t  = 0  = 1  = 2  = 3 2 5 L' s 3 6 t

7 Shortest Augmenting Path: Analysis
L2. After at most m shortest path augmentations, the length of the shortest augmenting path strictly increases. At least one arc (the bottleneck arc) is deleted from L after each augmentation. No new arcs added to L until length of shortest path strictly increases. 2 5 L s 3 6 t  = 0  = 1  = 2  = 3 2 5 L' s 3 6 t

8 Shortest Augmenting Path: Review of Analysis
L1. Throughout the algorithm, the length of the shortest path never decreases. L2. After at most m shortest path augmentations, the length of the shortest augmenting path strictly increases. Theorem. The shortest augmenting path algorithm runs in O(m2n) time. O(m+n) time to find shortest augmenting path via BFS. O(m) augmentations for paths of exactly k arcs. O(mn) augmentations. Note: (mn) augmentations necessary on some networks.

9 m3/2 log (n2 / m) log U mn2/3 log (n2 / m) log U
History Year Discoverer Method Big-Oh 1951 Dantzig Simplex mn2U 1955 Ford, Fulkerson Augmenting path mnU 1970 Edmonds-Karp Shortest path m2n 1970 Dinitz Shortest path mn2 1972 Edmonds-Karp, Dinitz Capacity scaling m2 log U 1973 Dinitz-Gabow Capacity scaling mn log U 1974 Karzanov Preflow-push n3 1983 Sleator-Tarjan Dynamic trees mn log n 1986 Goldberg-Tarjan FIFO preflow-push mn log (n2 / m) . . . . . . . . . . . . 1997 Goldberg-Rao Length function m3/2 log (n2 / m) log U mn2/3 log (n2 / m) log U


Download ppt "Edmunds-Karp Algorithm: Choosing Good Augmenting Paths"

Similar presentations


Ads by Google