A generator and a simplex solver for network

0 downloads 0 Views 684KB Size Report
The following data in TAPET.DAT defme the reformulated linear program which can be used as the input for a network linear progr~mrnlng solver.
Vol.10 No.2

ACTA MATHEMATICAE

APPLICATAE

SINICA

A p r . , 1994

A G E N E R A T O R A N D A SIMPLEX SOLVER F O R N E T W O R K PIECEWISE L I N E A R P R O G R A M S * SUN JIP. (;,~"

St)

( lr~.tute of Applied Mathematics, the Chine.se Academy of Sciences, Beifing 100080, China and Department of IEMS, North~#es~ern University, Evar~ton, IL 60~08, USA) K. TSAI

(Department of EECS, Northwestern University, Eua~.ston, IL 60~08, USA)

Abstract This isa briefreporton our recentwork in network piecewiselinearprogramming (NPLP), and it consists of two parts. In the first park, we deacribe a generator for NPLP problems which is derived from the classical network linear program generator NETGEN. The generator creates networks of the same topological structures as NETGEN, but each arc is associated with a convex piecewise linear cost. The purpose of this program is to provide a set of standard teat problems which can be used to compare the performance of varioua algorithms for NPLP. In the second part, we introduce a network simplex method t h a t directly solves a network piecewise linear program without reformulating it as a network linear program of higher dimension. Forty b e n c h m a r k N P L P problems are solved by this method and a reformulation method. T h e computational results are in favor of the direct method and show t h a t solving a n NPLP problem is not much harder t h a n solving a network linear program of the same dimension. K e y w o r d s : Computational experiments, generator of teat probhms, network programruing, piecewise linear prol!~ammlng, simplex method.

1.

Introduction

W e have recently written two codes in F O R T R A N . The first one can produce test problems of network piecewise linear programming (NPLP) and is named N P L P G E N . The second one implements a direct simplex method for solving N P L P problems and is called NPLPSOL. NPLPGEN used the output of N E T G E N , a network linear program generator developed by Klingman, Napier and Stutz [I] as the input, and randomly assigns a convex piecewise linear cost to each arc according to a nnlform distribution. The 40 benchmark problems of Klingman, Napier and Stutz[I] have been reproduced by N P L P G E N with piecewise linear costs and have been solved in two ways, firstlyby N P L P S O L and secondly by Received October 10, 1990. * T h i s research is supported in part by National Science Foundation of USA under Grunt DDM-8721709.

178

ACTA MATHEMATICAE

APPLICATAE

SINICA

Vol.10

reformulating (and solving) them as network linear programs, which we call the indirect method. Our computational results, s,,mmarized in the last section of this paper, seem to be in favor of the direct method and show that solving a N P L P problem is not much harder than solving a network linear program of the same dimension. This paper is therefore naturally divided into three major sections, Section 2 introduces N P L P G E N , aiming at researchers who might actually use N P L P G E N in their future research. Section 3 includes a brief discussion of the network simplex method for NPLP, elaborating on how one can solve an N P L P problem without reformulating it as a network linear program. The computational results are then presented in Section 4. The reader interested in the implementation of the direct simplex method may refer to another paper of Sun and Tsai[ 21 for more details. The mathematical form of N P L P is as follows: =

f minimize ( N P L P ) ~ subject to

+--"

+

+

Az = b,

t

0_~ z j < cj,

j=l,...,n,

where A is the node-arc incidence matrix of a network, b is a given supply-demand vector and z -- ( X l , - - ' , zn) T is the flow vector. Each fj(zj), j = 1, 2,-.- , n is a convex piecewise linear function of x i on [0,cj], namely

SjlZ + r j l , sj2zj + rj2, .

.

.

.

.

if 0 < z j _< cjl, i f cjl _< x i _< cj2, .

.

sj ki zj + rj ki,

if cj k~- 1 -< xj < cj kj --= cj,

+oo,

elsewhere,

where 0 _~ Cjl _~ .-- _~ cjk~ ~ ¢x~ are called the breakpo/nts of fj(zj) or xj. Historically, N P L P was mainly used for approximately solving network convex program.q[3,41 , as well as for modeling variable cost problems[ 5'6] . T h e recent research on NPLP, however, is stimulated by a new modeling scheme in optimization, attributed to Rockafellar and Wets [~'sl , which allows violation of certain constraints and focuses on algorithms that take advantage of the problem structure and duality instead only of the algebraic representation of the problem IT]. In this framework, instead of the classical linear and quadratic programming one considers an extended linear-quadratic program: rain

lzTpz-bpTz+pvQ(q--Rz)

over z E U,

where U, V are convex polyhedral and P, Q are positive semidefinite matrices, the matrix R and vectors p, q all have compatible dimensions and

PVQ(s) m max { sTy -- lyT Qy ) In the simple case where P -- 0, Q = 0, R = 0, V is a box and U represents the feasible set of (NPLP), one gets an N P L P problem. More discussions about the new model can be found from Rockafellar and Wets's papers[ s.s| and references therein. Other recent sources of N P L P problems include the "black box" aggregation of linear networks (a more general

No.2

A G E N E R A T O R AND A SOLVER FOR N P L P

179

case is discussed in a paper of Sun [9]), which is related to parallel algorithms for network linear programming. Traditionally, N P L P problems are solved by reformulating them as network linear programs [1°'1t] . Roughly speaking, for each "piece" of the function f j ( x j ) , one introduces a new and bounded variable in the reformulated problem. Because the indirect methods inevitably increase the number of variable and possibly disrupt the dual information, they are not ideal for NPLP. On the other hand, it is possible to extend algorithms for linear programming to monotropic (convex, separable and linearly constrained) programming without major change [12] . Recently, Fourier and Marsten [la] reported their computational results showing that the direct simplex method is much faster than the indirect simplex method in solving general piecewise linear programs. There has been no such report, however, on the network case. In this paper we fill this gap by providing computational results based on problems generated by N P L P G E N . For convenience of comparisons between the direct and indirect methods, N P L P G E N simultaneously generates an equivalent network linear program whenever it gives rise to an N P L P problem. It should be noted that the problems generated by N P L P G E N are rather unstructured. Thus conclusions derived from experiments on these problems might not apply to specially structured problems. However, we believe that the efficiency of N P L P S O L makes it a competitive tool for solving even specially structured N P L P problems, e.g. the stochastic transshipment problems [14] .

2. A b o u t N P L P G E N In addition to the information needed by N E T G E N such as the numbers of sources, sinks and transshipment nodes, flow capacity limits and the number of arcs, N P L P G E N asks the user to specify the maximal number of linear pieces for functions f j ( x j ) , j = 1,... ,n. All data generated are in integer form. This will occasionally restrict the number of pieces for a specific arc. For instance, if the user wants at most four pieces for each arc, and the randomly generated capacity of an arc is only three, then the arc can't have a four-piece cost function because all breakpoints are necessarily integers. In this case the arc will have at most three pieces. Since the numbers rjk, k = 1 , . - . , kj, are irrelevant to minimization, N P L P G E N only outputs the slopes sjk and the breakpoints cjk. Both of them are in an increasing order with respect to k. This ensures the convexity of fj(xj). N P L P G E N requires two input files. The first one is "TAPE2.DAT", which is the output file of N E T G E N . The second one is named 'PIECE.IN', which specifies the maximal number of pieces of fj, j = 1,.-- ,n. The following example shows an input file of N E T G E N , the output of N E T G E N and the content of PIECE.IN.

2.1.

T h e Input File of N E T G E N 0 13502460 6 1 1 10 1 30100 0 0 10 100 1 80 0

The format and meanings of the data are explained in the source code of N E T G E N . By suitably choosing the data one can generate a transportation, an assignment or a transshipment network, see the paper of Klingman, Napier and Stutz [1].

ACTA MATHEMATICAE APPLICATAE SINICA

180 2.2

Vol.lO

The Output of NETGEN (TAPE2.DAT) For the above input data, NETGEN responses with the following output. BEGIN PROBLEM NUMBER 1 6 NODES 10 ARCS SUPPLY 1 100 [Node 1 has supply 100.] ARCS 1 3 16 I00 [arc 1 is from node 1 to node 3, with cost coefficient 16 and capacity 100.] 2 6 23 i00 [data of arc 2] .

.

.

o

.

.

[etc.t

5 6 23 26 [data of arc 10] DEMAND 6 100 [Node 6 has demand 100.] END SOLVE QUIT The words in [. . . . . . ] are explanatory, which are not the output of NETGEN. 2.3

The File PIECE.IN The File "PIECE.IN" contains only one free format number assigned by the user:

The number means that each fj(xj) will have at most four linear pieces. 2.4 T h e o u t p u t of N P L P G E N ( T A P E 3 . D A T a n d T A P E T . D A T ) There are two output files from NPLPGEN. One is "TAPE3.DAT". It contains data of the generated NPLP problem, which has the same supply-demand, capacity bounds and topological structure as the ones in TAPE2.DAT. Another output data file is '~rAPET.DAT", which gives data of the equivnlent network linear program. This linear program is obtained by substituting kj linear arcs for arc j, j = 1,--- , n. Thus the resulting network will have kl + - . . + kj arcs and the same number of nodes. The data in TAPE3.DAT read as follows. 6

1 2 100

3 2 16

2 100

6 23

[number of nodes] [arc 1 is from node 1 to nodes 3, its cost function has 2 linear pieces] [the first piece is defined on [0, 2], and the slope is 2] [the second piece is defined on [2, 100], and the slope is 16] [arc 2 is from node 2 to node 6, its cost function has 1 linear piece] [the piece is defined on [0, 100], and the slope is 23] [repeat this patten until arc 10]

0 0 0 10 1000 0 0 0 -100

[end of arc data] [number of arcs] [node 1 with supply 100, and node 6 with demand 100]

The following data in TAPET.DAT defme the reformulated linear program which can be used as the input for a network linear progr~mrnlng solver.

No.2

A GENERATOR 6

1 100 2 0 3 0 4 0 5 0 6 -100

0 113 2 1 3

23 100

3 2 6 o

.

00

,

.

.

0

0

2 2 16 98

.

.

.

.

0

.

* .

0

AND

A SOLVER

FOR NPLP

181

[number of nodes] [node i with supply i00] [node 2 with supply 0] [node 3 with supply 0] [node 4 with supply 0] [node 5 with supply 0] [node 6 with demand 100] [end of node information] [arc 1 is from node 1 to node 3 with cost coei~cient 2 and capacity 2] [same type of information for arc 2] [Note: arcs 1 and 2 correspond to the two pieces of arc 1 in TAPE3.DAT1 [arc 3 is from node 2 to node 6 with cost coe~cient 23 and capacity 1001 [repeat until the last piece of arc 10 in TAPE3.DAT is replaced by an arc] [end of arc data] 3.

A S|mplex

Method

for NPLP

3.1 T h e Principles o f t h e Simplex M e t h o d for N P L P Definition 3.1.1. A basic fea~ble solueion x = [ZB,XN] to (NPLP) is defined as a solution to Ax = b, 0 _~ x~ ~ ci, j = 1,.-. ,z~,where [xB,xN] is a basis-nonbasis partition of x as in the simplex method for linear programming, and each nonbasic variable takes one of its breakpoint values. The following proposition can be derived from a similar property of linear programs. Proposition 3.1.2. If (NPLP) has an optimal solution, then there exists a basic feasible solution which is also optimal. The simplex method for N P L P moves from one basic feasible solution to another, looking for a simplex descent direction and doing a line search. The simplex descent direction is defined the same as in the simplex method for LP. It corresponds to a cycle consisting of arcs in a tree and a nonbasic arc in the network case[15]. The following property, which is valid for any monotropic programs[ 4], not only for NPLP, is important for the justification of the simplex method for NPLP. Proposition 3.1.3. The following statements are equivalent: (a) x is optimal to (NPLP). (b) z is feasible and, for all possible partitions J ---B U N , none of the simplex directions is a strict descent direction at x. (c) x is feasible and there exist u E R '~ and v E R ~, such that v --- --ATu and f~'(xk) _~ vk _< fk+(zk), for k -- 1,..- ,n, where f~" and fk+ are the ordinary left and right derivatives of fk. According to Propositions 3.1.2 and 3.1.3, N P L P may be solved by the following method. T h e Simplex M e t h o d for N P L P 3.1.4 Step 0. Find an initial basic feasible solution of NPLP or show that the problem is infeasible. If a basic feasible solution is found, then set this solution as x ° and s -- 0, Go to Step 1. Step 1. Determ~ue by Proposition 3.1.3 (c) whether the current solution is optimal, if not, find a simplex direction y associated with a nonbasic variable such that the directional derivative F'(xJ,lt) < 0. Go to Step 2.

182

ACTA MATHEMATICAE APPLICATAE SINICA

Vol.10

S t e p 2. Set x 8+1 = x s + ~y where x s+l is a basic feasible solution and ~ minimizes F ( x s + o~y) over a _) 0. If such an a does not exist, i.e. inf,>0 F ( x ~ + ~y) = - o o , stop; the (NPLP) is unbounded. Otherwise, set s = s + 1 and go to Step 1.

3.2 Implementation of the M e t h o d The efficiency of N P L P S O L originates from good manipulation of the network data structure. Our implementation uses the tree data structure described in Chv£tal's book [15] . For each base B, there is a maximum spanning tree T of the network such that the arcs in T have a one-one correspondence to the basic w~riables. Now we briefly describe the implementation for each step in Algorithm (3.1.4). S t e p 0. We use the Gradual Penalty Method [1st to solve N P L P in a single phase. It is the so-called big-M method with a self-adaptive mechanism for choosing the number M. It creates an initial base with all-artificial arcs, each with a moderate linear penalty cost, and solve the augmented NPLP. If the optimal solution contains a positive artificial variable, its penalty is enlarged gradually to a certain limit, and the problem is repeatedly solved until the artificial arc has a zero flux; otherwise, the problem is claimed infeasible. S t e p 1. The computations imposed by Proposition 3.1.3(c) are accomplished by the following procedure. (i) A "nominal cost" vl E [fi-(xl), f+(xl)] is assigned to each basic arc; initially this cost is arbitrarily f~-(xi) or f + ( x i ) . Based on this assignment, we compute the price vector u and the price-difference vj = ui - u~ for each nonbasic arc j , where i and i I are the head node and tail node of arc j respectively. If f + ( x j ) :> vj > f~-(xj) for all nonbasic arcs j , then 3.1.3 (c) is satisfied and the current x s is optimal. (ii) Otherwise, select a nonbasic arc j that violates f + (x j) ~ vj >_ f S (xj), and compute F~(x, y) for the simplex direction y associated with xj. This direction is identified by a unique cycle C consisting of arc j and the path in the tree that starts from the head of arc j and ends at the tail o f j . Then, if f + ( x j ) < vj, compute

y) =

eo(k)f;

(3.2.1)

keg

where e c is the incidence vector of C, i.e.

ec(k) =

1,

if arc k is positive in C;

-1,

if arc k is negative in C;

0,

if arc k is not in C.

And, if f T ( x j ) > vj, compute F ~ ( x , - y ) . This can be done by replacing C by its reverse in (3.2.1). The recognition of C is easy by using the tree data structure [lsl . If it turns out that F'(x, y) > 0 (the degenerate case), we make a pivoting operation to alternate the tree, and repeat (i) and (ii) until all possible trees are checked. There are ways to prevent cycling in alternating the trees, as well as heuristics. In our code one of the latter is adopted. If the current solution is not optimal and if there is no cycling in alternating the trees, then a descent simplex direction is bound to be found in a finite number of iterations. Various time-saving tricks in computations of this step are used, see Sun and Tsai [2].

No.2

A GENERATOR AND A SOLVER FOR NPLP

Step 2. following.

183

To implement the line search along a descent simplex direction y, we do the

(iii) Ratio test. Find a = augminj

{ ~-- xj,

xj - c,

if j is positive in C, if j is negative in C,

where ~, _care the closest breakpoints on the right and left of xj respectively. (iv) Recompute F'(z ~, y). After replacing x ~ by x" + c~y, compute (3.2.1) again. If the new F~(x ~, y) < 0, repeat (iii) and (iv); otherwise, make a pivoting operation if necessary, adjust the nominal cost and go to Step 1. Remarks. There is no need to have more computer memories than the simplex method for the linear case expect the ones for storing the information on breakpoints and the slopes of the objective function. In addition, (ii), (lii) and (iv) could be combined in one travel around C before the updating of z ~, and it can be shown that the implementation ensures the basic feasibility of the iterates [2].

4. Computational Results The 40 benchmark problems of Klingman, Napier and Strtz [1] are generated with piecewise linear costs and are solved by NPLPSOL (Although in its original sense the assignment problem should not have piecewise linear cost, we treat it here as a special transportation problem for testing purpose). The output file TAPE7.DAT is used as the data file for NETFLO, a successful simplex code for network linear programs developed by Kennington et al.[11'17] . Both codes are written in integer version of FORTRAN, compiled by F77 with optimization option -O, and executed on a SUN386i computer. Table 1 lists the computational CPU time (in seconds) which does not include the input-output time. The time for NETFLO to rearrange the input data into the "backward star format"Ill'iT] is also excluded for fairness in comparison. Table 1 shows a moderate improvement (averaging 62%) in computational time when NPLP problems with small number of pieces are solved by the direct method compared to the indirect method. This improvement becomes more significant when the number of pieces gets large. Table 2 presents computational results of four representative benchmark problems with respect to different numbers of pieces in their objective functions. It is interesting to see that the computational time of the direct method does not change much when the number of pieces changes, whereas the time of the indirect method increases more drastically, The low variance of the time for the direct method in Table 2 in addition indicates that the solution time is relatively insensitive to the change of the piece number. This fact shows that solving an NPLP problem is not much harder than solving a network LP problem of the same number of variables A c k n o w l e d g e m e n t s . The authors are in debt to Professor Kennington for kindly providing them with the code NETFLO, and to Professor Klingman for permitting them to make additions to the code NETGEN under the condition that the changed code is not to be called NETGEN.

A C T A MATHEMATICAE A P P L I C A T A E

184

Table 1.

Vol.10

SINICA

Solution Times and optimal values of 40 Benchmark NPLP problems m

Problem Number

Type

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40

Transportation Transportstlon Transportation Transportation Transportation Transportation Transportation Transportation Transportation Transportation Assi&~ment AesiKnment Assignment Assignment Assignment Transshipment Transshipment Transshipment Transshipment Transshipment Transshipment Transshipment Transshipment Transshipment Transshipment Transshipment Transshipment Transshipment Transshipment Transshipment Transshipment Transshipment Transshipment Transshipment Transshipment Transshipment Transshipment Transshipment Transshipment Transshipment

n

200 1311 200 1500 200 2007 200 2205 200 2900 300 3150 300 4,500 300 5170 300 6095 300 6311 400 1500 400 2250 400 3000 400 3750 400 4500 400 1306 400 2443 400 1306 400 '2443 400 1416 400 2836 400 1416 400 2836 400 1382 400 2676 400 1382 400 2676 1000 2900 1000 3400 1000 4400 1000 4800 1500 4342 1500 4385 1500 5107 1500 5730 8000 15000 5000 23000 3000 35000 5000 15000 3000 23000

Max. No. Ti me of Time of P~tio of Pieces N ETF LO N P LP of Ti me 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4

2.38 2.67 3.20 4.38 4.53 6.22 8.23 10.20 9.35 9.98 3.12 5.43 4.73 5.T3 6.15 3.88 4.28 2.98 3.90 3.82 4.73 2.65 4.08 5.08 11.42 3.28 6.93 11.93 11.00 14.12 12.32 21.20 20.67 25.95 26.80 482.65 353.37 186.45 288.45 121.57

1.58 1.47 1.97 2.08 2.38 3.32 4.62 5.40 4.87 5.22 2~6~ 3.02 4.30 4.90 5.05 1.97 2.93 1.77 2.83 2.13 3.17 1.98 2.80 2.33 4.38 1.63 3.03 7.75 8.50 9.28 9.12 15.58 16.42 17.07 18.88 311.20 171.35 107.87 147.22 83.05

O p t i m a l Value of Objective Function 545439 498398 363964 402995 265788 625621 489763 533237 407303 426458 2075 1428 914 844 710 30531105 9570061 29468368 9414436 28667040 7208126 27630090 6255934 344.04098 42309466 29O08142 32521360 45443429 36240844 27961679 24550074 68072947 65034850 51121206 44138083 410309529 109265735 18901556 182820162 31416174

66.4% 55.1% 61.6% 47.5% 52.5% 53.4% 56.1% 52.9% 52.1% 62.3% 84.9% 55.6% 90.9% 85.5% 82.1% 50.8% 68.5% 59.4% 72.6% 55.8% 67.0% 74.7% 68.6% 45.9% 38.4% 49.7% 43.7% 65.0% 77.3% 65.7% 74.0% 73.5% 79.4% 65.8% 70.4% 64.5% 48.5% 57.9% 31.0% 68.3%

Table 2. SolutionTimes as Number of Pieces Increases Problem # 1 m = 2 0 0 n=1311 Ratio No. of pieces NETFLO NPLP of Ti me 4 8 12 16 20 24 28 32

3.38 3.68 5.05 5.72 6.58 7.63 8.3? 9.86

1.58 1.50 1.40 1.82 1.43 1.53 1.38 1.65

66.4% 40.8% 27.7% 31.8% 21.7% 20.1% 16.5% 18.7%

Problem # 1 3 ~ 4 0 0 n=3000 Ratio No. of pieces N E T F L O N P L P of T i m e 4 8 12 16 20 24 28 32

4.73 7.52 9.10 9.77 11.17 12.42 11.08 14.55

4.30 4.37 4.18 4.47 4.50 4.18 3.60 3.88

90.9% 58.1% 45.9% 45.8% 40.3% 33.7% 32.5% 26.7%

No.2

A G E N E R A T O R A N D A SOLVER F O R NPLP Prob|em #16

m=400

n=1306

Ratio

No. of pieces NETFLO NPLP of Time

Problem #28

m=lO00

n=2900

185 P~tio

No. of pieces NETFLO NPLP of Time

4 8

3.88 4.52

1.97 3.03

50.8% 67.0%

4 8

11.93 12.70

7.75 8.27

65.0% 65.1%

12 16 20

5.72 7.28 9.62

2.50 2.95 2.92

43.7% 40.5% 30.4%

12 16 20

17.08 22.25 18.72

9.10 8.83 9.02

53.3% 39.7% 48.2%

24 28 32

11.70 11.75 11.25

3.25 2.65 2.92

27.8% 22.6% 26.0%

24 28 32

26.37 26.05 30.07

9.73 8.13 8.43

36.9% 31.2% 2~.0%

References [1]" D. Kling~an, A. Napier and J. Stutz. NETGEN: a Program for Generating Large Scale Capacitated Assignment, ~ransportation, and M;n;mum Cost Flow Network Problems. Manag. Sc/., 1974, 20: 814-821. [2] J. Sun and K.-H. Tsni. An Implementation of the Network Simplex Method for Piecewise Linear Programs. Tech. Report 89-07, Dept. of IE/MS, Northwestern University, Evanston, Illinois, 1989. [3] A.M. Geoffrion. Objective Function Approx;m~tion in Mathematical Programming. Math. Program., 1977, 13: 23-37. [4] R.T. Rodmfellar. Network Flows and Monotropic Optlmi~.ation. Wiley-Interscience, New York, 1984. [5] L. Cooper and L.J. Leblanc. Stochastic Tra~portation Problems and Other Network Related Convex Problems. Naval Research ~ i c s Quarter/y, 1977, 24: 324-336. [6] R. Fourier. A Simplex Algorithm for Piecewise~linear progr~mmi,g HI: Computational Analysis and Applications. Tech. Report 86-03 Department of IE/MS, Northwestern University, Evanston IL 60208, 1986. [7~ 1~T. Rockafellar. Large-scale Extended Linear-quadratic Progr,~rnmin~ and Multistage Optlmi~ation. Preprint, Dept. of Math. University of Washington, Seattle, WA 98195, 1989. [8] R.T. Rockafellar and R.J-B. Wets. Generalized Linear-quadratic Problems of Determin~-tic and Stochastic Optimal Control in Discrete Time. SIAM J. Control and Optlmi~tion, 1990, 28: 810-822. [9] J. Sun. "l~racingthe Characteristic Curve of a Quadratic Black Box. Networks, 1989, 19: 637-650. [10] A. Charnes and C.E. Lemke. M;n;m;~.,*tion of Nonlinear Separable Convex Functionals. NavaJ

Lo~etics Quarterly,

1954, I : 301-312.

[11] J.L. Kennin&,ton and R.V. Helgason. A/gorithms for Network Progr~mmlng. Wiley-Interscience, New York, 1980. [12] R.T. Roc/cafellar. Monotropic Progr~mm;"s: a Generalization of Linear Progr,Lmming and Network ProgrAmming, in Convexity and Duality in Optlmi=ation. J. Polmtein e d , Springer-Verlag, Lecture Notes in Economics and Math. Systems, 1985, 256: 10-36. [13] R. Fourier and B-E. Marsten. Solving Piecewise-linear Program-" Experiments with a Simplex Approach. Technical Report 90-07, Department. of IEMS, Northwestern University, Evanston, USA, 1990. [14] J. Sun, L. Qi and K. Tsai. uSolving Stochastic ~-aneshipment Problems as Network Piecewise Linear Programs". Tech. Report 89-09, Dept. of IEMS, Northwestern University, Evanston IL 60208, 1989. [15] V. Chv~tal. Linear Progr~mm;.~. Freeman, New York, 1983. [16] M.D. Grigoriaclis. An Ei~cient Implementation of the Network Simplex Method. Mathematlcal Programming Study, 1986, 26: 83-111. [17] A.I. All and J.L. Kennington. NETFLO User's Guide. Tech Report 88-011-22, Department of Operations Research and Engineering Madagement, Southern Methodist Univ., Dallas, TX 75275, 1988.