The Dinitz Algorithm An example of a run

  • Slides: 29
Download presentation
The Dinitz Algorithm An example of a run

The Dinitz Algorithm An example of a run

Residual & Layered Networks construction v 1 25 s v 2 11 v 3

Residual & Layered Networks construction v 1 25 s v 2 11 v 3 14 1 5 v 1 t 10 v 5 5 v 2 11 25 8 10 v 4 The original network N 9 s 1 5 6 4 9 8 t 10 v 5 v 4 9 8 10 5 8 v 3 14 6 4 9 v 6 7 v 1 v 6 5 v 5 10 t 4 5 The layered network Lf 7 v 7 9 25 s v 2 11 v 7 v 4 9 v 6 The residual network Nf (f = 0)

Computing a blocking flow in Lf Finding an augmentation path by arbitrarily backtracking from

Computing a blocking flow in Lf Finding an augmentation path by arbitrarily backtracking from t Updating the flow v 1 v 2 0/9 0/25 0/5 s 0/11 v 5 0/10 t 0/4 0/5 v 7 v 4 0/9 v 6

Computing a blocking flow in Lf Updating the flow v 1 v 2 0/9

Computing a blocking flow in Lf Updating the flow v 1 v 2 0/9 0/25 5/5 s 0/11 v 5 5/10 t 0/4 0/5 v 7 v 4 0/9 v 6

Computing a blocking flow in Lf Updating the flow Cleaning forward v 1 v

Computing a blocking flow in Lf Updating the flow Cleaning forward v 1 v 2 0/9 0/25 5/5 s 0/11 v 5 5/10 t 0/4 0/5 v 7 v 4 0/9 v 6

Computing a blocking flow in Lf Finding an augmentation path by arbitrarily Cleaning forward

Computing a blocking flow in Lf Finding an augmentation path by arbitrarily Cleaning forward backtracking from t. v 1 v 2 0/9 0/25 5/5 s 0/11 v 5 5/10 t 0/4 0/5 v 7 v 4 0/9 v 6

Computing a blocking flow in Lf Finding an augmentation path by arbitrarily backtracking from

Computing a blocking flow in Lf Finding an augmentation path by arbitrarily backtracking from t. Updating the flow. v 1 v 2 0/9 0/25 5/5 s 0/11 v 5 5/10 t 0/4 0/5 v 7 v 4 0/9 v 6

Computing a blocking flow in Lf Updating the flow. v 1 v 2 9/9

Computing a blocking flow in Lf Updating the flow. v 1 v 2 9/9 9/25 5/5 s 0/11 v 5 5/10 t 0/4 0/5 v 7 v 4 0/9 v 6

Computing a blocking flow in Lf Updating the flow. Cleaning forward v 1 v

Computing a blocking flow in Lf Updating the flow. Cleaning forward v 1 v 2 9/9 9/25 5/5 s 0/11 v 5 5/10 t 0/4 0/5 v 7 v 4 0/9 v 6 There aren’t any edges going into t – a blocking flow is found!

Adding the blocking flow to f v 1 0/11 v 2 0/25 s 0/14

Adding the blocking flow to f v 1 0/11 v 2 0/25 s 0/14 v 3 0/1 0/9 0/8 0/5 0/10 v 5 0/5 v 4 0/8 t 0/10 0/6 0/4 0/9 v 6 0/7 v 1 v 2 9/9 9/25 5/5 s 0/11 v 5 5/10 t 0/4 0/5 v 7 v 4 0/9 v 6

Adding the blocking flow to f v 1 0/11 v 2 0/14 v 3

Adding the blocking flow to f v 1 0/11 v 2 0/14 v 3 9/9 9/25 0/1 5/5 s 0/8 v 5 0/5 v 4 0/8 t 5/10 0/6 0/4 0/9 v 6 0/7 v 1 v 2 9/9 9/25 5/5 s 0/11 v 5 5/10 t 0/4 0/5 v 7 v 4 0/9 v 6

