3.7 Unit Capacity Networks and Simple Networks
123
Lemma 3.7.2
Let
L
= (
V
=
V
0
∪
V
1
∪
. . .
∪
V
k
, A, l
≡
0
, u
≡
1)
be a layered
unit capacity network with
V
0
=
{
s
}
and
V
k
=
{
t
}
. One can find a blocking
(
s, t
)
flow in
L
in time
O
(
m
)
.
Proof:
It suffices to see that the capacity of each augmenting path is 1 and
no two augmenting paths of the same length can use the same arc. Hence it
follows that Dinic’s algorithm will find a blocking flow in time
O
(
m
).
ut
Lemma 3.7.3
Let
N
= (
V, A, l
≡
0
, u
≡
1)
be a unit capacity network and
let
x
*
be a maximum
(
s, t
)
flow in
N
. Then
dist
N
(
s, t
)
≤
2
n/
p

x
*

(3.15)
Proof:
Let
ω
= dist
N
(
s, t
) and let
V
0
=
{
s
}
, V
1
, V
2
, . . . , V
ω
be the first
ω
distance classes from
s
. Since
N
contains no multiple arcs, the number of
arcs from
V
i
to
V
i
+1
is at most

V
i

V
i
+1

for
i
= 0
,
1
, . . . , ω

1. Since the
arcs in (
V
i
, V
i
+1
) correspond to the arcs across an (
s, t
)cut in
N
, we have

x
*
 ≤ 
V
i

V
i
+1

for
i
= 0
,
1
, . . . , ω

1. Thus max
{
V
i

,

V
i
+1
} ≥
p

x
*

for
i
= 0
,
1
, . . . , ω

1. Now we easily see that
n
=

V
 ≥
ω
X
i
=0

V
i
 ≥
p

x
*
b
ω
+ 1
2
c
(3.16)
implying that
ω
≤
2
n/
p

x
*

.
ut
Theorem 3.7.4
[232] For unit capacity networks the complexity of Dinic’s
algorithm is
O
(
n
2
3
m
)
.
Proof:
Let
N
be a unit capacity network with source
s
and sink
t
. We
assume for simplicity that
N
has no 2cycles. The case when
N
does have
a 2cycle can be handled similarly (Exercise 3.41). Let
q
be the number of
phases performed by Dinic’s algorithm before a maximum (
s, t
)flow is found
in
N
. Let 0
≡
x
(0)
, x
(1)
, . . . , x
(
q
)
denote the (
s, t
)flows in
N
which have
been calculated after the successive phases of the algorithm. Thus
x
(0)
is the
starting flow which is the zero flow and
x
(
i
)
denotes the flow after phase
i
of the algorithm. Let
τ
=
d
n
2
3
e
and let
K
=

x
(
q
)

denote the value of a
maximum (
s, t
)flow in
N
.
By Lemmas 3.7.1 and 3.7.2 it suffices to prove that the total number of
phases,
q
, is
O
(
n
2
3
). This is clear in the case when
K
≤
τ
, since we augment
the flow by at least one unit after each phase. So suppose that
K > τ
.
Choose
j
such that

x
(
j
)

< K

τ
and

x
(
j
+1)
 ≥
K

τ
. By Theorem 3.4.2
and Theorem 3.4.3 the value of a maximum flow in
N
(
x
(
j
)
) is
K

x
(
j
)

> τ
.
Applying Lemmas 3.7.1 and 3.7.3 to
N
(
x
(
j
)
), we see that dist
N
(
x
(
j
)
)
(
s, t
)
≤
2
n
2
3
. Using Lemma 3.6.2 and the fact that each phase of Dinic’s algorithm
results in a blocking flow, we see that
j
≤
2
n
2
3
. Thus, since at most
τ
phases
remain after phase
j
we conclude that the total number of phases
q
is
O
(
n
2
3
).
ut