# Dinitz's algorithm for finding a maximum flow in a network' - PowerPoint PPT Presentation

PPT – Dinitz's algorithm for finding a maximum flow in a network' PowerPoint presentation | free to download - id: c6619-OThkZ The Adobe Flash plugin is needed to view this content

Get the plugin now

View by Category
Title:

## Dinitz's algorithm for finding a maximum flow in a network'

Description:

### A flow f, is defined as a function on the directed edges satisfying the following: ... The goal is to find the maximum flow from the source to the sink. 5. DA ... – PowerPoint PPT presentation

Number of Views:1717
Avg rating:3.0/5.0
Slides: 85
Provided by: bobby87
Category:
Tags:
Transcript and Presenter's Notes

Title: Dinitz's algorithm for finding a maximum flow in a network'

1
Dinitz's algorithm for finding a maximum flow
in a network.
• Presented by
• Ilan Kadar and Sivan Albagli

November 10, 2009
2
Content
• Introduction
• Ford and Fulkerson Algorithm
• Original Dinitz algorithm

2
2
November 10, 2009
DA
3
Introduction The max flow problem definition
• Capacitated directed graph G(V,E,c,s,t).
• The capacities are non-negative.

2
1
3
3
November 10, 2009
DA
4
Introduction The max flow problem definition
• A flow f, is defined as a function on the
directed edges satisfying the following
• Capacity constraint ?e?E 0?f(e)?c(e)
• Flow conservation ?v?V\s,t ?(v,u)?Ef(v,u) -
?(u,v)?Ef(u,v)0

4
4
November 10, 2009
DA
5
Introduction The max flow problem definition
• The goal is to find the maximum flow from the
source to the sink.

Q How do we know that the flow is maximum?
5
5
November 10, 2009
DA
6
Introduction Motivation
• Finding the maximal way to ship goods from a set
of factories to a set of stores.
• Bipartite matching

6
6
6
November 10, 2009
DA
7
Introduction Naïve algorithm
A
2
2
S
t
2
4
3
B
7
7
7
November 10, 2009
DA
8
Introduction Naïve algorithm
A
2
2
S
t
2
4
3
B
8
8
8
November 10, 2009
DA
9
Introduction Naïve algorithm
A
2/2
0/2
S
t
2/2
2/4
0/3
B
9
9
9
November 10, 2009
DA
10
Introduction Naïve algorithm
A
2/2
0/2
S
t
2/2
2/4
0/3
B
10
10
10
November 10, 2009
DA
11
Introduction Naïve algorithm
There is no path where one can increase the flow
Therefore, the algorithm terminates
11
11
11
November 10, 2009
DA
12
Introduction Naïve algorithm
Is it the maximum flow?
A
2/2
0/2
(Flow value 4)
S
t
2/2
4/4
2/3
B
12
12
12
November 10, 2009
DA
13
Introduction Naïve algorithm
Maximum flow 5
13
13
13
November 10, 2009
DA
14
Introduction Equivalent flow function
• For each edge add ,
• if doesnt exists, with capacity and flow
zero.

0
0
5
0
1
8
source
sink
s
t
1
2
0
2
G
0
0
14
14
14
November 10, 2009
DA
15
Introduction Equivalent flow function
• Define for each edge

15
15
15
November 10, 2009
DA
16
Introduction Equivalent flow function
v
DA
November 10, 2009
17
Introduction Equivalent flow function
• satisfy the following constraints
• Capacity constraint

17
17
17
DA
November 10, 2009
18
Introduction Equivalent flow function
• satisfy the following constraints
• 2. Skew symmetry

18
18
18
November 10, 2009
DA
19
Introduction Equivalent flow function
• satisfy the following constraints
• 3. Flow conservation

19
19
19
November 10, 2009
DA
20
Introduction Equivalent flow function
• The net flow from v is defined as
• The flow value is defined as the net flow from s