Constructing Nf and Lf v 1 0/11 v 2 0/14 v 3 9/9 v

Constructing Nf and Lf v 1 0/11 v 2 0/14 v 3 9/9 v 1 9/25 0/1 5/5 s v 5 v 4 0/8 t 5/10 0/5 16 0/8 s v 2 11 9 1 5 0/4 8 0/9 t 5 v 4 5 4 9 v 6 0/7 v 1 10 16 s v 2 11 5 v 4 8 9 v 5 14 v 3 5 t 4 v 6 7 v 6 9 8 10 5 0/6 v 3 14 7 v 7 6

Computing a blocking flow in Lf v 1 v 2 0/14 v 3 0/5

Computing a blocking flow in Lf v 1 v 2 0/14 v 3 0/5 t 0/10 0/16 s 0/11 0/5 v 4 v 5 0/8 0/9 0/4 v 6 0/7 v 7

Computing a blocking flow in Lf v 1 v 2 0/14 v 3 5/5

Computing a blocking flow in Lf v 1 v 2 0/14 v 3 5/5 t 0/10 0/16 s 0/11 5/5 v 4 v 5 5/8 0/9 0/4 v 6 0/7 v 7

Adding the blocking flow to f v 1 0/11 v 2 9/25 0/14 v

Adding the blocking flow to f v 1 0/11 v 2 9/25 0/14 v 3 0/1 0/8 5/5 s v 5 v 4 0/8 t 5/10 0/5 9/9 0/6 0/4 0/9 v 6 0/7 v 1 v 2 0/14 v 3 5/5 t 0/10 0/16 s 0/11 5/5 v 4 v 5 5/8 0/9 0/4 v 6 0/7 v 7

Adding the blocking flow to f v 1 0/11 v 2 0/14 v 3

Adding the blocking flow to f v 1 0/11 v 2 0/14 v 3 9/9 9/25 0/1 5/5 s 0/8 v 5 5/5 v 4 5/8 t 10/10 0/6 0/4 0/9 v 6 0/7 v 1 v 2 0/14 v 3 5/5 t 0/10 0/16 s 0/11 5/5 v 4 v 5 5/8 0/9 0/4 v 6 0/7 v 7

Constructing Nf and Lf v 1 0/11 v 2 9/9 0/14 v 3 v

Constructing Nf and Lf v 1 0/11 v 2 9/9 0/14 v 3 v 1 9/25 0/1 5/5 s 0/10 v 5 5/5 v 4 16 0/8 5/8 t 10/10 s 9 v 2 v 3 14 1 5 0/8 t v 5 3 v 4 5 0/9 10 4 9 v 6 0/7 v 6 v 1 16 10 11 v 2 14 v 3 1 v 5 5 s 8 v 4 9 4 v 7 6 9 10 5 0/6 0/4 11 t v 6 7 v 7 6

Computing a blocking flow in Lf v 1 0/16 0/11 0/10 v 2 0/14

Computing a blocking flow in Lf v 1 0/16 0/11 0/10 v 2 0/14 v 3 0/1 v 5 s 0/5 0/8 v 4 0/9 0/4 v 7 0/6 t v 6

Computing a blocking flow in Lf v 1 4/16 0/11 4/10 v 2 0/14

Computing a blocking flow in Lf v 1 4/16 0/11 4/10 v 2 0/14 v 3 0/1 v 5 s 0/5 0/8 v 4 0/9 4/4 v 7 4/6 t v 6

Computing a blocking flow in Lf v 1 4/16 0/11 4/10 v 2 0/14

Computing a blocking flow in Lf v 1 4/16 0/11 4/10 v 2 0/14 v 3 0/1 v 5 s 0/5 0/8 v 4 0/9 4/4 v 7 4/6 t v 6

Computing a blocking flow in Lf v 1 12/16 8/11 4/10 v 2 8/14

