Download presentation
Presentation is loading. Please wait.
Published byEaster Price Modified over 9 years ago
1
Advanced Algorithms Piyush Kumar (Lecture 5: Preflow Push) Welcome to COT5405
2
Today Preflow Push
3
Review: Augmenting Path Maintains a flow in each iteration Finds a path in the residual graph Saturates the path to make progress.
4
Def. An s-t flow is a function that satisfies: –For each e E: (capacity) –For each v V – {s, t}: (conservation) Def. The value of a flow f is: Flows 4 0 0 0 0 0 0 4 4 0 0 0 Value = 4 0 capacity flow s 2 3 4 5 6 7 t 15 5 30 15 10 8 15 9 6 10 15 4 4 0 4
5
Def. An preflow is a function that satisfies: –For each e E: (capacity) –For each v V – {s, t}: (weak conservation) Def. The excess of a preflow f at node v : –Required to be non-negative except s,t A Preflow 1.Algorithm maintains preflow (not flow) 2.Each vertex is associated with a height 3.Flow is “downhill” 4.Vertices with excess are sometimes “lifted/relabeled”.
6
A Preflow Total excess = flow out of s - flow into t Nodes with +ve Excess are called Active s 2 1 t 10/10 2/2 G: 5/5 3/3 7/10 e=9
7
Labelling/Height function H: V -> N –Source and Sink condition h(s) = n h(t) = 0 –Steepness condition For all (v,w) in E f, h(v) <= h(w)+1 Here E f is the residual graph. Invariant Compatibility of preflows and labellings
8
Lemma If s-t preflow f is compatible with the labelling h, then there is no s-t path in the residual graph G f. Cor: If s-t flow f is compatible with a labelling h, then f is a flow of maximum value.
9
Initial Preflow f h(v) = 0 for all v <> s h(s) = n f(e) = c e for all e=(s,v) f(e) = 0 for all other edges. The algorithm gradually transforms a preflow to a flow. Why?
10
Lemma An s-t preflow f is compatible with a labelling h, then there is no s-t path in the residual graph G f. Cor: An s-t flow f is maximum when its compatible with labelling h.
11
e=10 Preflow-Push Algorithm Initialization example s 2 1 t 10/10 2 G: 5 3 s 2 1 t 10 2 5 3 G f : 10/10 e=10
12
Basic Operation 1 Push forward edge Suppose e(u)>0, c f (u,v)>0, (u,v) in E f (u,v) is a forward edge h[u]= h[v]+1 Push as much flow across (u,v) as possible r = min (e[u], c(u,v) – f(e)) Increase f(e) by r.
13
Basic Operation 2 Push backward edge Suppose e(u)>0, c f (u,v)>0, (u,v) in E f (u,v) is a backward edge h[u]= h[v]+1 Push as much flow across (u,v) as possible r = min (e[u], f(e)) Decrease f(e) by r. The preflow push algorithm will try to push from Active nodes towards the sink (maintaining compatibility with the labelling/heights of the nodes)
14
Basic Operation 3 Lift/Relabel When no push can be done from overflowing vertex (except s,t) Suppose e[u]>0, and for all (u,v) in E f : h[u] h[v], u s, u t –Set h[u] = h[u] + 1
15
Preflow-Push Initialize While there is a node v <> t with e f (v) > 0 –If w such that push (f,h,v,w) is possible Push(f,h,v,w) –Else Relabel(f,h,v) E
16
Preflow push demo
17
Invariants 1.The labels are >= 0 and integers 2. f is a preflow, if the capacities are integral, the preflows are integral. 3.The preflow f and labelling h are compatible. 4.The height of a node never decreases.
18
Lemma Lef f be a preflow. If excess f (v) > 0 then there is a path in G f from v to source s. Pf: Let A denote all the nodes that have a path to s in G f. B = V \ A. What happens to edges inside B? If e has only its head in B? If e has only its tail in B? –f out (B)
19
Lemmas The height of a node is upper bounded by 2n-1. Cor: Each node is relabeled at most 2n-1 times, hence total relabels is upper bounded by 2n 2
20
Lemma: Saturating Pushes Throughout the algorithm, the number of saturating push operations is at most 2mn. Pf: Look at a saturating push along an edge. When can another saturating push happen thru the same edge? (If it needs lifting, how many lifts can one do on such a node in total?)
21
Potential function arguments Consider a joint bank account held by A, B, and C The account starts with an initial deposit of at most n 2. –A only makes withdrawals, each for 1 or more. –B makes fewer than n 2 deposits. Each deposit is for at most 1. –C makes fewer than nm withdrawals and deposits. Each deposit is for at most n. –The account never goes below 0. What is the maximum number of withdrawals for A?
22
Lemma: Non-Saturating Pushes Potential Functions Argument Lemma: The number of non-saturating push operations is bounded by 4mn 2 Pf: Define: A non saturating push decreases it by at least 1. A saturating push increases it by at most 2n-1 A relabel increases it by exactly 1. If we pick the active node at maximum height For pushing, we can get O(n^3) non-sat. pushes.
23
Modifications A simple modification gives O(n 3 ). Theorem: The total running time of the algorithm is upper bounded by O(mn 2 )
24
References R.K. Ahuja, T.L. Magnanti, and J.B. Orlin. Network Flows. Prentice Hall, 1993. (Reserved in Dirac) K. Mehlhorn and S. Naeher. The LEDA Platform for Combinatorial and Geometric Computing. Cambridge University Press, 1999. 1018 pagesThe LEDA Platform for Combinatorial and Geometric Computing
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.