Applications of Max Flow

Applications of Maximum Flow
and Minimum Cut Problems
In this handout
• Transshipment problem
• Assignment Problem
Transshipment Problem
• Given: Directed network G=(V, E)
Supply (source) nodes Si with supply amounts si, i=1,…,p
Demand (sink) nodes Di with demand amounts di, i=1,…,q
Total supply ≥ total demand
Capacity function u: E  R
• Goal: Find a feasible flow through the network which satisfies the
total demand (if such a flow exists).
• Ex.:
17
4
D
11 S
5
1
B
1
5
2
2
5
A
2
15
5
4
19
9
S
D2 8
C
2
16
Solving the Transshipment Problem via Maximum Flow
• The transshipment problem can be solved by creating and solving a related instance
of maximum flow problem:
– Create a supersource O. For each supply node Si, add an arc O  Si with
capacity equal to the supply amount of Si .
– Create a supersink T. For each demand node Di, add an arc Di  T with capacity
equal to the supply amount of Di .
– Find the maximum flow from O to T in the resulting auxiliary network.
– If maximum flow value = total demand
then the current maximum flow is a feasible flow for the transshipment problem,
else the transshipment problem is infeasible.
17
4
D
11 S
5
1
B
1
2
11
O 16
5
16
S2
2
5
A
2
4
17
19
T
15
C
8
5
9
D2
8
Solving the Transshipment Problem via Maximum Flow
• In our example,
– The maximum flow from O to T is obtained by applying the
Augmenting Path algorithm. The maximum flow value is 25.
The bold red numbers on the arcs show the flow values.
– Since the maximum flow value = 25 = 17+8 = total demand,
the current maximum flow is a feasible flow
for the transshipment problem.
11
S1
9
2
11
O 16
5
5
5
2
2
16
4
16
S2
19
5
A
2
18
2
B 4
2
4
1
13
D1
17
17
T
15
C
8
8
8
5
9
17
D2
8
Assignment Problem
• Given: n people and n jobs
Each person can be assigned to exactly one job
Each job should be assigned to exactly one person
Person-job compatibility is given by a directed network
(e.g., having a link A  x means “person A can do job x ”)
• Goal: Find an assignment of n jobs to n people
(if such an assignment exists).
• Example:
people
A
B
C
D
E
jobs
x
y
z
u
v
Solving the Assignment Problem via Maximum Flow
• The assignment problem can be solved by creating and solving a related instance of
the transshipment problem:
– Each person-node is considered as a supply node with supply amount 1.
– Each job-node is considered as a demand node with demand amount 1.
– Assign capacity 1 to each arc.
– Solve the resulting transshipment problem by finding maximum flow in the
auxiliary network.
– If maximum flow value = n
then the current maximum flow gives a feasible assignment,
else the assignment problem is infeasible.
people
jobs
1
1
A
x
1
B
C
z
y
1
1
1
1
1
D
E
u
v
1
1
Solving the Assignment Problem via Maximum Flow
• In our example,
the red numbers on the arcs show the optimal flow values.
Since the maximum flow value is 5,
the assignment problem is feasible.
The feasible assignment is A  x , B  y, C  u , D  z , E  v .
O
1
1
1
C
1
x
1
1
1
1
1
1
T
v
u
1
1
E
1
z
1
1
D
1
y
1
1
1
B
A
1
1
1
1
people
jobs
1
1
Showing the infeasibility of an assignment problem
using maximum-flow-based arguments
• Let’s solve the assignment problem below via maximum flow.
The red numbers on the arcs show the optimal flow values.
Since the maximum flow value = 5 < 6 = number of jobs,
the assignment problem is infeasible.
O
1
1
jobs
1
B
A
people
x
1
1
C
1
D
1
E
1
z
y
1
1
u
1
T
1
1
v
F
1
1
w
Showing the infeasibility of an assignment problem
using minimum-cut-based arguments
• The O-side of the minimum cut is {O, A, B, C, D, x, y, z} (the set of
the nodes that are reachable from O via augmenting paths)
• Return to the original network (delete nodes O and T and the arcs
incident to them).
O
1
1
jobs
1
B
A
people
x
1
1
C
1
D
1
E
1
z
y
1
1
u
1
T
1
1
v
F
1
1
w
Showing the infeasibility of an assignment problem
using minimum-cut-based arguments
• The capacity of the modified cut is 0 (since there are no arcs going
from O-side to T-side).
• There are 2 people (E, F) and 3 jobs (u, v, w) on T-side.
• Thus, one of the 3 jobs should be assigned
to a person from O-side (A, B, C, D).
• But there are no arcs going from O-side to T-side.
( A, B, C, D can’t do the jobs u, v, w).
• Thus, there is no way to assign the T-side jobs,
and the assignment problem is infeasible.
people
A
B
C
D
E
F
jobs
x
y
z
u
v
w