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

07 Network Flow Algorithms-1

The document discusses the maximum flow problem in networks and algorithms for solving it. It begins by defining different types of networks and describing how the maximum flow problem relates to maximizing flow through a network from a source to a destination. It then provides details on modeling networks as graphs, defining the concepts of flow and valid flows. The document explains the Ford-Fulkerson method for computing maximum flow and analyzes its running time. It also discusses the Edmonds-Karp algorithm and its improved running time. Finally, it describes how the maximum flow problem can be used to solve the maximum matching problem in bipartite graphs.
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
66 views

07 Network Flow Algorithms-1

The document discusses the maximum flow problem in networks and algorithms for solving it. It begins by defining different types of networks and describing how the maximum flow problem relates to maximizing flow through a network from a source to a destination. It then provides details on modeling networks as graphs, defining the concepts of flow and valid flows. The document explains the Ford-Fulkerson method for computing maximum flow and analyzes its running time. It also discusses the Edmonds-Karp algorithm and its improved running time. Finally, it describes how the maximum flow problem can be used to solve the maximum matching problem in bipartite graphs.
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 56

The Maximum Network Flow

Problem
CSE 3101
2
Network Flows
CSE 3101
3
Types of Networks
Internet
Telephone
Cell
Highways
Rail
Electrical Power
Water
Sewer
Gas


CSE 3101
4
Maximum Flow Problem
How can we maximize the flow in a network from a source or set of
sources to a destination or set of destinations?
The problem reportedly rose to prominence in relation to the rail
networks of the Soviet Union, during the 1950's. The US wanted to
know how quickly the Soviet Union could get supplies through its rail
network to its satellite states in Eastern Europe.
In addition, the US wanted to know which rails it could destroy most
easily to cut off the satellite states from the rest of the Soviet Union.
It turned out that these two problems were closely related, and that
solving the max flow problem also solves the min cut problem of
figuring out the cheapest way to cut off the Soviet Union from its
satellites.

Source: lbackstrom, The Importance of Algorithms, at www.topcoder.com
CSE 3101
5
Instance:
A Network is a directed graph G
Edges represent pipes that carry flow
Each edge (u,v) has a maximum capacity c(u,v)
A source node s in which flow arrives
A sink node t out which flow leaves
Goal:
Max Flow
Network Flow
Figure courtesy of J. Edmonds
CSE 3101
6
The Problem
Use a graph to model material that flows through conduits.
Each edge represents one conduit, and has a capacity, which is
an upper bound on the flow rate, in units/time.
Can think of edges as pipes of different sizes.
Want to compute max rate that we can ship material from a
designated source to a designated sink.
CSE 3101
7
What is a Flow Network?
Each edge (u,v) has a nonnegative capacity c(u,v).
If (u,v) is not in E, assume c(u,v)=0.
We have a source s, and a sink t.
Assume that every vertex v in V is on some path from s to t.
e.g., c(s,v
1
)=16; c(v
1
,s)=0; c(v
2
,v
3
)=0
CSE 3101
8
What is a Flow in a Network?
For each edge (u,v), the flow f(u,v) is a real-valued
function that must satisfy 3 conditions:



Notes:
The skew symmetry condition implies that f(u,u)=0.
We show only the positive flows in the flow network.
Capacity constraint: , , ( , ) ( , ) u v V f u v c u v e s
Skew symmetry: , , ( , ) ( , ) u v V f u v f v u e =
Flow conservation { , }, ( , ) 0 :
v V
u V s t f u v
e
e =

CSE 3101
9
Example of a Flow:
f(v
2
, v
1
) = 1, c(v
2
, v
1
) = 4.
f(v
1
, v
2
) = -1, c(v
1
, v
2
) = 10.
f(v
3
, s) + f(v
3
, v
1
) + f(v
3
, v
2
) + f(v
3
, v
4
) + f(v
3
, t) =
0 + (-12) + 4 + (-7) + 15 = 0
flow
capacity
capacity
CSE 3101
10
The Value of a flow
The value of a flow is given by






