+ All Categories
Home > Documents > Advanced Algorithms Piyush Kumar (Lecture 5: Preflow Push) Welcome to COT5405.

Advanced Algorithms Piyush Kumar (Lecture 5: Preflow Push) Welcome to COT5405.

Date post: 01-Jan-2016
Category:
Upload: easter-price
View: 218 times
Download: 1 times
Share this document with a friend
Popular Tags:
24
Advanced Algorithms Advanced Algorithms Piyush Kumar Piyush Kumar (Lecture 5: Preflow Push) (Lecture 5: Preflow Push) Welcome to COT5405
Transcript

Advanced AlgorithmsAdvanced AlgorithmsAdvanced AlgorithmsAdvanced Algorithms

Piyush KumarPiyush Kumar(Lecture 5: Preflow Push)(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.

• 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 = 40

capacity

flow

s

2

3

4

5

6

7

t

15

5

30

15

10

8

15

9

6 10

10

10 15 4

4 0

f (e)e in to v f (e)

e out of v

0 f (e) c(e)

v( f ) f (e) e out of s

.

4

• 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

in to out of

( ) ( )e v e v

f e f e

0 f (e) c(e)

in out of

( ) ( ) ( ) .fe s e s

e v f e f e

1. Algorithm maintains preflow (not flow)2. Each vertex is associated with a height3. Flow is “downhill” 4. Vertices with excess are sometimes “lifted/relabeled”.

A PreflowTotal excess= flow out of s - flow into t

Nodes with +veExcess are calledActive

s

2

1

t

10/102/2 G:

5/5

3/3

7/10

e=9

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

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.

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?

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.

e=10

Preflow-Push AlgorithmInitialization example

s

21 t

10/10

2

G:

5

3s

21 t

10 10

2

5

3

Gf:

10/10

e=10

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 possibler = min (e[u], c(u,v) – f(e))Increase f(e) by r.

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 possibler = min (e[u], f(e))Decrease f(e) by r.

The preflow push algorithm will try to push fromActive nodes towards the sink (maintaining compatibility with the labelling/heights of the nodes)

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

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

Preflow push demoPreflow push demoPreflow push demoPreflow push demo

Invariants

1. The labels are >= 0 and integers2. 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.

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.

0 ( ) ( ) ( ) .in outf

v B v B

e v f v f v

What happens to edges inside B?If e has only its head in B?If e has only its tail in B? –fout(B)

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

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?)

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?

Lemma: Non-Saturating Pushes

Potential Functions Argument

• Lemma: The number of non-saturating push operations is bounded by 4mn2

• Pf: Define: : ( ) 0

0 ( , ) ( )fv e v

f h h v

A non saturating push decreases it by at least 1.A saturating push increases it by at most 2n-1A relabel increases it by exactly 1.

If we pick the active node at maximum heightFor pushing, we can get O(n^3) non-sat. pushes.

Modifications• A simple modification gives O(n3). • Theorem: The total running time of

the algorithm is upper bounded by O(mn2)

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


Recommended