MULTICOMMODITY FLOWS I

OR 215
Network Flows
Spring 1999
M. Hartmann
MULTI-COMMODITY FLOWS I
Multi-commodity Flow Problem
Solution Approaches
Applications
Optimality Conditions
Basis Partitioning Method
MULTI-COMMODITY FLOW PROBLEM
=
unit shipping cost to of commodity k on arc
(i,j)
=
=
uij =
flow of commodity k on arc (i,j)
capacity of commodity k on arc (i,j)
overall capacity of arc (i,j)
minimize
 Kk1 ckxk
subject to
 Kk1 x kij
 uij (i,j)  A
Nxk = bk
k = 1,2,…,K
0  x kij  u kij
(i,j)  A, k = 1,2,…,K
The set of constraints involving the node-arc incidence
matrix N are referred to as mass-balance constraints.
The other constraints, referred to as bundle constraints,
are all that link the K min-cost flow problems.
Note: We do not require the multi-commodity flows to be
integral, and the integrality property does not hold for
K  2 commodities.
In the network below, there are three commodities, and the
objective is to maximize the total flow from s1 to t1,
s2 to t2 and s3 to t3 (all capacities uij = 1).
s1
t3
1
s2
2
t2
3
t1
s3
maximum multi-commodity flow =
maximum integral multi-commodity flow =
Complexity: Even for K = 2, just finding a feasible
integral multi-commodity flow is NP-hard.
SOLUTION APPROACHES
Price-directive Decomposition
The bundle constraints are relaxed, and instead the
commodities are “charged” a per-unit shipping fee wij
on arc (i,j). The linkage between the K min-cost flow
problems is replaced by the problem of determining
appropriate fees.
1. Resource-directive Decomposition
Instead of charging a fee on each arc, the capacity is
allocated among the K commodities, again resulting in K
min-cost flow problems. The linkage is replaced by the
problem of optimally allocating capacity.
2.
Partitioning Methods
The simplex method is specialized to take advantage of
the network structure in the problem. The basis matrix is
partitioned in such a way that only a small dense system
and K network systems need to be solved instead of a
large, sparse system.
APPLICATIONS
Many applications of the multi-commodity flow problem
involve the routing of multiple commodities in networks
such as:
Communication Networks
Nodes are origin/destination stations for
messages, and the supply/demand is the
number of messages to be sent.
Computer Networks
Nodes are storage devices, terminals or
computer systems, and the supply/demand
is derived from data transmission rates.
Railroad Transportation Networks
Distribution Networks
Foodgrain Import/Export Networks
WAREHOUSING OF SEASONAL PRODUCTS
A company produces K products to meet a seasonal
demand, and products are often held in inventory to
satisfy later demand. The total number of items (of any
commodity) which can be held in inventory is R, but the
cost h kj of holding inventory from period j to period j +1 is
product-dependent. In period j, the demand for product k
is dkj , the production capacity is u kj and the unit production
cost is c kj .
4
k
d
 k
1 j
s
$ c 1 , u1 ,
k
k
$ h1 ,,R
k
1
- d1k
2
3
4
- dk2
- dk3
- dk4
Arc labels are costs c kij , capacities u kij and uij.
RACIAL BALANCING OF SCHOOLS
Students of various ethnic groups are to be assigned to
different schools to satisfy diversity requirements in such a
way that the total distance traveled by all students is
minimized. School sj has a capacity of uj and upper and
lower bounds u kj and lkj for the number of students of
ethnic group k. There are n kj students from ethnic group k
in population center pj, who must each travel a distance
dij to school sj.
n1k
p1
$d11,,
s1
- l1k
K k
k k
$0, u1 - l1 ,u1- k1 l1
nk2 p2
s2
nk3 p3
s3
- lk2
- lk3
e
- 3j1 nkj + 3j1 l kj
AIRLINE SCHEDULING PROBLEM
Once a schedule of flights has been determined, the
problem of assigning airplanes to individual flight legs
(oj,dj) remains. Here the supply bk(s)= -bk(t) of commodity
k is just the number nk of planes available. Some arcs
(s,oj) and (di,oj) will have a capacity u kij = 0, indicating that
a type k plane would be unsuitable or unavailable for the
flight leg. Instead of an upper bound ujj on the number of
planes assigned to flight leg (oj,dj), there is a lower bound
ljj = 1. This can be incorporated by reversing the arcs
(oj,dj) and setting ujj = K-1.
-1 o1
nk
s
d1
-1
o2
1
t
-nk
d2 1
Note: In this application, an integral multi-commodity flow
is required. The (fractional) multi-commodity flow could be
used for bounding, or heuristically rounded to a (good)
integral multi-commodity flow.
OPTIMALITY CONDITIONS
Just as was the case for the min-cost flow problem, there
is a notion of the reduced cost of an arc:
= (+wij ) - k(i) + k(j)
To keep things simple, we only consider the case = :
Complementary Slackness Conditions: The multicommodity flows are optimal for the unconstrained multicommodity flow problem if and only if they are feasible,
and for some arc prices wij  0 and node potentials k(),
(i)
wij
- uij = 0
(ii)  0
(iii)
=0
(i,j)
A
(i,j)  A, k = 1,2,…,K
(i,j)
 A, k = 1,2,…,K
