1 / 24

Advanced Algorithms

Advanced Algorithms. Piyush Kumar (Lecture 5: Preflow Push). Welcome to COT5405. Today. Preflow Push. Review: Augmenting Path. Maintains a flow in each iteration Finds a path in the residual graph Saturates the path to make progress. 2. 5. 9. 10. 15. 15. 10. 4. 5.

coye
Download Presentation

Advanced Algorithms

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. 2 5 9 10 15 15 10 4 5 s 3 6 t 8 10 15 4 6 10 15 4 7 30 Flows • 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: 0 4 0 0 0 4 0 4 4 0 0 0 0 capacity flow 0 0 Value = 4

  5. A Preflow • 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 • Algorithm maintains preflow (not flow) • Each vertex is associated with a height • Flow is “downhill” • Vertices with excess are sometimes “lifted/relabeled”.

  6. A Preflow Total excess = flow out of s - flow into t 1 7/10 Nodes with +ve Excess are called Active s 5/5 10/10 G: 2/2 3/3 2 t 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 Ef , h(v) <= h(w)+1 • Here Ef 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 Gf. • 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) = ce 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 Gf. • Cor: An s-t flow f is maximum when its compatible with labelling h.

  11. Preflow-Push AlgorithmInitialization example s G: 10/10 10/10 2 3 1 2 t s e=10 e=10 Gf: 5 10 10 2 3 1 2 t 5

  12. Basic Operation 1Push forward edge • Suppose e(u)>0, cf(u,v)>0, (u,v) in Ef (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 2Push backward edge • Suppose e(u)>0, cf(u,v)>0, (u,v) in Ef (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 3Lift/Relabel • When no push can be done from overflowing vertex (except s,t) • Suppose e[u]>0, and for all (u,v) in Ef : 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 ef(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 • The labels are >= 0 and integers • f is a preflow, if the capacities are integral, the preflows are integral. • The preflow f and labelling h are compatible. • The height of a node never decreases.

  18. Lemma • Lef f be a preflow. If excessf(v) > 0 then there is a path in Gf from v to source s. • Pf: Let A denote all the nodes that have a path to s in Gf. 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? –fout(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 2n2

  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 n2. • A only makes withdrawals, each for 1 or more. • B makes fewer than n2 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 PushesPotential Functions Argument • Lemma: The number of non-saturating push operations is bounded by 4mn2 • 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(n3). • Theorem: The total running time of the algorithm is upper bounded by O(mn2)

  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 pages

More Related