0% found this document useful (0 votes)
28 views

Push Relabel

The document describes a preflow-push algorithm for finding the maximum flow in a flow network. It starts with an initial preflow and iteratively selects active nodes to push excess flow out along admissible arcs or relabel nodes until no more improvements can be made, at which point the preflow is maximal.

Uploaded by

aryatel26
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views

Push Relabel

The document describes a preflow-push algorithm for finding the maximum flow in a flow network. It starts with an initial preflow and iteratively selects active nodes to push excess flow out along admissible arcs or relabel nodes until no more improvements can be made, at which point the preflow is maximal.

Uploaded by

aryatel26
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 70

Primal-Dual Algorithm

Self-reducibility Incremental

Dynamic Program

Divide-and-Conquer Primal Primal-Dual

Local
Greedy
Ratio
Primal-Dual
 An optimality condition comes from the
primal-dual theorem e.g., max-flow=min-cut.
 Start from a pre-solution satisfying the
optimality condition.
 A pre-solution is not feasible, but
approaching to feasibility step by step.
 Eventually, the pre-solution becomes a
feasible solution which is optimal.
Primal-Feasible
Consider a maximization problem

Optimality condition:
Max Primal = Min Dual
Optimal solution

Primal feasible solutions


Dual Feasible
Consider a maximization problem

Dual feasible solutions coincide with pre-primal solution

Optimal solution
Optimality condition:
Max Primal = Min Dual
Lecture 16

Max Flows 3
Preflow-Relable Algorithms
Review
The Ford Fulkerson Maximum Flow Algorithm

Begin x := 0;
create the residual network G(x);
while there is some directed path from s to t in G(x)
do
begin
let P be a path from s to t in G(x);
∆:= δ(P);
send ∆ units of flow along P;
update the r's;
End
end {the flow x is now maximum}.
The two properties of distance label and this lemma
hold during the whole process of the algorithm
and will be proved after descriptio n of the algorithm.
Push: Saturating

4 3
2 1

1 3 3
2 1
Push: Non-Saturating

3 4
2 1

0 3
1
2 1

3
Relabel

2 3
4 Min{3,5}+1=4
3
2 5
1
1
1

2 3
4
3
4 5
1
1
1
e(3)=1
Exact distance: d(i) equals the length of the shortest
path from node i to node t in G(x)
The Goldberg-Tarjan Preflow
Push Algorithm for the
Maximum Flow Problem
Preflow Push

4
2 5
3 1 1 1
2 4
s 4 t
3 2
1

3
This is the original network,
and the original residual
network.
Initialize Distances

4
5
2 5
1
3 1 1 1
4
2 4
3
s
2 4
1 0t
2 2 s 3 2
1
1 3 4 5
0 t 3
1

The node label henceforth will be the distance label.


d(j) is at most the distance of j to t in G(x)
Saturate Arcs out of node s

s 3
4
5
2 5
1
3 1 1 1
4
2 4
3
s
2
6 4
1 0t
2 2 s 3 2 2
1
1 3 4 5
0 t 3
1
3

Saturate arcs out of node s.


Move excess to the adjacent arcs
Relabel node s after all incident arcs have been saturated.
Select, then relabel/push

s 3
4
5
2 5
1
3 1 1 1
4
2 4
3
s
2
6 4
1 0t
2 2 s 3 2 2
1
1 3 4 5
0 t 3
1
3
1

Select an active node, that is, one with excess


Push/Relabel
Update excess after a push
Select, then relabel/push

s 3
4
5
2 5
1
3 1 1 1
4
2 4
3
s
2
6 4
1 0t
2 2 3
s 3 2
1
1 3 4 5 2
0 t 3
1
2
1

Select an active node, that is, one with excess

No arc incident to the selected node is admissible. So


relabel.
Select, then relabel/push

s 3
4
5
2 5
1
3 1 1 1
4
2 4
3
s
2
6 4
1 0t
2 2 3
s 3 2
3
1
1 4 5 2
0 t 2
1

Select an active node, that is, one with excess

Push/Relabel
Select, then relabel/push

s 3 3
4
1
5
2 3
5
1
3 1 1 1
4
2 4
3
s
2
6 4
1 0t
2 2 3
s 3 3
2
1 4 5 1
2
0 t 2
1

Select an active node.

Push/Relabel
Select, then relabel/push