20
20
20
November 10, 2009
DA
21
Introduction Equivalent flow function
21
21
21
November 10, 2009
DA
22
Introduction Equivalent flow function
Edge is called saturated if
saturated
saturated
DA
November 10, 2009
23
Introduction Equivalent flow function
Unsaturated edges
unsaturated
unsaturated
DA
November 10, 2009
24
Introduction Equivalent flow function
Residual capacity (possibility to add flow)
cf 5-324
cf
cf 5-14
cf
DA
November 10, 2009
25
Introduction Equivalent flow function
We will use the second representation,
denoting it by f
DA
November 10, 2009
26
Ford and Fulkerson Algorithm
Define Gf(V,Ef) the residual network. Ef
- the unsaturated edges with capacity cf(u,v)c(
u,v)-f(u,v)gt0.
2
1
-1/0
-2/0
1
-1/0
1
0/0
-1/0
DA
November 10, 2009
27
Ford and Fulkerson Algorithm
A path is an augmenting path if it contains only
unsaturated edges. for example
DA
November 10, 2009
28
Ford and Fulkerson Algorithm
FordFulkerson(G,s,t) 1. initialize flow
f(v,u) to 0 2. while there exists an
augmenting path P do 3. augment flow
f along P 4. return f
Published in 1956
When no augmenting path exists, the current flow
is maximum (Ford Fulkerson Theorem).
DA
November 10, 2009
29
Ford and Fulkerson Algorithm
FordFulkerson(G,s,t) 1. for each edge
(u,v)? Ef do 2. f(u,v)?0 3.
f(v,u)?0 4. while there exists a path P from s
to t in the Gf do 5. cf(P) min
e?Pcf(e)gt0 6. for each edge (u,v) in P
do 7. f(u,v) ? f(u,v) cf(P)
8. f(v,u) ? f(u,v) - cf(P)
DA
November 10, 2009
30
Ford and Fulkerson Algorithm
Comments Notice that it is not certain that
E Ef, as sending flow on (u,v) might close
(u,v) (it is saturated), and may open a new edge
(v,u) in the residual network.
DA
November 10, 2009
31
Ford and Fulkerson Example
DA
November 10, 2009
32
Ford and Fulkerson Example
First iteration
DA
November 10, 2009
33
Ford and Fulkerson Example
First iteration continue
DA
November 10, 2009
34
Ford and Fulkerson Example
First iteration continue
DA
November 10, 2009
35
Ford and Fulkerson Example
Second iteration
DA
November 10, 2009
36
Ford and Fulkerson Example
Second iteration-continue
DA
November 10, 2009
37
Ford and Fulkerson Example
There is no path at the residual network Gf The
flow is maximal
DA
November 10, 2009
38
Ford and Fulkerson Time analysis
• With rational capacities, the algorithm will
always terminate.
• With irrational capacities, the algorithm may run
forever.
• Runtime is bounded by O(Ef) when the
capacities are integers.

DA
November 10, 2009
39
Ford and Fulkerson Problem 1 (Integer case)
• The algorithm runs in pseudo polynomial time

How many iterations??
DA
November 10, 2009
40
Ford and Fulkerson Problem 1 (Integer case)
• The algorithm runs in pseudo polynomial time

How many iterations??
2,000,000
DA
November 10, 2009
41
Ford and Fulkerson Problem 2 (General case)
• Convergence isnt guaranteed

DA
November 10, 2009
42
Ford and Fulkerson Open question?
• The question of the existence of a polynomial, or
finite algorithm, for the general case, remained
open, for almost 10 years.
• This was settled by Edmonds and Karp and by Y.
Dinitz independently, at the late 60s.
• Both algorithms are modifications of FF.

DA
November 10, 2009
43
Ford and Fulkerson Edmonds-Karp(1972)
• A small fix to the Ford-Fulkerson algorithm makes
it work in polynomial time.
• Compute the augmenting path using BFS on the
residual network.
• Run in time O(VE2)

DA
November 10, 2009
44
Dinitz Algorithm A Historical Remark
• The DA was invented in response to a
Algorithm class.

At that time, the author was not aware the basic
facts regarding FF
DA
November 10, 2009
45
Dinitz Algorithm Motivation
• All parts of an iteration of FF except of finding
an augmenting path P cost O(P).
• Finding an augmenting path is the bottleneck of
an iteration O(E).
• Improving FF by using a smart data structure.

DA
November 10, 2009
46
Dinitz Algorithm Motivation
• Example BFS Tree

DA
November 10, 2009
47
Dinitz Algorithm Motivation
• Example BFS Tree

DA
November 10, 2009
48
Dinitz Algorithm Motivation
DA
November 10, 2009
49
Dinitz Algorithm Motivation
s and t become disconnected in the BFS tree!
DA
November 10, 2009
50
Dinitz Algorithm Extended BFS
Dist dist from s
Dist2
Dist3
Dist4
Dist1
Dist3
Dist2
Dist3
Dist1
Dist2
Extended BFS includes the first edge found,
leading to each vertex from the previous layer.
DA
November 10, 2009
51
Dinitz Algorithm Layered Network L(s)
V4
V0
V3
V1
V2
Vi is the set of all nodes with distance i from
s Ei is the set of all edges going from Vi-1 to
Vi
DA
November 10, 2009
52
Dinitz Algorithm Layered Network L(s)
V4
V0
V3
V1
V2
L(s) (?Vi , ?Ei) the union of all shortest
paths from s in the graph.
DA
November 10, 2009
53
Dinitz Algorithm Layered Network Definitions
• Vi The i layer dist(v)i ? v?Vi
• Ei Edges from Vi -1 to Vi
• L(s) (?Vi , ?Ei) the union of all
shortest paths from s in the graph.

