0% found this document useful (0 votes)
350 views

Maximum Flow: Max-Flow Min-Cut Theorem (Ford Fukerson's Algorithm)

The document discusses the maximum flow problem and the Ford-Fulkerson algorithm for finding the maximum flow in a flow network. It defines a flow network as a directed graph where each edge has a capacity and there is a source and sink node. The maximum flow problem aims to find the maximum amount of flow that can be pushed from the source to the sink while respecting the capacities of each edge. The Ford-Fulkerson algorithm works by finding augmenting paths in the residual network to incrementally increase the flow until no more augmenting paths exist, at which point the flow is maximal.

Uploaded by

mattnelson41
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
350 views

Maximum Flow: Max-Flow Min-Cut Theorem (Ford Fukerson's Algorithm)

The document discusses the maximum flow problem and the Ford-Fulkerson algorithm for finding the maximum flow in a flow network. It defines a flow network as a directed graph where each edge has a capacity and there is a source and sink node. The maximum flow problem aims to find the maximum amount of flow that can be pushed from the source to the sink while respecting the capacities of each edge. The Ford-Fulkerson algorithm works by finding augmenting paths in the residual network to incrementally increase the flow until no more augmenting paths exist, at which point the flow is maximal.

Uploaded by

mattnelson41
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 33

MAXIMUM FLOW

Max-Flow Min-Cut Theorem (Ford Fukersons Algo

What is Network Flow ?


Flow network is a directed graph G=(V,E) such that each
edge has a non-negative capacity c(u,v)0.
Two distinguished vertices exist in G namely :
Source (denoted by s) : In-degree of this vertex is 0.
Sink (denoted by t) :
Out-degree of this vertex is 0.
Flow in a network is an integer-valued function f defined
On the edges of G satisfying 0f(u,v)c(u,v), for every
Edge (u,v) in E.

What is Network Flow ?


Each edge (u,v) has a non-negative capacity c(u,v).
If (u,v) is not in E assume c(u,v)=0.
We have source s and sink t.
Assume that every vertex v in V is on some path from s to t.
Following is an illustration of a network flow:

c(s,v1)=16
c(v1,s)=0
c(v2,s)=0

Conditions for Network Flow


For each edge (u,v) in E, the flow f(u,v) is a real valued function
that must satisfy following 3 conditions :
Capacity Constraint : u,v V, f(u,v) c(u,v)
Skew Symmetry :

u,v V, f(u,v)= -f(v,u)

Flow Conservation: u V {s,t} f(s,v)=0


vV

Skew symmetry condition implies that f(u,u)=0.

The Value of a Flow.


The value of a flow is given by :

| f | f ( s, v ) f (v, t )
vV

vV

The flow into the node is same as flow going out from the node and
thus the flow is conserved. Also the total amount of flow from source
s = total amount of flow into the sink t.

Example of a flow

Capacity
Flow

10, 9

8,8
1,1

s
6, 6

t
10,7

Table illustrating Flows and Capacity across different edges of graph above:
fs,1 = 9 , cs,1 = 10 (Valid flow since 10 > 9)
fs,2 = 6 , cs,2 = 6 (Valid flow since 6 6)
f1,2 = 1 , c1,2 = 1 (Valid flow since 1 1)
f1,t = 8 , c1,t = 8 (Valid flow since 8 8)
f2,t = 7 , c2,t = 10 (Valid flow since 10 > 7)
The flow across nodes 1 and 2 are also conserved as flow into them = flow out.

The Maximum Flow Problem


Given a Graph G (V,E) such that:
xi,j = flow on edge (i,j)
ui,j= capacity of edge (i,j)
s = source node
t = sink node

In simple terms maximize


the s to t flow, while ensuring
that the flow is feasible.

Maximize

Subject To

jxij - jxji = 0 for each i s,t


jxsj = v
0 xij uij for all (i,j) E.

Cuts of Flow Networks


A Cut in a network is a partition of V into S and T (T=V-S) such that
s (source) is in S and t (target) is in T.

Cut

10

15

15

15

10

10

15

10

30

Capacity of Cut (S,T)

c(u , v)

c( S , T )

uS , vT

Cut

10

15

15

15

10

10

15

10

30

Capacity = 30
7

Min Cut
Min s-t cut (Also called as a Min Cut) is a cut of minimum capacity

Min s-t Cut

10

15

15

15

10

10

15

10

30

Capacity = 28

Flow of Min Cut (Weak Duality)


Let f be the flow and let (S,T) be a cut. Then | f | CAP(S,T).
In maximum flow, minimum cut problems forward edges are full
or saturated and the backward edges are empty because of the
maximum flow. Thus maximum flow is equal to capacity of cut.
This is referred to as weak duality.
Proof :
S

T
8

Methods
Max-Flow Min-Cut Theorem
The Ford-Fulkerson Method
The Preflow-Push Method

The Ford-Fulkerson Method


Try to improve the flow, until we reach the maximum value of the flow
The residual capacity of the network with a flow f is given by:
The residual capacity (rc) of an edge (i,j) equals c(i,j) f(i,j) when (i,j)
is a forward edge, and equals f(i,j) when (i,j) is a backward edge.
Moreover the residual capacity of an edge is always non-negative.

c f (u , v ) c (u , v ) f (u , v )
10, 9

8,8
1,1

s
6, 6

2
Original Network

t
10,7

1
9

s
0

0
0

8
7

6
2
Residual Network

The Ford-Fulkerson Method


Begin
x := 0; // x is the flow.
create the residual network G(x);
while there is some directed path from s to t in G(x) do
begin
let P be a path from s to t in G(x);
:= (P);
send units of flow along P;
update the r's;
end
end {the flow x is now maximum}.
Click To See Ford Fulkersons Algorithm In Action (Animation)

Augmenting Paths ( A Useful


Concept )
Definition:

An augmenting path p is a simple path from s to t on a residual network


that is an alternating sequence of vertices and edges of the form
s,e1,v1,e2,v2,...,ek,t in which no vertex is repeated and no forward edge
is saturated and no backward edge is free.
Characteristics of augmenting paths:
We can put more flow from s to t through p.
The edges of residual network are the edges on which residual capacity
is positive.
We call the maximum capacity by which we can increase the flow on p
the residual capacity of p.

c f ( p ) min{c f (u , v ) : (u , v ) is on p}

The Ford-Fulkersons Algorithm


FORDFULKERSON(G,E,s,t)

AUGMENT(f,P)

FOREACH e E

b bottleneck(P)

f(e) 0
Gf residual graph
WHILE (there exists augmenting
path P)
f augment(f, P)
update Gf
ENDWHILE
RETURN f

FOREACH e P
IF (e E)
// backwards arc
f(e) f(e) + b
ELSE
// forward arc
f(eR) f(e) - b
RETURN f

Click To See Ford Fulkersons Algorithm In Action (Animation)

Proof of correctness of the


algorithm
Lemma: At each iteration all residual capacities are integers.
Proof: Its true at the beginning. Assume its true after the first
k-1 augmentations, and consider augmentation k along path P.
The residual capacity of P is the smallest residual capacity
on P, which is integral.
After updating, we modify the residual capacities by 0 or ,
and thus residual capacities stay integers.
Theorem: Ford-Fulkersons algorithm is finite
Proof: The capacity of each augmenting path is atleast 1. The
augmentation reduces the residual capacity of some edge (s,j)
and doesnt increase the residual capacity for some edge (s,i)
for any i.
So the sum of residual capacities of edges out of s keeps decreasing, and is bounded below 0.
Number of augmentations is O(nC) where C is the largest of the
capacity in the network.

When is the flow optimal ?


A flow f is maximum flow in G if :
(1) The residual network Gf contains no more augmented paths.
(2) | f | = c(S,T) for some cut (S,T) (a min-cut)
Proof:
(1) Suppose there is an augmenting path in Gf then it implies that
the flow f is not maximum, because there is a path through which
more data can flow. Thus if flow f is maximum then residual n/w
Gf will have no more augmented paths.
(2) Let v=Fx(S,T) be the flow from s to t. By assumption v=CAP(S,T)
By Weak duality, the maximum flow is at most CAP(S,T). Thus the
flow is maximum.

The Ford-Fulkerson
Augmenting Path Algorithm
for the Maximum Flow
Problem
15.082 and 6.855J (MIT
OCW)

Ford-Fulkerson Max Flow


4

2
3

5
1

1
2
3

4
1

1
2
2

3
This is the original network,
and the original residual
network.

Ford-Fulkerson Max Flow


4

2
3

5
1

1
2
3

4
1

1
2
2

3
Find any s-t path in G(x)

Ford-Fulkerson Max Flow


4

2
3

5
1

1
2
2
3
1

4
1

1
1
2
2 1

Determine the capacity of the path.


Send units of flow in the path.
Update residual capacities.

Ford-Fulkerson Max Flow


4

2
3

5
1

1
2
2
3
1

4
1

Find any s-t path

1
1
2
2 1

Ford-Fulkerson Max Flow


4

2
3

5
1

1
2
1
2
3
1

1
1

1
11
2 1
1

Determine the capacity of the path.


Send units of flow in the path.
Update residual capacities.

Ford-Fulkerson Max Flow


4

2
3

5
1

1
2
1
2
3
1

1
1

Find any s-t path

1
11
2 1
1
1

Ford-Fulkerson Max Flow


4

2
3

5
1

1
1
2
3
1

1
2
1

1
11
1
1 2

Determine the capacity of the path.


Send units of flow in the path.
Update residual capacities.

Ford-Fulkerson Max Flow


4

2
3

5
1

1
1
2
2
3
1

1
2
1

Find any s-t path

1
11
1
1 2
1

Ford-Fulkerson Max Flow


4

2
3

5
1

1
1
2
1
2
2
1

1
2
1

1
11
1

1
2

2
1

Determine the capacity of the path.


Send units of flow in the path.
Update residual capacities.

Ford-Fulkerson Max Flow


4

2
3

5
1

1
1
2
1
2
2
1

1
2

1
11
1
2

Find any s-t path

2
1

Ford-Fulkerson Max Flow


4
3

2
3
2

1
2
2
1

5
1

1
1

1
2

1
2

2
1

Determine the capacity of the path.


Send units of flow in the path.
Update residual capacities.

Ford-Fulkerson Max Flow


4
3

2
3
2

1
2
2
1

5
1

1
1

1
2

1
2

2
1

There is no s-t path in the residual


network. This flow is optimal

Ford-Fulkerson Max Flow


4
3

2
3
2

1
2
2
1

5
1

1
1

1
2

1
2

2
1

These are the nodes that are reachable


from node s.

Ford-Fulkerson Max Flow


1

1
2

2
2

3
Here is the optimal flow

You might also like