You are on page 1of 2

The Multi-Commodity Network Flow Problem

Problem Statement:
Suppose we have a network of nodes connected by lines. Each line has a particular capacity (aka "bandwidth"), as well as a cost associated with it. There is some traffic flowing along each line (where the flow is bi-directional) consuming some of the bandwidth. The traffic flow is made up of node-to-node demands that may go through multiple hops along its route in order to get from origin to destination. We can assume that each possible pair of nodes has some traffic flow between them. The goal is to find the optimal (ie, minimum cost) set of routes through the network for each of those demands. The constraints are that total flow along each link must be less than the link's capacity, and that the traffic demands cannot be split onto different routes, i.e., the complete connection is routed through a single path.

An Example:
Consider the following network of 5 nodes, and 8 links. (Numbers shown correspond the node labels, and the link labels.)
1 1 2 3 3 5 4 8 2 6 4 7 5

Basic Notation:

N = # of nodes; N set of all nodes L = # of links/lines; L set of all lines/links i, jN dij = demand from node i to node j iN define Li L to be the set of all links incident at node i kL define Yk L to be the set of all links adjacent to link k (i.e., links that sprout from the nodes on either ends of link k) kL Ck = Capacity of link k kL Mk = Cost of using link k to provision a flow of unit size kL iN wki = 0 if kLi, = 1 otherwise
A little explanation here: A source (sink) line is a potential link through which a demand either starts (ends) its journey across the network. For e.g., if a packet needs to be transferred from node 1 to node 5, it has to start its journey (i.e., leave node 1) on one of links 1/2/3, and similarly has to end its journey (i.e., enter node 5) on one of links 6/7/8. Thus, links 1/2/3 are potential source links for d15, and likewise, links 6/7/8 are potential sinks for d15. Consequently, all lines incident at a node are potential sources (sinks) for demands starting (ending) therefrom this motivates the construction of the parameters wki, for kL, and iN.

Choice Variables: The question we are trying to answer is this: consider any link is it
(capable of) carrying a package of size dij that needs to be routed from node i to node j while satisfying all capacity constraints? Consequently, the choice variables are: k L i, j N X k if link k carries demand dij from node i to node j ij = 1

=0

otherwise

CIENA Corporation Internal Report Core Switching Division, Cupertino, CA Reporting Manager Derek Sanders by Eswar Sivaraman (seswar@okstate.edu)

Constraints:
N N

(1)

Capacity Constraint:

k L
i=1 j=1

d ij X k ij C k

(2)

Demand completion constraint: Eqn 2(a) Eqn 2(b)

i, j N
kLi

Xk ji d ji = d ji Xk ij dij = dij
kLi

i, j N

(to make sure that all packages are received, and that all packages are forced out of their source nodes)

(3)

Flow Balance Equations: Eqn 3(a) Eqn 3(b) i, j N k L i, j, p N


kLp

( w ki + w kj ) ( w ki w kj + 1)X k ij
rYk

Xr ij 0

Xk ij

(to make sure that what goes in comes out and to avoid any loops); actually, eqn 3(b) is redundant since the final solution, being minimal in cost, will obviously not include any wasteful loops.

Integer Programming Formulation:


MINIMIZE
kL i, jN

Xk ij dijMk Constra int s - 1, 2(a), 2(b), 3(a), 3(b)

SUBJECT TO

(other obvious constraints choice variables are non-negative and take on values of 0/1)

Additional Notes:
This so-to-speak miserliness in my notation is to purposely avoid the standard approach of flow in = flow out, and also to avoid explicitly documenting the direction of flow, which, I feel only adds to the complexity of the formulation. This IP formulation will identify the shortest path for each demand packet across the network. Also, equations 1, 2(a), and 2(b) will automatically identify if it impossible to satisfy all demands, i.e., if the IP has an infeasible solution. If the IP is feasible, the Lagrangian, i.e., the marginal prices for equations 2 (a) and (b) will be zero. If the IP is infeasible, some/all of the marginal prices for constraints 2 (a) and (b) will be non-zero; consequently elimination of the corresponding demand pairs will render the IP feasible, allowing for the remaining flows to be routed.

For the example network, the Node adjacencies are: L1 = {1, 2, 3}, L2 = {1, 4, 6}, L3 = {2, 4, 5, 7}, L4 = {3, 5, 8}, L5 = {6, 7, 8} and, the Link adjacencies are: Y1 = {2, 3, 4, 6}, Y2 = {1, 3, 4, 5, 7}, Y3 = {1, 2, 5, 8}, Y4 = {1, 2, 5, 6, 7}, Y5 = {2, 3, 4, 7, 8}, Y6 = {1, 4, 7, 8}, Y7 = {2, 4, 5, 6, 8}, Y8 = {3, 5, 6, 7}
CIENA Corporation Internal Report Core Switching Division, Cupertino, CA Reporting Manager Derek Sanders by Eswar Sivaraman (seswar@okstate.edu)

You might also like