Running time of regular BFS Running time of
extended BFS
DA
November 10, 2009
54
Dinitz Algorithm Layered Network
DA
November 10, 2009
55
Dinitz Algorithm Layered Network next step
Goal we want to maintain our data structure as
the union of all the shortest paths from s to t.
How can it be done? Prune into Run
extended BFS from t on L(s), in the opposite edge
direction
DA
November 10, 2009
56
Dinitz Algorithm Layered Network next step
How can it be done? Prune into
L(s) in the opposite edge direction
Then run BFS from t on L(s)
DA
November 10, 2009
57
Dinitz Algorithm Layered Network next step
How can it be done? Prune into
DA
November 10, 2009
58
Dinitz Algorithm Layered Network
• Claim
• is the union of all the shortest paths
from s to t(Invariant).
• Property of
• Doesn't have vertices with no any incoming edge,
except s.
• Doesnt have vertices with no any outgoing edge,
except t.

DA
November 10, 2009
59
Dinitz Algorithm Augmenting path finding
• Just walk from s over . After l steps
t is reached.

1
1
2
2
1
1
1
DA
November 10, 2009
60
Dinitz Algorithm Augmenting path finding
• Remove the saturated edges.

1
1
2
2
1
1
1
DA
November 10, 2009
61
Dinitz Algorithm Augmenting path finding
• Just walk from s over . After l steps
t is reached

1
1
1
1
1
1
DA
November 10, 2009
62
• We might have vertices without outgoing edges
• We wish to remove them, so the next augmenting
path finding from s wont get stuck and will work
in O(l) time.

DA
November 10, 2009
63
• Initialize two queues Ql and Qr by the list of
saturated edges sat that were removed.
• Define two procedures
• Left pass
• Right Pass

DA
November 10, 2009
64
Dinitz Algorithm Cleaning dead ends Left Pass
1
1
2
2
1
1
1
(d,t)
Ql
DA
November 10, 2009
65
Dinitz Algorithm Cleaning dead ends Left Pass
1
1
2
2
1
(c,d)
1
(a,d)
Ql
DA
November 10, 2009
66
Dinitz Algorithm Cleaning dead ends Left Pass
1
1
2
1
(s,c)
Ql
DA
November 10, 2009
67
Dinitz Algorithm Cleaning dead ends Left Pass
1
1
2
(s,c)
Ql
DA
November 10, 2009
68
• After applying LeftPass all the vertices(except
t) have outgoing edge.
• After applying RightPass all the vertices(except
s) have incoming edge.
• Why we need both procedures???

DA
November 10, 2009
69
• No path in the layered network from s to t could
be removed.
• Next augmenting path of length l can be found in
O(l) time incase the cleaned layer is not
vanished.

DA
November 10, 2009
70
Dinitz Algorithm The original algorithm
Phase
Iteration
DA
November 10, 2009
71
Dinitz Algorithm The original algorithm
Constructing of the layered network using two
BFS-es, at the beginning of a phase costs
O(E).
Phase
Iteration
DA
November 10, 2009
72
Dinitz Algorithm The original algorithm
Phase
Augmenting path finding using a walk from s over
the layered network costs O(l)O(V) every time
thanks to the cleaning maintenance .
Iteration
DA
November 10, 2009
73
Dinitz Algorithm The original algorithm
Phase
Flow updating costs O(l)O(V) as well.
Iteration
DA
November 10, 2009
74
Dinitz Algorithm The original algorithm
Phase
Iteration
DA
November 10, 2009
75
Dinitz Algorithm The original algorithm
Phase
In practice a single iteration might cost
O(EV) because we should remove every edge
and vertex from the graph.
Iteration
DA
November 10, 2009
76
Dinitz Algorithm Time analysis
• Cost of the algorithm

O(iterations V Phases E)
E
V
How many Iterations? How many Phases?
DA
November 10, 2009
77
Dinitz Algorithm Time analysis
• Intuition After any iteration, there is no
augmenting path of length less then l.

s
t
Augmenting path
New path
DA
November 10, 2009
78
Dinitz Algorithm Time analysis
• If there are paths of length l they are contained
in

s
t
Augmenting path
New path
DA
November 10, 2009
79
Dinitz Algorithm Time analysis
• In the end of the phase(when the layer vanish),
doesnt contain paths of length l.
• We can prove that the residual network doesnt
contain paths of length l.
• Conclusion The length of the layered network
grows from phase to phase.

DA
November 10, 2009
80
Dinitz Algorithm Time analysis
- In every iteration at least one edge is being
removed (min edge of path augmenting). - At
most E edges are being removed during a phase
? There are at most E iterations during a
phase.
Phase
Iteration
DA
November 10, 2009
81
Dinitz Algorithm Time analysis
Constructing of the layered network
O(E) Path finding and capacity updating
O(l)O(V). It is done at most E times during
a phase. Maintenance of the layered network
O(E). So, a phase costs O(EEVE)O(E
V).
Phase
Phase
Iteration
DA
November 10, 2009
82
Dinitz Algorithm Time analysis
- Distance(s,t)?V-1 ? There are at most V-1
phases in DA
Phase
Iteration
DA
November 10, 2009
83
Dinitz Algorithm Time analysis
DA running time is O(EVV) O(V2E)
Phase
Iteration
DA
November 10, 2009
84
Further Progress