You should recognize these last two conditions.
Theorem: Let be optimal multi-commodity flows and
let wij be optimal arc prices for the (unconstrained) multicommodity flow problem. Then for each commodity k,
the flow variables x kij solve the following (uncapacitated)
min-cost flow problem:
minimize
 ij ( c kij +wij ) x kij
subject to
Nxk = bk

x kij  0
(i,j)  A
Proof: This follows from the complementary slackness
optimality conditions.
Note:
The converse does not always hold!
BASIS PARTITIONING
From the constraint matrix of the multi-commodity flow
problem, we can see the “staircase” network structure:
bundle
constraints
commodity 1
commodity 2
commodity 3
commodity K
I
bundle constraint coefficients
N
N
N
N
Here I is the identity matrix, corresponding to the coefficients of the slack variables sij in the bundle constraints
 + sij = 0.
Recall: The simplex method repeatedly solves systems
of equations involving a basis matrix B, which is simply a
maximal non-singular submatrix of the constraint matrix.
For the multi-commodity problem, a basis matrix will have
rank m +K(n-1), since each node-arc adjacency matrix has
rank n-1.
STRUCTURE OF THE BASIS MATRIX
Each column of the basis matrix B either corresponds to
a slack variable or flow variable, so each basis matrix defines K subgraphs M1,M2,…,MK (one for each commodity):
bundle
constraints
commodity 1
commodity 2
commodity 3
commodity K
M1\B1
B1
M2 = B2
B2
B3
M3\B3
BK
basis (spanning tree) for each commodity
Note that the incidence matrix Mk of Mk must contain a
basis Bk of N, since otherwise B would have rank less
than m +K(n-1). From our results on min-cost flows, we
know that each such basis corresponds to a spanning
tree Tk in Mk.
NUMERICAL EXAMPLE
b1(s1) = 10
b1(t1) = -10
$1, 5
s1
t1
$5, 
$5, 
$1, 10
1
2
$1, 
$1, 
s2
t2
$5, 
b2(s2) = 20
b2(t2) = -20
Arc labels are costs cij and capacities uij.
5
s1
t1
spanning tree T1
5
1
5
s2
5
5
5
spanning tree
15
2
T2
5
t2
A CHANGE OF VARIABLES
We will show how the spanning trees Tk can be used to
find a change of variables xB = DyB, such that D is nonsingular and B'= BD has the special structure below:
bundle
constraints
commodity 1
commodity 2
commodity 3
commodity K
W
B1
B2
B3
BK
basis (spanning tree) for each commodity
(i)
How can we efficiently solve a system of the form
BxB = b ( B'yB = b)?
(ii)
How can we efficiently solve a system of the form
B = cB (B' = cBD)?
The change of variables is the result of applying column
operations to zero out the columns of the matrices Mk\Bk.
s
t
spanning tree T
1
s
1
1
0
0
t
-1
0
0
-1
1
0
-1
1
0
2
0
0
-1
1
2
If we consider all basic arcs (i,j)  A\Tk, we obtain
= +  (i,j)A\Tk
where  pq
ij is +1,-1 or 0 depending on the orientation of
the arc (p,q) in the cycle formed when (i,j) is added to Tk.
Note: Given the y kij , we can compute the multi-commodity
flows x kij in O(Kn+mn) time.