Download presentation
Presentation is loading. Please wait.
Published byΙωάννα Γούσιος Modified over 6 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.