A Symbolic
Algorithm
for
Maximum
Flow
in O-1 Networks*
Gary D. Hachtel Fabio Somenzi Department of Electrical and Computer Engineering University of Colorado at Boulder, 80309
Abstract We
an
network. tion
matching
of newly
of
than
it
main
augmenting
edge
edges
graphs The
finding
problem
each
layer
possible
can
enforced
of the
network
0
=lm = 10 : = 01 3 = 11
han-
(more sets
is
a O-1
enumerait
(implicitly)
Disjointness
for
priority
trace
in
explicit
Therefore,
previously
to
flow
avoids
network.
was is
maximum
and
the
idea
paths.
defined
the
is symbolic
and
larger
edges).
disjoint
for
algorithm
nodes
much
1036
algorithm
The
of the
dle
1
ZWCODING:
present
by
than
of
fJ
E(x,y)
edge-
solving
with
#=o
3
2
+
an
the
help
functions.
pl-sq pl -=%1
1 Introduction Sizeis a significant of VLSI
difficulty
systems.
relations
of
When
finite
state
ous,
that
the
ers.
This
phenomenon
emerged
graphs
a class
graph
algorithms,
ically,
that
Binary
ing
for
this
and
flow
large
graphs
mum
flow
we
flows.
Augmenting-path
times,
whereas
based
on
Key MPM
in
push
flow
lel
by This
quired
in
This
the
layered
are
us
with
all
sink,
to
way
paths.
of
edges ed~=s
connecting from layer
selected
the
edges
*This
work
MIP-9115432
at
Dinits’s
al-
from the
all
least
that
layered
source
the
in
traces
network
is
traced
paths
in may
We
die
Some
paths they
the
was and
the
right-pot
supported SRC
from
backward
ent network. in
contract
part
by
$03.00 @ 1993 IEEE
characteristic
=
the
z
=
(Z I ,...,
builds A
=
[log2(l
The
NSF/DARPA
Flow.
the
case
name
the
and
Figure
1.
(:Yl,
the
[9,
6]
encoding
function
of
.E(z,
relation
The
be to
the
In
this
to the
y)
that
V x V H
E
:
of the The
of
of
the
E,
are
the
vectors
vertices
relation
>: {O, l}” flow
of
binary graph
is represented
are
functions
we have
path
{(O,
{O,
1}.
the
minimum
represented are
O-1 network
case,
H
relation,
by their
by
the
a lmaximal
2), (2,
1), (1, 3)}
{(O,
leads
rela-
by BDD’s
by the
flow
cut
characteristic
represented
is illustrated
flow
BDD
relation
circle
on an edge
A black
dot
assume
that
is
is not
shown indicates
indicates all
an
dangling
A Symbolic
shown
below
in the
this
figure,
network.
bold
[21.
edges
in
1), (1, 2), (2, 3)}. to
the
maximum
but In
this
the
BDD
BDD
for the
the open
complement attribute. an E edge without E edge with the complement attribute. We edges
go to
the
Algorithm
Given a network N = (E(a, y), sat), F(m, ~), the maximum flow flow function
92-DJ-206.
6
1),(1,3),(0,2),(2,3)}.
edge
3
v)
. . . . ~n)
edge
the
of interest
a simple
augmenting
collide
sets
characteristic
{(O,
MIP-
algorithms
edge
(u,
encodings
then
for
The
grant
through
else.
=
tbe
All
flOW
from
drained
binary
switching
if
O
and-y
over Vl)l,
other
being
comes
be
flow
of the
1
{
of O-1 networks,
paths
of
can
function:
functions.
a subnet-
subset
and
function
ic~)
ranging
n
tion,
source
a layer
a. length-n
E(z, y) : {O, l}n In
re-
403
1063-6757/93
G
and
source.
right-potent.
Maximum
Representation
with
(V, E),
of the
paralbe
into
maximum
working
encodes
characteristic
can
Iayer m – 1 to layer m is matched to a subset m to layer m + 1 that were previously selected.
form
by
vertices
variables
backwards.
because
a path
O-1
layer.
conventional
form
A flow
paths
flow
of that
13(u, v)=
edge-matching
the
the
Graph
convert
and
propagate
Edge-disjoint
process.
for
{o, 1}.
algorithm
sets
on
sink.
Network
the
aug?nent-
traversed
node
reaches is
Symbolic can
network.
the
on
all out
serially. are
maximal
it
the are
the that
of
layered
path
netin
that edges
symbolic
maximal
MPM
maximal
Others
nodes one
compute
augmentation.
to
source.
idea
property selected
We
[10]
potential
the
set
every
source
layered
edge-disjoint over
built,
that
the
the
the
If to
1: A Simple
the
2
all is
Key
minimum
oj
a series
is
of
potential
blocking)
guarantee
at
procedure
work
sets
of the
use
way
advantage
network
Since
however,
The
pre-
it.
Several
solving
to
to
efficient
edge-disjoint
layer
towards the
other
the
or
efficiently
phase,
of
of minimum
(or
each
a path
extended
traced
flow
the
the
each
node
rnawirncd has
by
for
allows
are
enumeration.
one
is on
pull
nodes
paths
Once
maxi-
algorithm is
implemented
at
is an
a maximal
edge-disjoint
predecessor
if
Our
very
the
conservation
not.
Figure
max-
to
paths
Its
the
a maximal
eap licit
problems,
and
tracing
with
to find
traced
it
method
paths
without
augmenting
closest
the
for
do
identify
from
dealing
All
for applied
Algorithms flow
have check-
[5].
algorithm
maintain
pl+wrs.yl
those
model
circuits
algorithms
algorithm
contribution
augmentations of not
represent algorithms
be
Iic
symbolTypically,
[7, 4],
can
has
syrnbo
stored
to
graph
either
augmentations is to
main
paths.
used
that
0(lV13 ),
in
Dinits’s
maximal
Our ing
runs
algorithm
then
on
call
henceforth).
ideas
and
based
there
functions.
arc
edges).
methods
which
are
symbolic
10 36
paths.
algorithm
work
a
networks
preflow-based
augmenting
sets
pl-s=yo
numercomput.
Thus
edge
of sequential
O-1
so
largest
shall
verification
present
are
the
we
symbolic
machine
than
even
design
transition
often
eoplosion.
[2]
in the the
are
characteristic
(BDD’s)
in
(more
[8],
their
arise
represent
which and
optimization
problem
gorithm
node
state
problem
on
as state
Efficient
finite
paper
imum
(MPM
of
Diagrams
testing
In
the
that
to
states
stored
algorithms
functions.
devised
be
graph
graphs
used the
is known
terms
Decision
[3],
cannot
of
in
the are
machines,
where
is,
characteristic been
with
graphs
l-node.
for
Maxflow
Icl = IvI = n, and a problem is formulated as
Procedure
maximumflow(s(a),
F(z, 1
y)
=
fOr(i=O;
2
;
(1,
3
t(Y),
new
i++)
Y))
{
D6
(z),
~(c,
y)
flow
reached(z))
=forward.traverse
= reached(z).
UZOUJ)
E(z,
.,.,’
~(Y));
{
F(c,
y)
E(z,
g));
=minterm.count(
return
,.,,,. ,,,,.,
{
(E(Z>Y), F(a,v)! ~(~), (1 ❑ T.NOZ’J3EACHABJ7E)
if
E(C,
zero;
. ?eached(y);
v));
t=s
1 4
{U(z,
y),
S(Z,
(E(z, for
y),
(j
=
y))
=makexpotent-ntwk
F(z,
l;j
y),
s(z),
i(y),
r);
< MAX-SWEEPS;
j + +)
{
r’ npush_flow
5
(E(z, if 6
(r
y),
(U(a,
v),
S(C,
(s(z), Next
} }
F(t3,
Next
g),
s(r),
i(y),
2, U(z,y),
T-NOT-REACHABLE)
~
y))
i(Y), Sweep
S(o,
y));
break;
?ls?wO
=update_rpotent_ntwk
~> u(~>Y),
S(*,
newl
new3
newz
Y)); Figure
3:
Edge
Partitioning
in
a Right
Potent
Network.
Phase
} 8.
Eventually, the
Figure
2: Pseudo-Code
for
Procedure
MAXIMLTM_FLOW.
the
augment
the
maximal
amount.
Because erated For
follows. Maximize:
x
algorithms
network. we
set
the
● the
edges
(z,
edge) ● the
or
y
flow
can
either . F’(y,
edge
are
used
4. There
can
the
be
tain to
7. The in
least
each
is on
partitioned
right
2,
a sequence
of
(BFS).
stored 4),
such
from
from
into
y)
the
As
vertex the
process
tion
that
that
found
from
augmenting
...,
the
what
5)
for
the
of the Hence,
layered
the
and
the
the
procedure
is
reachable
to
find
the St
and
of
Lines
useful thus
5 and
source
along
may
of Line
sets make
U]
6 constitute are
the
decremented
new
layered
one
our
op.
of we
the shall
symbolic
traditional
BDD
algo.
algorithms.
backward
Given
=
with
y),
the
excepthe
augmenting
(2, 1),
F’(z,
and
y),
new’(z),
first
O, 1, . . . .
toward
2, the
edge,
J3(c,
~~=o
i
directed
Section
start-
vertices
new-,
edges
one
graph,
the
analysis,
flow,
=
=
reached(z)
=
d?(z)
=
new--’(z)
. F’(z,
y)
two
newi(z),
the
. neru’’’-l
layers
are
(y)
by
all
the
from
still
set
6 is called
sweep, in
network
order
no
3)},
joint
404
are
edges
the are
that
augmenting
no
selected l)},
edges
the and
(1, 3)
bad
paths
could
the
been have
the
t$xcluded Layer
In
are
in
selected selected been
3),
3. by
sink,
vertices
this
edge
from
case,
(3, 6)
the
1 the
in we
is always
In
edges
are of
is nei-
right-potent
useful
instead from
it
partition
to In
the m,
forward_traverse,
(2, 4)}.
found
all
layer
which
2, which
Layer
{(2,
each
Pro.
working
newrn
new’”
Figure found
to
in
sink.
edges
sets
path
is thus
useful
reaches {(O,
if
and
in
i a
end
First,
S-,
new
construct
this
sets in
and
vertices
new no
the
set
However,
to To
operations.
U-
concepts
the
6 has
selected,
which
and
For
every
source. need
Second,
sets, from
these
the we
from
reachable. edge
in
property.
two
prunes
remaining
nor
Note
potent.
still
ther
useful
to
selected
illustrate
There
it
from
potent
nR(y)
.
Network
vertex
paths,
right
t is not
flow,
right
augmenting
t,
vertex
{(1,
of
sink
Since
layer
Potent
edges
y)
y)
every
useful
the
initial
network.
and
of
E(z,
U~(!Z,
Right
has
6 E new3. useful
+
performs
the and
We
assume
con-
set that
of edges
z)
forward.traverse,
which
useful
newm+l.
deletes
3y(V’’(z,y))
make~potent.ntwk
mrtices
8 to
UB(y,
=
a path
from
. m.
=
the
to
network
cedure
are
y)
a maximal
layered
of the calls
the
of
reached(z)
y)
call
backward
and
network
and
Building
After
propa-
S1.
paths.
sweep,
n-L,
in
(2, 3).
most sizes
of a given
example
has
and
new(-+’)(z)
S1 edges
which
by propagate-right-potency,
remains
1), (1, 3)},
the
storing
reachability
the
gen-
shortest.
Network and
existing
a
as follows.
3.2
edges,
flow
to In
(O, 2)
u --l(z,
any
builds
the
(2,
BFS
all
to
by
originally
Because
which the
a traversal vertices,
of an
useful.
for
Layered
step
phase
Nevertheless,
than
and be
implementations
). to
claim.
graphs
of source
CJq.,y)
edges.
augments
a
efficient
analogous
also 2),
such
layer, will
are
ordinary
0(IV13
proportional
the
augmenting
of
time
exist more
some point
generated
typically
make
?lR(c)
the most innova. priority junctions
from
is
there
each
paths
complexity
require
i-th
uB(a,
computations.
path
time
set
edges,
or
them.
the
{(O,
=0,
amount
any
Procedure
and
the
for
we perform
is
in
is true.
make_rpotent_ntwk
vertices
S[
sense
by
was
the
network
augmenting
cannot
the
are
path
edges.
symbolic
successive
edge)
y through
S1+l
routines contain In particular, over
E S’,
phase
at
in this
forward
a result
established
with
(Line
paths
point,
on
Ut (o, y)
y)
(non-saturated
in the
Z)lz.
sets
(c,
backward
by Procedures
loops
the If
current
enormously
The
i
of the
BDD’s
a given
forward source
start
existing
Building
source
that:
to
all
the
that
are
reached
‘(z).
sweeps
forward-traversal,
ing
The
in new
a path
edges).
potent to
is
one
push_flow
procedure
augment
network
through
the
edge-disjoint find
are
(Line
Y). F’(c,
algorithms,
at
paths
this
in Figure
Search
network
E(c,
ntwk. These our algorithm.
replace
edge-disjoint
6. At
In
layered
the
5. Procedure these
the
steps:
of BFS
(selected
supplied
called
t,through
sink
are
property
classic
exists
layer
lS’+l(y,
exhausted
of
to
in
through
First
y)
are