s 3
2
4
1
5
2 3
5
1
3 1 1 1
4
2 4
3
s
2
6 4
1 0t
2 2 3
s 3 3
2
1 4 5 1
2
0 t 2
1

Select an active node.

Push/Relabel
Select, then relabel/push

s 3
2
4
1
5
2 3
5
2
1
3 1 1
4 1
2 4
3
s
2
6 4
1 0t
2 2 3
s 5 3 3
2
1 4 5 1
2
0 t 2
1

Select an active node.

There is no incident admissible arc. So Relabel.


Select, then relabel/push

s 3
2
1
4
1
5
2 3
5
1
2
3 1 1
4 1
2 4
3
s
2
6 4
1 0t
2 2 3
s 5 3 4
2
3
1 4 1
2
0 t 2
1

Select an active node.

Push/Relabel
Select, then relabel/push

s 3
2
1
4
1
5
2 3
5
1
2
3
3 1 1
4 1
2 4
3 5
s
2
6 4
1 0t
2 2 3
s 5 3 4
2
3
1 4 1
2
0 t 2
1

Select an active node.

There is no incident admissible arc. So relabel.


Select, then relabel/push

s 3
2
1
4
1
5
2 3
5
1
2
3
3 1 1
4 1
2 4
3 5
s
2
6 4
1 0t
2 2 3
s 3 4
2
3
1 4 5 1
2
0 t 2
1

Select an active node.

Push/Relabel
Select, then relabel/push

s 1
4
2
5
2 2
5
1
2
3
3 1 1
4 1
2 4
3 5
s
2
6 4
1 0t
2 2 3
s 3 2
3
4
1 4 5 1
2
0 t 2
1

Select an active node.

Push/Relabel
Select, then relabel/push

s 1
4
2
5
4
2 2
5
1
2
3
3 1 1
4 2 1
2 4
3 5
s
2
6 4
1 0t
2 2 3
s 3 2
3
4
1 4 5 1
2
0 t 2
1

Select an active node.

Push/Relabel
Select, then relabel/push

s 1
4
2
5
2
4 2
5
1
2
3
3 1 1
4 2 1
2 4
3 5
s
2
6 4
1 0t
2 3 s 3 2
3
4
1 4 5 1
2
0 t 2
1

Select an active node.

Push/Relabel
Select, then relabel/push

s 1
4
1
5 5 2
4 3
1
2
5
3
3 1 1
4 2 1
2 4
3 5
s
2
6 4
1 0t
2 3 s 3 2
3
4
1 4 5 1
2
0 t 2
1

Select an active node.

Push/Relabel
Select, then relabel/push

s 1
4
1
5 5 2
4 3
1
2
5
3
3 1 1
4 2 1
2 4
3 5
s
2
6 4
1 0t
2 3 s 3 2
3
4
1 4 5 1
2
0 t 2
1

One can keep pushing flow between nodes 2 and 5 until


eventually all flow returns to node s.
There are no paths from nodes 2 and 5 to t, and there are
ways to speed up the last iterations.
Prove this lemma.
Push: Saturating

4 3
2 1

1 3 3
2 1
Push: Non-Saturating

3 4
2 1

0 3
1
2 1

3
Relabel

2 3
4 Min{3,5}+1=4
3
2 5
1
1
1

2 3
4
3
4 5
1
1
1
Relabel

2 3
4
3
2 5

Relabel will increase F and also increase  d (i ). 1


1
iV
1
(The total value that the relabel increases on F )

(The total value that the relabel increases on  d (i )) 2 3
iV

 2n 2 . 4
3
4 5
1
1
Min{3,5}+1=4 1
Push: Non-Saturating

F decreases at least 1.

Case 1 Case 2
3 4 1
3 4
2 1
2 1

0 3
1 0 4
2 1 1
2 1

3
3
Why there are at most nm saturating Pushes?

4 3 Consider an arc (i, j ).


d 1 d
After a saturating push, (i, j ) disappears
4 and ( j , i ) appears.
1 3 3
d 1 d
To make (i, j ) appear again, we have to
1 3 have a push at ( j , i ).
3
e e 1

For any node i, distance label d (i ) never


4 3 decreases. Thus, e  d  1, f  e  1 and
f 1 f
f  1  d  3.

Between two saturating pushes along (i, j ), d (i ) increases by value


at least 2. Moreover, d (i )  2n  1. Thus, there are at most n saturating
pushes on arc (i, j ).
Assignments

Read sections 7.3 and 7.6


Exercises
7.4

You might also like