NetworkFlow - Maxi Flow
NetworkFlow - Maxi Flow
Goal:
Max Flow
Network Flow
The network flow problem
is as follows: a 12
b
◦ Given a connected directed 16 20
graph G
with non-negative integer 4 9
10 7
weights, s t
(where each edge stands for
the capacity of that edge), 4
◦ 2 different vertices, s and t, c 14 d
called the source and the
sink,
such that the source only has Each edge stands for the
out-edges and the sink only capacity of that edge.
has in-edges,
◦ Find the maximum amount
of some commodity that
can flow through the
network from source to
sink.
Network Flow
One way to imagine the
situation is imagining a 12
b
each edge as a pipe that 16 20
allows a certain flow of a
liquid per second. 4 10
9
7
◦ The source is where the s t
liquid is pouring from, and
the sink is where it ends up. 4
◦ Each edge weight specifies c d
the maximal amount of 14
liquid that can flow through
that pipe per second.
Each edge stands for the
◦ Given that information, capacity of that edge.
what is the most liquid that
can flow from source to sink
per second, in the steady
state?
Network Flow
12
a b a
12/12
b
16 20
12/16 19/20
9 0/9
4 10 7
s t s
0/4 0/10
7/7 t
13 4
11/13 4/4
c 14 d c d
11/14
capacities flow
The Conservation Rule:
◦ In order for the assignment of flows to be valid, we must have the
sum of flow coming into a vertex equal to the flow coming out of a
vertex, for each vertex in the graph except the source and the sink.
The Capacity Rule:
◦ Also, each flow must be less than or equal to the capacity of the
edge.
0/12
a b
0/16 0/20
Using the notation: used / capacity.
0/9
0/4 0/10
s 0/7 t Residual Capacity: capacity - used.
0/13 0/4
c 0/14 d
Network Flow
◦ Residual capacity of a path – the minimum of the
residual capacities of the edges on that path, which
will end up being the max excess flow we can push
down that path.
0/12
a b
0/16 0/20
Using the notation: used / unused.
0/9
0/4 0/10
s 0/7 t Residual Capacity: unused - used.
0/13 0/4
c 0/14 d
Ford-Fulkerson Algorithm
While there exists an augmenting path
Add the appropriate flow to that augmenting path
◦ Residual capacity of a
12/12 path – the minimum of the
0/12
12/16 a b 12/20 residual capacities of the
0/16 0/20 edges on that path.
0/9
0/4 0/10 ◦ 12 in this case,
s 0/7 t which is the limiting
factor for this path’s
4/13 4/4 flow.
c 4/14 d
Ford-Fulkerson Algorithm
While there exists an augmenting path
Add the appropriate flow to that augmenting path
◦ Residual capacity of a
12/12
path – the minimum of the
a b 19/20
residual capacities of the
12/16 12/20 edges on that path.
0/9
0/4 0/10 ◦ 7 in this case,
s 0/7 t which is the limiting
7/7
factor for this path’s
4/13 4/4 flow.
11/13 c 4/14 d
11/14
Ford-Fulkerson Algorithm
While there exists an augmenting path
Add the appropriate flow to that augmenting path
12/12
a b
12/16 19/20
0/9
0/4 0/10
s 7/7 t
11/13 4/4
c 11/14 d
Example
Basic Terms
Source
Sink
Bottleneck Capacity
Flow
Augmenting Path
Residual Capacity
Source and sink
Initially all flow is zero