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

Loading...

PPT – Dinitz's algorithm for finding a maximum flow in a network' PowerPoint presentation | free to download - id: c6619-OThkZ



Loading


The Adobe Flash plugin is needed to view this content

Get the plugin now

View by Category
About This Presentation
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:1499
Avg rating:3.0/5.0
Slides: 85
Provided by: bobby87
Learn more at: http://www.cs.bgu.ac.il
Category:

less

Write a Comment
User Comments (0)
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
IntroductionThe 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
IntroductionThe 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
IntroductionThe 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
IntroductionMotivation
  • 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
IntroductionNaïve algorithm
A
2
2
S
t
2
4
3
B
7
7
7
November 10, 2009
DA
8
IntroductionNaïve algorithm
A
2
2
S
t
2
4
3
B
8
8
8
November 10, 2009
DA
9
IntroductionNaïve algorithm
A
2/2
0/2
S
t
2/2
2/4
0/3
B
9
9
9
November 10, 2009
DA
10
IntroductionNaïve algorithm
A
2/2
0/2
S
t
2/2
2/4
0/3
B
10
10
10
November 10, 2009
DA
11
IntroductionNaïve algorithm
There is no path where one can increase the flow
Therefore, the algorithm terminates
11
11
11
November 10, 2009
DA
12
IntroductionNaï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
IntroductionNaïve algorithm
Maximum flow 5
13
13
13
November 10, 2009
DA
14
IntroductionEquivalent 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
IntroductionEquivalent flow function
  • Define for each edge

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

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

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

19
19
19
November 10, 2009
DA
20
IntroductionEquivalent 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
IntroductionEquivalent flow function
21
21
21
November 10, 2009
DA
22
IntroductionEquivalent flow function
Edge is called saturated if
saturated
saturated
DA
November 10, 2009
23
IntroductionEquivalent flow function
Unsaturated edges
unsaturated
unsaturated
DA
November 10, 2009
24
IntroductionEquivalent flow function
Residual capacity (possibility to add flow)
cf 5-324
cf
cf 5-14
cf
DA
November 10, 2009
25
IntroductionEquivalent flow function
We will use the second representation,
denoting it by f
DA
November 10, 2009
26
Ford and FulkersonAlgorithm
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 FulkersonAlgorithm
A path is an augmenting path if it contains only
unsaturated edges. for example
DA
November 10, 2009
28
Ford and FulkersonAlgorithm
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 FulkersonAlgorithm
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 FulkersonAlgorithm
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 FulkersonExample
DA
November 10, 2009
32
Ford and FulkersonExample
First iteration
DA
November 10, 2009
33
Ford and FulkersonExample
First iteration continue
DA
November 10, 2009
34
Ford and FulkersonExample
First iteration continue
DA
November 10, 2009
35
Ford and FulkersonExample
Second iteration
DA
November 10, 2009
36
Ford and FulkersonExample
Second iteration-continue
DA
November 10, 2009
37
Ford and FulkersonExample
There is no path at the residual network Gf The
flow is maximal
DA
November 10, 2009
38
Ford and FulkersonTime 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 FulkersonProblem 1 (Integer case)
  • The algorithm runs in pseudo polynomial time

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

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

DA
November 10, 2009
42
Ford and FulkersonOpen 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 FulkersonEdmonds-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 AlgorithmA Historical Remark
  • The DA was invented in response to a
    pre-class-exercise in Adelson-Velskys
    Algorithm class.

At that time, the author was not aware the basic
facts regarding FF
DA
November 10, 2009
45
Dinitz AlgorithmMotivation
  • 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 AlgorithmMotivation
  • Example BFS Tree

DA
November 10, 2009
47
Dinitz AlgorithmMotivation
  • Example BFS Tree

DA
November 10, 2009
48
Dinitz AlgorithmMotivation
DA
November 10, 2009
49
Dinitz AlgorithmMotivation
s and t become disconnected in the BFS tree!
DA
November 10, 2009
50
Dinitz AlgorithmExtended 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 AlgorithmLayered 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 AlgorithmLayered 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 AlgorithmLayered 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 AlgorithmLayered Network
DA
November 10, 2009
55
Dinitz AlgorithmLayered 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 AlgorithmLayered 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 AlgorithmLayered Network next step
How can it be done? Prune into
DA
November 10, 2009
58
Dinitz AlgorithmLayered 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 AlgorithmAugmenting 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 AlgorithmAugmenting 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
Dinitz AlgorithmCleaning dead ends
  • We might have vertices without outgoing edges
    called the dead-ends vertices.
  • 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
Dinitz AlgorithmCleaning dead ends
  • 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 AlgorithmCleaning 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
Dinitz AlgorithmCleaning dead ends
  • 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
Dinitz AlgorithmCleaning dead ends
  • 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 AlgorithmThe original algorithm
Phase
Iteration
DA
November 10, 2009
71
Dinitz AlgorithmThe 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 AlgorithmThe 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 AlgorithmThe original algorithm
Phase
Flow updating costs O(l)O(V) as well.
Iteration
DA
November 10, 2009
74
Dinitz AlgorithmThe original algorithm
Phase
Cleaning dead ends vertices
Iteration
DA
November 10, 2009
75
Dinitz AlgorithmThe 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 AlgorithmTime analysis
  • Cost of the algorithm

O(iterations V Phases E)
E
V
How many Iterations? How many Phases?
DA
November 10, 2009
77
Dinitz AlgorithmTime 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 AlgorithmTime analysis
  • If there are paths of length l they are contained
    in

s
t
Augmenting path
New path
DA
November 10, 2009
79
Dinitz AlgorithmTime 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 AlgorithmTime 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 AlgorithmTime analysis
- Distance(s,t)?V-1 ? There are at most V-1
phases in DA
Phase
Iteration
DA
November 10, 2009
83
Dinitz AlgorithmTime analysis
DA running time is O(EVV) O(V2E)
Phase
Iteration
DA
November 10, 2009
84
Further Progress
About PowerShow.com