e e
= =
V v V v
t v f v s f f ) , ( ) , ( | |
This is the total flow leaving s = the total flow arriving in t.
CSE 3101
11
Example:
|f| = f(s, v
1
) + f(s, v
2
) + f(s, v
3
) + f(s, v
4
) + f(s, t) =
11 + 8 + 0 + 0 + 0 = 19

|f|= f(s, t) + f(v
1
, t) + f(v
2
, t) + f(v
3
, t) + f(v
4
, t) =
0 + 0 + 0 + 15 + 4 = 19

CSE 3101
12
A flow in a network
We assume that there is only flow in one direction at a time.




Sending 7 trucks from Edmonton to Calgary and 3 trucks from
Calgary to Edmonton has the same net effect as sending 4
trucks from Edmonton to Calgary.
CSE 3101
13
Multiple Sources Network
We have several sources and several targets.
Want to maximize the total flow from all sources to all targets.
Reduce to max-flow by creating a supersource and a supersink:
CSE 3101
14
Residual Networks
The residual capacity of an edge (u,v) in a network with a flow f is
given by:
) , ( ) , ( ) , ( v u f v u c v u c
f
=
The residual network of a graph G induced by a flow f is the graph
including only the edges with positive residual capacity, i.e.,
= ( , ), where
f f
G V E = e > {( , ) : ( , ) 0}
f f
E u v V V c u v
CSE 3101
15
Example of Residual Network
Flow Network:
Residual Network:
CSE 3101
16
Augmenting Paths
An augmenting path p is a simple path from s to t on
the residual network.
We can put more flow from s to t through p.
We call the maximum capacity by which we can
increase the flow on p the residual capacity of p.
} on is ) , ( : ) , ( min{ ) ( p v u v u c p c
f f
=
End of Lecture 14
April 22, 2009
CSE 3101
18
Augmenting Paths
Network:
Residual
Network:
Augmenting
path
The residual capacity of this augmenting path is 4.
CSE 3101
19
Computing Max Flow
Classic Method:
Identify augmenting path
Increase flow along that path
Repeat
CSE 3101
20
Ford-Fulkerson Method
CSE 3101
21
Example
Flow(1)
Residual(1)
Flow(2)
Residual(2)
No more augmenting paths max flow attained.
Cut
CSE 3101
22
Cuts of Flow Networks
=
e e
A ( , ) of a flow network is a partition cut of into and
such that and .
S T V S T V S
s S t T
CSE 3101
23
The Net Flow through a Cut (S,T)
f(S,T) = 12 4 + 11 = 19

e e
=
T v S u
v u f T S f
,
) , ( ) , (
CSE 3101
24
The Capacity of a Cut (S,T)
c(S,T)= 12+ 0 + 14 = 26

e e
=
T v S u
v u c T S c
,
) , ( ) , (
CSE 3101
25
Augmenting Paths example
Capacity of the cut
= maximum possible flow through the cut
= 12 + 7 + 4 = 23
The network has a capacity of at most 23.
In this case, the network does have a capacity of 23, because this
is a minimum cut.
Flow(2)
cut
CSE 3101
26
Net Flow of a Network
The net flow across any cut is the same and equal to
the flow of the network |f|.
CSE 3101
27
Bounding the Network Flow
The value of any flow f in a flow network G is
bounded from above by the capacity of any cut of G.
CSE 3101
28
Max-Flow Min-Cut Theorem
If f is a flow in a flow network G=(V,E), with source s
and sink t, then the following conditions are equivalent:
1. f is a maximum flow in G.
2. The residual network G
f
contains no augmented paths.
3. |f| = c(S,T) for some cut (S,T) (a min-cut).
CSE 3101
29
The Basic Ford-Fulkerson Algorithm
CSE 3101
30
Example
Original Network
augmenting path
4
Resulting Flow =
Flow Network
CSE 3101
31
Example
Resulting Flow =
4
Flow Network
Residual Network
Flow Network Resulting Flow = 11
augmenting path
CSE 3101
32
Example
Resulting Flow =
11
Flow Network
Residual Network
Flow Network Resulting Flow = 19
augmenting path
CSE 3101
33
Example
Resulting Flow =
19
Flow Network
Residual Network
Flow Network Resulting Flow = 23
augmenting path
CSE 3101
34
Residual Network
Example
Resulting
Flow =
23
No augmenting path:
Maxflow=23
CSE 3101
35
Analysis
O(E)
O(E)
?
CSE 3101
36
Analysis
If capacities are all integer, then each augmenting
path raises |f| by 1.
If max flow is f*, then need |f*| iterations time is
O(E|f*|).
Note that this running time is not polynomial in input
size. It depends on |f*|, which is not a function of |V|
or |E|.
If capacities are rational, can scale them to integers.
If irrational, FORD-FULKERSON might never
terminate!
CSE 3101
37
The Basic Ford-Fulkerson Algorithm
With time O ( E |f*|), the algorithm is not polynomial.
This problem is real: Ford-Fulkerson may perform
very badly if we are unlucky:
|f*|=2,000,000
CSE 3101
38
Run Ford-Fulkerson on this example
Augmenting Path
Residual Network
CSE 3101
39
Run Ford-Fulkerson on this example
Augmenting Path
Residual Network
CSE 3101
40
Run Ford-Fulkerson on this example
Repeat 999,999 more times
Can we do better than this?
CSE 3101
41
The Edmonds-Karp Algorithm
A small fix to the Ford-Fulkerson algorithm makes it work in polynomial time.
Select the augmenting path using breadth-first search on residual network.
The augmenting path p is the shortest path from s to t in the residual
network (treating all edge weights as 1).
Runs in time O(V E
2
).
CSE 3101
42
The Edmonds-Karp Algorithm - example
The Edmonds-Karp algorithm halts in only 2 iterations
on this graph.
CSE 3101
43
Further Improvements
Push-relabel algorithm ([CLRS, 26.4]) O(V
2
E).
The relabel-to-front algorithm ([CLRS, 26.5) O(V
3
).
(We will not cover these)

An Application of Max Flow:
Maximum Bipartite Matching
CSE 3101
45
Maximum Bipartite Matching
A bipartite graph is a graph
G=(V,E) in which V can be
divided into two parts L and R
such that every edge in E is
between a vertex in L and a
vertex in R.

e.g. vertices in L represent
skilled workers and vertices in
R represent jobs. An edge
connects workers to jobs they
can perform.
CSE 3101
46
A matching in a graph is a subset M of E, such that for all vertices
v in V, at most one edge of M is incident on v.
CSE 3101
47
A maximum matching is a matching of maximum cardinality
(maximum number of edges).
not maximum maximum
CSE 3101
48
A Maximum Matching
No matching of cardinality 4,
because only one of v and u
can be matched.

In the workers-jobs example
a max-matching provides
work for as many people as
possible.
v
u
CSE 3101
49
Solving the Maximum Bipartite Matching Problem
Reduce the maximum bipartite matching problem on graph G to the
max-flow problem on a corresponding flow network G.
Solve using Ford-Fulkerson method.
CSE 3101
50
Corresponding Flow Network
To form the corresponding flow network G' of the bipartite graph G:
Add a source vertex s and edges from s to L.
Direct the edges in E from L to R.
Add a sink vertex t and edges from R to t.
Assign a capacity of 1 to all edges.
Claim: max-flow in G corresponds to a max-bipartite-matching on G.

s
L R
t
G G
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
CSE 3101
51
Solving Bipartite Matching as Max Flow
= = ( , ) be a bipartite graph with vertex partition . L et G V E V L R
' ' ' = ( , ) be its corresponding flow netw Le o k t r . G V E
is a matching in , If M G
' = there is an integer-valued flow in with value | | | | en . th f G f M
' if is an integer-valued f Convers low in , e y , l f G
= there is a matching in with cardinality | then | | |. M G M f
max| | max(intege T r hus |f|) M =
CSE 3101
52
Does this mean that max |f| = max |M|?
Problem: we havent shown that the max flow f(u,v) is necessarily
integer-valued.
CSE 3101
53
Integrality Theorem
If the capacity function c takes on only integral values, then:
1. The maximum flow f produced by the Ford-Fulkerson method has
the property that |f| is integer-valued.
2. For all vertices u and v the value f(u,v) of the flow is an integer.

So max|M| = max |f|

CSE 3101
54
Example
min cut
|M| = 3 max flow =|f|= 3
CSE 3101
55
Conclusion
Network flow algorithms allow us to find the maximum
bipartite matching fairly easily.

Similar techniques are applicable in other combinatorial
design problems.
CSE 3101
56
Example
In a department there are n courses and m instructors.
Every instructor has a list of courses he or she can teach.
Every instructor can teach at most 3 courses during a year.

The goal: find an allocation of courses to the instructors subject to
these constraints.

You might also like