Sunteți pe pagina 1din 10

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 17 which
11 5 4 D
B total demand (if1 such a flow
satisfiesSthe
1

exists). 2 5 2
 Ex.: 5
A
2
15 5
4
S 19 C 9 D2 8
16 2
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 for17the
11 5 B 4 D1
transshipment
S1 problem, 17
else5 the transshipment2 problem is infeasible.
2
11 5 T
O 16 A
2
15 5 8
4
S2 19 C 9 D2 8
16
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 flow4 is a feasible flow 17
11 S 5 5 4 D
B for the transshipment
1
1

9 5 2 17 17
problem. 2 2
11 5 T
1 13
O 16 2 A
2 2 8
16 15 5 8
4
S 19 18 C 9 8 D2 8
16 2
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).
people A B C D E
 Example:

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, 1 1 1
1 1
people A elseBthe assignment
C E
D is infeasible.
problem

jobs x y z u v
1 1 1 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.
O
The feasible assignment
1 is A → x , B → y, C → u , D → z
,E→v. 1 1 1 1
1 1 1 1 1
people A B C D E
1 1 1
1
1
jobs x y z u v
1 1 1 1 1 1 1
1 1
1
T
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, O
1 the assignment
1
problem is 1
infeasible. 1 1
people A B C D E F

1 1 1 1
1
jobs x y z u v w

1 1 1
1 T 1
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 1
1 1
people A B C D E F

1 1 1 1
1
jobs x y z u v w

1 1 1
1 T 1
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


people A B C D E F
infeasible.

jobs x y z u v w

S-ar putea să vă placă și