An Implementation of the Parallel Algorithm for solving Nonlinear Multi-commodity Network Flow Problem Shieh-Shing Lin, Huay Chang, Cheng-Chien Kuo, Chun-Liang Hsu Dept. of Electrical Engineering St. John’s University #499, Sec. 4 Tam-King Rd., Tamsui TAIWAN sslin@mail.sju.edu.tw Dept. of Information Management Chihlee Institute of Technology Abstract: - In this paper, we propose a method to solve the Nonlinear Multicommodity Network Flow (NMNF) Problem and discuss the associated implementation. We have combined this method with a projected-Jacobi (PJ) method and a dual-type method possessing decomposition effects. With the decomposition, our method can be parallel processed and is computationally efficient. We have tested our method on several examples of NMNF problem in two Processor-Network systems. As seen from the simulation results, the parallel version of the proposed method achieved a constant CPU time saving in comparison to the sequential version in solving the NMNF problem. And the efficiency of our algorithm is more significant as the number of commodity increase. Key-Words: - NMNF problem, projected-Jacobi method, dual-type method, decomposition, Network. The paper is organized in the following manner. Section 2 states the problem of the NMNF problem. Section 3 presents the method combining the projected-Jacobi and the parallel dual-type methods for solving NMNF problems. The simulation results those are used to demonstrate the computational efficiency are given in Section 4. Finally, Section 5 gives a brief conclusion 1 Introduction There are many large practical systems formed by the network-like mesh-interconnected buses or nodes through tier-lines. For example, the Network system is formed by a number of nodes interconnected with each other through tier-lines. Nonlinear multicommodity network flow (NMNF) problem is computationally difficult because of their large dimension and nonlinearity and has important applications to traffic assignment [1]-[4] and data network routing [5]-[8]. Such problems are typical convex programming problems, and the NMNF problem solution techniques mostly originate from nonlinear programming algorithm that are especially to exploit the linear constraint structure with various approaches [9]-[11]. Recently, an efficient method developed in [12], Dual Projected Pseudo Quasi-Newton method takes advantage of the special structure of inequality constraints and network sparsity. The method in [12] abbreviated DPPQN have achieved a dramatic speed-up ratio over a typical method for NMNF problem. Considering the trend about the number of commodities in the networks is increasing in NMNF problem. In this paper, we use the framework of the DPPQN method and propose a parallel algorithm to solve the NMNF with many commodities problem. Furthermore, we implement the proposed method in two real Processor-Network systems and demonstrate the computational efficiency through the simulation results. 2 Statement of the NMNF Problem We first introduce the notation for the K-commodity NMNF problem in the following:. k : denotes the index of the commodity of the network system. K : denotes the total number of the commodity of the network system. i : denotes the index of the node of the network system. I : denotes the total number of the node of the network system. Lij : denotes the set of the node j which connected with node i , from node i to node j . Lh i : denotes the set of node h which connected with node i , from node h to node i . k f ij : denotes the flow over the branch (i, j ) with the destination node (commodity) k . ri : denotes the flow requirement at node i with the k 1 ( f ) : denotes the set of f satisfying the destination node k . (i, j ) : denotes the branch from node i to node j . (h,i ) : denotes the branch from node h to node i . B : denotes the set of all network branches in the network system. | | : denotes the cardinality of the set.. inequality constraints of flow. t, w : iteration index. , : step size. 1 , 2 : predetermined positive real values. ( ) : the dual function of constrained QP I Fk ( f ijk ) : denotes the total branch cost sub-problem. ( ) : the dual function of unconstrained QP sub-problem. : denotes the vector of the Lagrange multipliers, ik , i 1,2,..., I , k 1,2,..., K and u i 1 jLij I associated with total branch flows f i 1 jLij k ij for the commodity k , and Fk () is a convex [11 , 12 ,..., 1I , 1.2 , 22 ,..., 2I ,..., 1K , 2K ,..., KI ]T . || () || : denotes the infinite norm of the vector () . function in () . K I Fk ( k 1 f i 1 jLij k ij ) : represents the sum of all the The NMNF with K-commodity problem can be stated as follows: commodity of all the branch costs of the network system. () : the increment of the vector () . K I min F ( f ijk ) Fk ( f ijk ) k 1 ()T : denotes the transpose of the vector () . (1a) i 1 jLij subject to diag[□]: a diagonal matrix formed by the diagonal terms of the matrix [□]. 2 f k Fk (t ) : denotes the Hessian of Fk with respect f jLij k ij f hLhi k hi ri k 0, i 1,2,..., I ,k 1,2,..., K ij (1b) to f ijk evaluated at f ijk (t ) . 2 Fk (t ) f k2 ij 0 fijk , (i, j ) B, k 1,2,..., K . : denotes the diagonal entry corresponding The object of NMNF with many commodities problem is to find an optimal flow solution that satisfies the flow balance constraints (1b), and the nonnegative constraints (1c), while minimizing the objective function (1a). to the branch (i , j ) of the matrix 2f k Fk (t ) . ij f k Fk (t ) : denotes the gradient of Fk with respect ij to f ijk evaluated at f ijk (t ) . Fk (t ) : denotes the component corresponding to the fijk 3 Solution Method 3.1 The Projected-Jacobi (PJ) Method branch (i , j ) of the vector f k Fk (t ) . The projected-Jacobi method uses the following iterations to solve the NMNF problem given in Eqs.(1a)-(1c), ij f : denotes the vector of all fijk (t ), (i, j ) B, k 1,2,..., K and f [ f11 , f 21 ,..., f|B1| , f12 , f 22 ,..., f|B2| ,..., K 1 K 2 f (t + 1) = f (t ) + (t )f * (t ) , K T |B| f , f ,..., f ] . where f (t ) : denotes the vector of the vector of all following: f ,..., f , f ,..., f ] K 2 denotes f (t ), (i, j ) B, k 1,2,..., K , at iteration t and the | B | K 1 column vector f is described in the f [f11 , f 21 ,..., f|B1| , f12 , f 22 ,..., K 1 f (t ) (2) k ij all fijk (t ), (i, j ) B, k 1,2,..., K and 2 |B| (1c) f [ f11 , f 21 ,.., f|B1| , f12 , f 22 ,.., f|B2| ,.., f1K , f 2K ,.., f|BK| ]T ; (t ) 0 is a step-size determined by the K T |B| QP: quadratic programming. 2 centralized Amijo rule [13], and f * (t ) denotes the where Dijk (t ) is a B B diagonal matrix vector of all f ijk , (i, j ) B, k 1,2,..., K , the corresponding to commodity k , and Dijk (t ) = | B | K 1 column increment vector f is of the f1K , f 2K ,..., f |BK| ]T , that solves the following 1 diag [2f k Fk (t )] + I , and the diagonal entry ij 2 2 Fk (t ) corresponding to the branch ( i, j ) is .. 2 f ijk quadratic programming (QP) sub-problems: . From Eqs.(1a)-(1c) and since D ij is a block * following form, f [f11 , f 21 ,..., f |B1| , f12 , f 22 ,..., f |B2| ,..., . I min f ij i 1 jLij diagonal matrix, we can rewrite Eqs.(3a)-(3c) as 1 [ f ij (t ) T Dij (t )f ij (t ) 2 K min fij F (t ) f ij (t )] T f ij (3a) ( f jLij 1 [ 2 f k 1 i 1 jLij (t )T Dijk (t )f ijk (t ) k ij f k Fk (t )T f ijk (t )] (5a) ij subject to k ij I subject to (t ) f (t )) k ij ( f hLhi k hi (t ) f (t )) k hi ( f ri k 0, i 1,2,..., I , k 1,2,..., K jLij (3b) k ij (t ) f ijk (t )) ( f hLhi k hi (t ) f hik (t )) ri k 0i 1,2,..., I , k 1,2,..., K 0 f ijk (t ) f ijk (t ), (i, j ) B, k 1,2,..., K ,(3c) 0 f ijk (t ) f ijk (t ) , (i, j ) B , k =1,2,…, K (5c) where Dij (t ), (i, j ) B is a B K B K block 1 2 diagonal matrix and Dij (t ) diag [ 2f ij F (t )] I , 3.2 The Parallel Dual-type Method Let denote the set of f satisfying the inequality constraints of flows, that is, f f represents f f satisfying (3c). Therefore, we see that if f f , then f f for , 0< 1 . Hence, we can rewrite (5a)-(5c) as and fij F (t )T [ f 1 F1 (t )T , f 2 F2 (t )T ,..., f K FK (t )T ] ij , F and f F 2 f ij ij T ij denote the Hessian and the ij gradient of F with respect to f ij for the branch (i, j ) , (i, j ) B , respectively, and f ij (t ) denotes K the vector of all fijk (t ), (i, j ) B , k =1,2,…,K. ( f ( t ) f ( t )) k 1 i 1 jLij k ij (t )T Dijk (t )f ijk (t ) (6a) ij subject to diagonal matrix Dij , and bik (t ) f ijk (t ) 1 + I 2 DijK (t ) 1 f k Fk (t )T f ijk (t )] Let Dijk be the block diagonal term of the block D (t ) 0 2 0 Dij (t ) Dij (t ) 0 I [ 2f min And is a small real number but large enough to make D ij positive definite. 1 ij (5b) jLij 0 f hLhi k hi (t ) 0, i 1,2,..., I , k 1,2,..., K where bik (t ) (4) f jLij k ij (t ) f hLhi k hi (t ) ri k , i 1,2,..., I , k 1,2,..., K , 3 (6b) g1 0 0 g 2 g 0 0 {f ijk 0 f ijk (t ) f ijk (t ), (i, j ) B, k 1,2,..., K } . The dual problem of the QP sub-problems Eqs.(6a),(6b) is max ( ) (9) Each g k is an I B matrix corresponding to (7) 0 g K commodity k in the network system. where the dual function, ( ) K min f ( t ) f ( t ) I 1 [ 2f k 1 i 1 jLij K kT ij The parallel dual-type method uses the following iteration to solve (7): Dijk (t )f ijk k (w 1) k (w) (w)k (w), k 1,2,..., K (10) I f k Fk (t )T f ijk ] ik [bik (t ) ij (8) where w denotes the iteration index, ( w) 0 is a step-size determined according to the centralized Armijo’s rule [13] and k [1k , k2 ,..., kI ]T . Furthermore, k 1 i 1 f ijk f jLij hLhi k hi ] is a function of , which is the vector of Lagrange multipliers ik , i 1,2,..., I , k 1,2,..., K , and [11 , 12 ,..., 1I , 12 , 22 ,..., 2I ,..., 1K , 2K ,..., KI ]T [11 , 12 ,..., 1I , 1.2 , 22 ,..., 2I ,..., 1K , 2K ,..., KI ]T can be obtained by solving the following linear equations: . It should be noticed that for the sake of clarity, we neglect the index t from the vector of the variable f (t ) in (8). 2 u ( ( w)) ( w) ( ( w)) 0 k i We define g be the vector of equality constraint function on the LHS of (6b). Therefore, g ik bik (t ) f ijk jLij f hLhi k hi (11) where the column vector ( ( w)) with dimension I K 1 is the gradient of ( ) with respect to at (w) , and ( ( w)) is also the vector of all , k ( ( w)) , i =1,2,…,I, k =1,2,…, K , and the i 1,2,..., I , k 1,2,..., K , and the I K 1 column vector g can be described in the following: i g [ g11 , g 12 ,..., g 1I , g12 , g 22 ,..., g I2 ,..., g1K , g 2K ,..., g IK ]T Since f [ f11 , f 21 ,.., f 1B , f12 , f 22 ,.., f B2 ,.., f1K , f 2K ,.., f BK ]T matrix 2 u ( ( w)) with dimension I K I K denotes the Hessian of the unconstrained dual function ( ) . From the Duality theorem [13], we see that the ( ( w)) and 2 u ( ( w)) can be computed by and f [f11 , f 21 ,..., f 1B , f12 , f 22 ,..., f B2 ,..., k ( ( w)) bik (t ) f , f ,..., f ] , we see that g , the K 1 gradient of K 2 g K T B with respect to f is i fˆ jLij k ij fˆ hLhi k hi , i =1,2,…,I, k =1,2,…, K , (12) an I K B K block diagonal matrix shown in the 2 u ( ( w)) gD(t )1g T . following: (13) The fˆ in (12) is the optimal solution of the constrained minimization problem on the RHS of (8). 4 Decomposition Effect: fˆ (* ) be the optimal solution (6a), (6b), (7), The first decomposition effect can be described in the following: Based on the structure of the ( ( w)) and and the minimization problem on the RHS of (8) with = * , respectively, then f fˆ (* ) . To compute k ( ( w )) , we need to solve the 2 u ( ( w)) in (12) and (13), D (t ) and g in (4) and (9), the equation in (13) can be decomposed into the following K -independent sets minimization problem on the RHS of Eq.(8) to obtain of linear equations: two-stage algorithm: [2 u ( (w))]k k (w) k ( (w)) , k 1,2,..., K i fˆijk . This can be achieved by the following Stage 1: Solve the following unconstrained minimization problem: (14) and [2 u ( ( w))]k can be constructed in the following: u ( ) min K I 1 [ 2f k 1 i 1 jLij kT ij Dijk (t )f ijk f k Fk (t )T f ijk ] [2 u ( (w))]k g k Dk (t )g k , k 1,2,..., K , (15) k 2 u and the I I matrix [ ( ( w)) ] denotes the T ij K k 1 I [b i 1 k i k i (t ) f jLij k ij f hLhi k hi ] (16) By using a gradient method [14] to obtain an approximately solution for the entry of branch (i , j ) kth diagonal sub-matrix of 2 u ( ( w)) corresponding to commodity k . The K -independent sets of linear equation (15) can be parallel processed. The second decomposition effect can be described in the following: The inequality constraint set can be decomposed into K-independent sets of k , k 1,2,..., K , that is ~ in each commodity k , and each f ijk can be computed in parallel described in the following: 2 Fk (t ) Fk (t ) ~ f ijk ( ( w)) ( ik ( w) kj ( w)), k k2 f ij f ij kK1 k , where (i, j ) B, k 1,2,..., K (17) k {fijk | 0 fijk (t ) fijk (t ), (i, j ) B} . ~ Stage 2: Project fijk , (i, j ) B, k 1,2,..., K , the These two decomposition effects also contribute the computational efficiency of the proposed method. solution obtained from Stage 1, onto . The resulting projection is fˆ ( (w)) . It is the solution of the minimization problem on RHS of Eq.(8). Due to the decomposition effect, the resulting projection Convergence: Each Dijk , (i, j ) B is a B B diagonal fˆijk , (i, j ) B, k 1,2,..., K , can be parallel matrix corresponding to commodity k , and the diagonal term corresponding to commodity k is computed by the following analytical formula, 1 diag [ 2f k Fk ( f ijk )] I . Therefore, Dijk is ij 2 positive and so is D . Since D is positive definite and g is of full rank, 2 u shown in (13) is a negative definite matrix. Thus, (w) obtained fˆijk ( ( w)) ~k k k f ij ( ( w)) if f ij ( ( w)) f ij ( ( w)) 0 ~k f ij ( ( w)) otherwise from (11) is an ascent direction for the dual problem (7), by the Strong Duality Theorem [13], solving (6a), (6b) is equivalent to solving the dual problem (7). Therefore, this implies that we let f * , * , and (18) It should be noticed that the computations in Stage 2 are the comparison check shown in Eg.(18). 5 3.3 The Complete Algorithm for solving Nonlinear Multicommodity Network Flow problem MP Our method for solving Nonlinear Multicommodity Network Flow problem is using PJ method Eq.(2) where f * (t ) is the solution of the QP sub-problem Eqs.(3a)-(3c). The proposed parallel dual-type method uses Eq.(10) to solve Eq.(7), the dual problem of QP sub-problem, instead of solving Eqs.(3a)-(3c) directly. The k (w) in Eq.(10) is obtained from solving Eq.(14) using linear programming technique. And can be parallel SP1 4 Simulation and Test Results. The fˆ , (i, j ) B, k 1,2,..., K is We have tested our method on several examples of NMNF problem. In the experiment, we fixed the network size and varied the number of commodities. The test system shown in Fig. 3 is a 10-node, 42-branch network system. We consider two types of tests of NMNF problem in this network system. The first one is a two-commodity NMNF problem. There are four different kind of flow requirements in this experiment described in the following: (1a) r19 20, r24 20 , (1b) r29 20, r34 20 , needed to set up k ( ( w)) and can be computed using the two-stage method. Consequently, the parallel dual-type method converges to optimal solution and the solution fˆ of Eq.(8) with is f , the solution of Eqs.(3a)-(3c). The complete algorithm and a typical K+1 Processor-Network system for the K-commodity NMNF problem are shown in Figs. 1 and 2. For every commodity k , k 1,2,..., K , the NMNF problem be processed in parallel in each individual processor. Set the parameters, 0, 1 , 2 (1c) r59 20, r64 20 , (1d) r39 20, r74 20 . The second one of test is a four-commodity NMNF problem in the network system. There are four different kind flow of requirements in this experiment described in the following: (2a) r19 20, r34 20, r48 20, r102 20 , k Update ( w 1) by (10) (Slave Processor) the initial step-sizes, (t ), ( w). (Master Processor) (2b) r29 20, r34 20, r58 20, r62 20 , Is || ( w) . ( w) || 1 Initially k (t ) guess f and set t 0 . (Slave Processor) Initially k guess (w) and set w 0 . (Slave Processor) ( w)) Compute fˆ k ( by (18). (Slave Processor) (2c) r39 20, r64 20, r78 20, r42 20 , and No (2d) r69 20, r84 20, r28 20, r52 20 . The objective function of the above two types of w w 1 tests have the same form: Set f ~ Compute f k ( by (17). (Slave Processor) Yes (Master Processor) Set k* fˆ k ( ( w)) and update f k (t 1) || (t ) f Is * (t ) || ∞ 2 Yes (Master Processor) ( w)) Compute k ( by (12) (Slave Processor) No Set u ( ( w))]k t t 1 Compute [ by (15). (Slave Processor) 2 k Solve (w) by (14). (Slave Processor) 1 K I ( f ijk ) 2 . 2 k 1 i1 jLij We use the following parameters in our algorithm: 1 2 10 3 , 0.01 , and initial zero flow are set to solve the above two type of tests of NMNF problem. To implement our algorithm in a real dedicated network environment, we choose two different types of Processor-Network, with Network 1 combined with 3 Processors, and Network 2 combined with 5 Processors (Fig. 4 and Fig.5) as our experimental computer network. In Network 1, there are three processors: including: a Master Processor (MP-N1) and two Slave Processors (SP1-N1 and SP2-N1). The MP-N1 executes the evaluation of the convergence criteria and the step-size determination during the iterative procedure. Each of the two Slave by (2) (Slave Processor) ( w)) SPK Fig. 2 A typical Processor-Network combined with one Master Processor (MP) and K-Slave Processors (SP1-SPK) for NMNF with K-commodity problem. k ij processed. SP2 f (t ) is the solution. (Master Processor) Fig. 1 Complete algorithm for NMNF problem. 6 Processors (SP1-N1 and SP2-N1) individually executes the parallel algorithm for solving the preassigned commodity NMNF problem. In Network 2, there are five processors including: a Master Processor (MP-N2) and four Slave Processors (SP1-N2, SP2-N2, SP3-N2, SP4-N2). The MP-N2 executes the evaluation of the convergence criteria and the step-size determination during the iterative procedure. Each of the four Slave Processors (SP1-N2, SP2-N2, SP3-N2, SP4-N2) individually executes the parallel algorithm for solving the preassigned commodity NMNF problem. We use the same model of PCs to simulate the processor in the Networks 1 and 2. The model of each PC is Pentium 4, the processor speed of it is 3.2 GHzs, and the memory RAM of each PC is 512 Mbytes. The communication hardware used between the Master Processor and the Slave Processors are the RS232 interface cards associated with a local network link [15] and the language of the computer code is C . We called these experimental works as the parallel version of test. We use Networks 1 and 2 to solve the NMNF with two and four commodities problem described above, respectively. We solve 100 examples in each case in each type of NMNF problem. The average consumption of CPU time and the resulting final objective value in each case of test for the NMNF with two and four-commodity problem in parallel version are shown in Tables 1 and 2, respectively. To investigate the computational efficiency of the proposed parallel algorithm, we use a single PC (Pentium 4) to solve the same test examples of the above two types of NMNF problem with the same initial guess and the same terminated criteria. We call this experimental work as the sequential version of test. The average consumption of CPU time and the final objective value in each case in each type of test in the sequential version are also shown in Tables 1 and 2. From Table 1, we see that the average speed-up ratio of the proposed algorithm in parallel version is about 1.44 times compared with the sequential version of two-commodity NMNF problem. Furthermore, from Table 2, we see that the average speed-up ratio of the proposed algorithm in parallel version is significant increasing about 3.68 times compared with the sequential version. This indicated that our parallel algorithm is suitable for solving the NMNF problem with many commodities problem. 5 3 2 1 8 6 9 4 7 10 Fig.3 A 10-node, 42-branch network system for NMNF problem. MP-N1 SP1-N1 SP2-N1 Fig. 4 Network 1-A dedicated Processor-Network system for two-commodity NMNF Problem. MP-N2 SP1-N2 SP2-N2 SP3-N2 SP4-N2 Fig. 5 Network 2-A dedicated Processor-Network system for four-commodity NMNF Problem. 5 Conclusion We have developed a parallel algorithm for solving NMNF problem. The method combines the projected-Jacobi method and a dual-type method possessing commodity decomposition effects. With the decomposition, the proposed method can be parallel processed. We implement the proposed algorithm in two real Processor-Network systems and solve quite a few examples of NMNF with two and four-commodity problem. As seen from the simulation results, the proposed algorithm achieve a constant CPU time saving in parallel version with respect to the sequential version in solving the NMNF problem. The efficiency of the proposed algorithm is more significant as the number of commodity increase. 7 Table 1 Comparison the efficiency of the proposed algorithm in parallel version with the sequential version in solving two-commodity NMNF problem. Parallel version Cases CPU time (s)(i) (1a) (1b) (1c) (1d) 3.141 3.212 3.244 3.081 Final objective value 9.35 10.12 10.14 9.89 Sequential version CPU time (s)(ii) 4.481 4.662 4.713 4.424 Final objective value 9.35 10.12 10.14 9.89 Speed up ratio (ii)/(i) 1.427 1.451 1.453 1.435 Table 2 Comparison the efficiency of the proposed algorithm in parallel version with the sequential version in solving four-commodity NMNF problem. Parallel version Cases CPU time (s)(i) (2a) (2b) (2c) (2d) 2.145 2.091 2.063 2.015 Final objective value 19.24 18.92 19.16 18.78 Sequential version CPU time (s)(ii) 7.682 7.602 7.654 7.589 Final objective value 19.24 18.92 19.16 18.78 Speed up ratio (ii)/(i) 3.581 3.635 3.710 3.766 331-356. [11] A. M. Geoffrion and G. W.Graves, “ Multicommodity distribution system design by benders decomposition, ” Mgmt. Sci. Vol.20, No. 5, 1974, pp. 822-884. [12] S.-Y. Lin and C.-H. Lin, “ A Computational efficient method for nonlinear multicommodity network problems, ” Networks, Vol.29, 1997, pp. 255-244. [13] D. Luenberger, Linear and nonlinear programming, 2nd ed. Addison-Wesley Reading, MA,1984. [14] D. P. Bertsekas and J. N. Tsitsiklis, Parallel and Distributed Computation: Numerical Methods. Prentice-Hall, London. 1989. [15] Mazidi, The 80x86 IBM PC Compatible Computers Volume II Design & Interfacing of the IBM PC & Compatible 3/e, 2000. References: [1] S. C. Dafermos and F. T. Sparrow, “ The traffic assignment problem for a general network, ” J. Res. Nat. Bur. Stand. B, 1969, pp. 395-412. [2] T. Leventhal, G. Nemhauser, and L. Trotter, Jr., “ A column generation algorithm for optional traffic assignment, ” Trans. Sci., Vol.7, No.2 1973, pp. 168-176. [3] S.Nguyen, “ An algorithm for the traffic assignment problem, ” Trans. Sci., Vol.8, No.3, 1974, pp. 203-216. [4] R. B. Potts and R. M. O liver, Flows in transportation network. Academic Preaa, New York, London, 1972. [5] D. G. Cantor and M. Gerla, “ Optimal routing in a packet switched computer network, ” IEEE Trans. Comput. Vol.C23, No.10, 1974, pp. 1062-1068. [6] H. Frank and W. Chou, “Routing in computer networks, ” Networks, Vol.1, No.2, 1971, pp. 99-112. [7] L. Fratta, M. Gerla, and L. Kleinrock, “ The flow deviation method: An approach to store-andforward communication network design, ” Networks Vol.3, No.2, 1973, pp. 97-113. [8] B. Yaged, “ Minimum cost routing for static network models, ” Networks Vol.1, No.2, 1971, pp. 139-172. [9] S. C. Dafermos, “ An extended traffic assignment model with applications to two-way traffic, ” Trans. Sci.Vol.5 , 1971, pp. 336-389. [10] B. Golden, “ A minimum-cost multicommodity network flow problem concerning imports and exports, ” Networks, Vol.5, No.4, 1975, pp. 8