Date post: | 01-Jan-2016 |
Category: |
Documents |
Upload: | easter-price |
View: | 218 times |
Download: | 1 times |
Advanced AlgorithmsAdvanced AlgorithmsAdvanced AlgorithmsAdvanced Algorithms
Piyush KumarPiyush Kumar(Lecture 5: Preflow Push)(Lecture 5: Preflow Push)
Welcome to COT5405
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
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)