Computing a blocking flow in Lf v 1 12/16 8/11 4/10 v 2 8/14 v 3 0/1 v 5 s 0/5 8/8 v 4 0/9 4/4 v 7 4/6 t v 6

Adding the blocking flow to f v 1 0/11 v 2 9/25 0/1 0/8

Adding the blocking flow to f v 1 0/11 v 2 9/25 0/1 0/8 5/5 s 0/10 v 5 5/5 v 4 9/9 0/14 v 3 5/8 t 10/10 0/6 0/4 0/9 v 6 0/7 v 1 12/16 8/11 4/10 v 2 8/14 v 3 0/1 v 5 s 0/5 8/8 v 4 0/9 4/4 v 7 4/6 t v 6

Adding the blocking flow to f v 1 8/11 v 2 21/25 0/1 8/8

Adding the blocking flow to f v 1 8/11 v 2 21/25 0/1 8/8 5/5 s 4/10 v 5 5/5 v 4 9/9 8/14 v 3 5/8 t 10/10 4/6 4/4 0/9 v 6 0/7 v 1 12/16 8/11 4/10 v 2 8/14 v 3 0/1 v 5 s 0/5 8/8 v 4 0/9 4/4 v 7 4/6 t v 6

Constructing Nf and Lf v 1 8/11 v 2 8/14 v 3 9/9 21/25

Constructing Nf and Lf v 1 8/11 v 2 8/14 v 3 9/9 21/25 0/1 5/5 s v 5 5/5 v 4 5/8 t 10/10 5 8 t 6 v 4 9 v 3 8 10 v 5 3 0/9 6 1 4 5 4/6 4/4 21 s v 2 8 4 8/8 4/10 3 v 1 5 2 4 4 9 v 6 0/7 v 6 v 1 4 s 3 6 v 2 6 7 v 3 1 v 5 5 v 4 9 v 6 7 v 7 2 t

Computing a blocking flow in Lf v 1 0/4 s 0/3 0/6 v 2

Computing a blocking flow in Lf v 1 0/4 s 0/3 0/6 v 2 0/6 v 3 0/1 v 5 0/5 v 4 0/9 v 6 0/7 v 7 0/2 t

Computing a blocking flow in Lf v 1 2/4 s 0/3 2/6 v 2

Computing a blocking flow in Lf v 1 2/4 s 0/3 2/6 v 2 0/6 v 3 0/1 v 5 2/5 v 4 2/9 v 6 2/7 v 7 2/2 t

Adding the blocking flow to f v 1 8/11 v 2 8/14 v 3

Adding the blocking flow to f v 1 8/11 v 2 8/14 v 3 9/9 21/25 0/1 5/5 s 8/8 4/10 v 5 5/5 v 4 5/8 t 10/10 4/6 4/4 0/9 v 6 0/7 v 1 2/4 s 0/3 2/6 v 2 0/6 v 3 0/1 v 5 2/5 v 4 2/9 v 6 2/7 v 7 2/2 t

Adding the blocking flow to f v 1 8/11 v 2 23/25 8/14 v

Adding the blocking flow to f v 1 8/11 v 2 23/25 8/14 v 3 0/1 8/8 5/5 s 6/10 v 5 5/5 v 4 9/9 3/8 t 10/10 6/6 4/4 2/9 v 6 2/7 v 1 2/2 s 0/3 2/6 v 2 0/6 v 3 0/1 v 5 2/5 v 4 2/9 v 6 2/7 v 7 2/2 t

Termination: no path from s to t in Nf v 1 8/11 v 2

Termination: no path from s to t in Nf v 1 8/11 v 2 23/25 8/14 v 3 0/1 6/10 v 5 5/5 v 4 3/8 t 6/6 2/9 23 s 2/7 v 7 t 10 v 5 5 3 v 4 9 8 6 7 v 6 The flow f is maximal! v 3 1 5 5 6 8 4 2 v 6 v 2 8 2 10/10 4/4 3 v 1 8/8 5/5 s 9/9 4 5 2 v 7 6