Loading...

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

Dinitz's algorithm for finding a maximum flow

in a network.

- Presented by
- Ilan Kadar and Sivan Albagli

November 10, 2009

Content

- Introduction
- Ford and Fulkerson Algorithm
- Original Dinitz algorithm

2

2

November 10, 2009

DA

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

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

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

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

IntroductionNaïve algorithm

A

2

2

S

t

2

4

3

B

7

7

7

November 10, 2009

DA

IntroductionNaïve algorithm

A

2

2

S

t

2

4

3

B

8

8

8

November 10, 2009

DA

IntroductionNaïve algorithm

A

2/2

0/2

S

t

2/2

2/4

0/3

B

9

9

9

November 10, 2009

DA

IntroductionNaïve algorithm

A

2/2

0/2

S

t

2/2

2/4

0/3

B

10

10

10

November 10, 2009

DA

IntroductionNaïve algorithm

There is no path where one can increase the flow

Therefore, the algorithm terminates

11

11

11

November 10, 2009

DA

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

IntroductionNaïve algorithm

Maximum flow 5

13

13

13

November 10, 2009

DA

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

IntroductionEquivalent flow function

- Define for each edge

15

15

15

November 10, 2009

DA

IntroductionEquivalent flow function

v

DA

November 10, 2009

IntroductionEquivalent flow function

- satisfy the following constraints
- Capacity constraint

17

17

17

DA

November 10, 2009

IntroductionEquivalent flow function

- satisfy the following constraints
- 2. Skew symmetry

18

18

18

November 10, 2009

DA

IntroductionEquivalent flow function

- satisfy the following constraints
- 3. Flow conservation

19

19

19

November 10, 2009

DA

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

IntroductionEquivalent flow function

21

21

21

November 10, 2009

DA

IntroductionEquivalent flow function

Edge is called saturated if

saturated

saturated

DA

November 10, 2009

IntroductionEquivalent flow function

Unsaturated edges

unsaturated

unsaturated

DA

November 10, 2009

IntroductionEquivalent flow function

Residual capacity (possibility to add flow)

cf 5-324

cf

cf 5-14

cf

DA

November 10, 2009

IntroductionEquivalent flow function

We will use the second representation,

denoting it by f

DA

November 10, 2009

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

Ford and FulkersonAlgorithm

A path is an augmenting path if it contains only

unsaturated edges. for example

DA

November 10, 2009

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

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

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

Ford and FulkersonExample

DA

November 10, 2009

Ford and FulkersonExample

First iteration

DA

November 10, 2009

Ford and FulkersonExample

First iteration continue

DA

November 10, 2009

Ford and FulkersonExample

First iteration continue

DA

November 10, 2009

Ford and FulkersonExample

Second iteration

DA

November 10, 2009

Ford and FulkersonExample

Second iteration-continue

DA

November 10, 2009

Ford and FulkersonExample

There is no path at the residual network Gf The

flow is maximal

DA

November 10, 2009

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

Ford and FulkersonProblem 1 (Integer case)

- The algorithm runs in pseudo polynomial time

How many iterations??

DA

November 10, 2009

Ford and FulkersonProblem 1 (Integer case)

- The algorithm runs in pseudo polynomial time

How many iterations??

2,000,000

DA

November 10, 2009

Ford and FulkersonProblem 2 (General case)

- Convergence isnt guaranteed

DA

November 10, 2009

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

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

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

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

Dinitz AlgorithmMotivation

- Example BFS Tree

DA

November 10, 2009

Dinitz AlgorithmMotivation

- Example BFS Tree

DA

November 10, 2009

Dinitz AlgorithmMotivation

DA

November 10, 2009

Dinitz AlgorithmMotivation

s and t become disconnected in the BFS tree!

DA

November 10, 2009

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

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

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

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

Dinitz AlgorithmLayered Network

DA

November 10, 2009

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

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

Dinitz AlgorithmLayered Network next step

How can it be done? Prune into

DA

November 10, 2009

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

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

Dinitz AlgorithmAugmenting path finding

- Remove the saturated edges.

1

1

2

2

1

1

1

DA

November 10, 2009

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

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

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

Dinitz AlgorithmCleaning dead ends Left Pass

1

1

2

2

1

1

1

(d,t)

Ql

DA

November 10, 2009

Dinitz Algorithm Cleaning dead ends Left Pass

1

1

2

2

1

(c,d)

1

(a,d)

Ql

DA

November 10, 2009

Dinitz Algorithm Cleaning dead ends Left Pass

1

1

2

1

(s,c)

Ql

DA

November 10, 2009

Dinitz Algorithm Cleaning dead ends Left Pass

1

1

2

(s,c)

Ql

DA

November 10, 2009

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

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

Dinitz AlgorithmThe original algorithm

Phase

Iteration

DA

November 10, 2009

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

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

Dinitz AlgorithmThe original algorithm

Phase

Flow updating costs O(l)O(V) as well.

Iteration

DA

November 10, 2009

Dinitz AlgorithmThe original algorithm

Phase

Cleaning dead ends vertices

Iteration

DA

November 10, 2009

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

Dinitz AlgorithmTime analysis

- Cost of the algorithm

O(iterations V Phases E)

E

V

How many Iterations? How many Phases?

DA

November 10, 2009

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

Dinitz AlgorithmTime analysis

- If there are paths of length l they are contained

in

s

t

Augmenting path

New path

DA

November 10, 2009

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

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

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

Dinitz AlgorithmTime analysis

- Distance(s,t)?V-1 ? There are at most V-1

phases in DA

Phase

Iteration

DA

November 10, 2009

Dinitz AlgorithmTime analysis

DA running time is O(EVV) O(V2E)

Phase

Iteration

DA

November 10, 2009

Further Progress