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 Kk1 ckxk subject to Kk1 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- k1 l1 nk2 p2 s2 nk3 p3 s3 - lk2 - lk3 e - 3j1 nkj + 3j1 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.
© Copyright 2026 Paperzz