Working Paper
MINEI' A
FAST NCPWORK Id'
SOWERI. Maros
June 1987 WP-87-50
International Institute for Applied Systems Analysis
A-2361 Laxenburg, Austria
June 1987 WP-87-50
Working Papers are interim r e p o r t s on work of t h e International Institute f o r Applied Systems Analysis a n d have r e c e i v e d only limited review. Views or opinions e x p r e s s e d h e r e i n d o not necessarily r e p r e s e n t t h o s e of t h e Institute or of i t s National Member Organizations.
INTERNATIONAL INSTITUTE FOR APPLIED SYSTEMS ANALYSIS A-2361 Laxenburg, Austria
FOREWORD
In comparison with a l r e a d y existing software f o r t h e solution of network t y p e l i n e a r programming problems, MINET gives a possibility of v e r y flexible pricing t h a t c a n b e f u r t h e r f i t t e d to t h e special s t r u c t u r e of t h e network and using a suit- a b l e i n t e r f a c e , i t c a n r e f l e c t t h e need f o r changing t h e network s t r u c t u r e .
Alexander B. K u n h a n s k i Chairman System and Decision Sciences P r o g r a m
CONTENTS
1 Introduction
2 Problem Statement
3 Solution of Network LP Problems 4 Implementational Considerations 5 Irnplementational Tools of MINET 6 Use of MINET
7 Concluding Remarks References
I. M a r o s
Computer and Automation Institute of t h e Hungarian Academy of Sciences, Budapest
1. INTRODUCTION
Within t h e frame of IIASA project 'Uodeling of Interconnected Power Systems"
i t w a s necessary t o create a n advanoed implementation of a network linear pro- gramming (LP) algorithm. The program i s supposed to work in a hierarchical sys- t e m of programs under conditions which are different from t h e routine p r a c t i c e of network LP applications. The main purpose of this new development is to have an efficient network LP solver which can easily be included in o t h e r systems and which i s under full control of t h e designers and implementers of t h e power system model. As a by-product, t h e system can be made available for stand-alone usage.
The program is based on t h e unpublished implementation PNS (Pure Network Sys- tem) of Maros (Eindhoven University of Technology, Eindhoven, The Netherlands, 1983). For f u r t h e r r e f e r e n c e t h e new implementation will be called MINET.
The special s t r u c t u r e of t h e network LP problems has challenged many r e s e a r c h e r s to exploit this f e a t u r e in favor of efficiency of t h e solution process and capacity of programs. In this context efficiency i s measured in solution time while capacity is understood as t h e maximum size of problems t h a t can be solved by a given program.
The l i t e r a t u r e is r i c h in t h e theoretical foundation of t h e specialized network simplex method and s o m e important algorithmic details a r e also published. Less at- tention w a s paid to c e r t a i n implementational details which, however, also consider- ably influence t h e efficiency of a program.
The purpose of this p a p e r is (a) t o give account of t h e theoretical back- ground, implementational tools, capabilities, and special f e a t u r e s of MINET, (b) to s e r v e as a user's guide. It also r e p o r t s s o m e limited computational experiences.
2. PBOBIZM STAT-NT
The minimal cost network flow (MCNF) problem o r capacitated transshipment problem can be s t a t e d as follows:
s u b j e c t t o
z
x ( i , k )- z
x ( k , j ) = b ( k ) f o r k f M (2)f e I ( k ) j E O ( k )
where
E i s a set of arcs ( i , j ) of t h e network G(M, E ) , M i s t h e set of nodes.
The cardinality of M i s denoted by m , and t h a t of E is denoted by n . The con- s t a n t b ( k ) r e p r e s e n t s t h e requirement at node k . A node k f M , f o r which
b ( k )
<
0 i s called a supply node, b ( k )>
0 is called a demand node,b ( k )
=
0 is called a p u r e transshipment node.I t i s assumed t h a t
If V
<
0 then t h e r e i s no feasible solution. If V>
0 then t h e problem can be con- v e r t e d to t h e prescribed form by adding a dummy destination with a requirement of -V and slack arcs from each s o u r c e t o t h e dummy destination. The slack arcs are given unit costs of z e r o and infinite arc capacities.It should be noted t h a t (3) i s not a r e s t r i c t i o n of generality because individual lower bounds of t h e variables different from z e r o can always be moved to z e r o by a simple transformation.
Associated with each node k E M is a dual variable n(k) called its node poten- tial or simplex multiplier. An a r c ( i , j ) is directed from node i to node j. An a r c
( i , j ) is said t o be out-directed from node i and in-directed in node j. In this sense I (k ) i s the set of tail nodes of arcs t h a t are in-directed t o node k , and 0 ( k ) is t h e set of head nodes of arcs t h a t are out-directed from node k
.
The flow, cost, and u p p e r bound of a r c ( i , j ) are represented, respectively by z ( i
,
j ) , c ( i,
j ) , and u (i , j ). The objective is to determine a set of a r c flows which satisfies t h e node requirements and capacity restrictions at a minimum total cost.REMARK In t h e above description w e followed t h e terminology of [3].
Let us denote t h e matrix of constraints on t h e left hand side of (2) by A . I t i s easy to see t h a t each column of A is associated with an arc ( i , j ) and contains one coefficient with value of -1 and one with +1 corresponding to t h e starting node and t h e ending node, respectively. In addition to this usual case w e allow in MINET such arcs which correspond to loops (self-loops). In this case t h e "from" and t h e "to"
nodes coincide. The matrix column of such an a r c contains one -1 coefficient.
Using a more concise notation w e c a n write problem (1)-(3) in t h e following form (with evident interpretation of the correspondence):
minimize z
=
c 'z ( 5 )subject t o Az
=
b ( 6 )where A is a n m by n matrix, c , z , and u are n-vectors, b is a n m -vector and ' (prime) denotes t h e transpose.
The dual of this problem is t h e following:
maximize 2
=
b ' w-
u ' V (8)w unrestricted
,
(10)where w is a n m -vector and v is an n-vector of dual variables.
I t is a r a t h e r characteristic feature of the network LP problems t h a t usually t h e r e are much more arcs than nodes, i.e. the number of variables i s much l a r g e r than the number of node constraints, m
<<
n .3.
SOLUTION OF NETWOBK LP PEOBLEHS
For solving problem formulated in (5)-(7) primal (e.g.[3]), dual (e.g. [9]), and primal-dual (e.g.[Z]) algorithms have been proposed. A s a result of r e c e n t develop- ments t h e primal type algorithms show clear superiority over the others. The dramatic improvement of t h e performance of network LP solvers is largely due to the successful application of new achievements in computer implementation tech- nology f o r optimization algorithms.
Following
p]
we can s a y t h a t computer implementation technology seeks t o discover efficient procedures f o r carrying out subalgorithms of a general method on a computer by investigating (a) what kind of information to generate and main- tain f o r executing operations most effectively, (b) which data s t r u c t u r e s are best to r e c o r d , access, and update this information, and (c) what methods are m o s t suit- able f o r processing these data t o make t h e t h e desired information available when i t i s needed. Such knowledge can be t h e result of long experience in the theory and practice of optimization and t h e p r o p e r combination of t h e best elements of mathematics and computer science.In the case of t h e solution of network LP problems the underlying algorithm i s the revised primal simplex method where t h e very special s t r u c t u r e of the problem is highly exploited. This i s done in two aspects:
-
mathematical considerations,-
implementational considerations.A bounded variable simplex basis f o r a network flow problem corresponds t o a spanning t r e e with m
-
1 arcs. Knowing this t r e e and the nonbasic variables at bound t h e actual basic solution can easily be calculated. This practically corresponds t o t h e case when t h e basis of a general LP problem i s triangular ( o r combinatorially triangularizable). Thus-
in contrast with t h e standard revised simplex method-
we do not need the basis inverse ( o r equivalents of i t ) in any form. This is one of t h e main points in the specialization. Any information required f o r the steps of t h e simplex method can directly be provided by this triangularbasis o r r a t h e r by p r o p e r operations on t h e basis tree. The required arithmetic operations are addition, subtraction, and multiplication. It means t h a t if our start- ing values a r e integers then we can simply use integer arithmetic all t h e time. This (a) considerably improves t h e efficiency of t h e algorithm, and (b) completely ex- cludes computational errors which is a frequent problem with general purpose linear programming algorithms.
4. III[PLEHENTATIONAL CONSIDERATIONS
The r e p o r t s on efficient network simplex algorithms usually describe t h e theoretical achievements but do not indicate explicitly how t h e operations are to be organized t o minimize t h e computational and updating e f f o r t p e r iteration. The only exception in this r e s p e c t s e e m s to be [I] which presents a number of algo- rithms in detail but unfortunately they are not f r e e of errors and t h e r e f o r e cannot directly be implemented. A v e r y r e c e n t p a p e r [I21 (which w a s not available when e i t h e r PNS in 1982-83, o r MINET in 1985 were designed) gives an e l a b o r a t e algo- rithm but due to t h e s h o r t a g e of time i t could not be checked. In any case t h e algo- rithm shows a c a r e f u l design and is surely a valuable contribution to t h e network L P l i t e r a t u r e .
I t should be noted h e r e t h a t t h e minimization of t h e computational e f f o r t p e r iteration usually does not r e s u l t in t h e minimization of t h e total computational ef- f o r t to solve a problem. This l a t t e r i s heavily influenced by t h e pricing s t r a t e g y applied while this i s a r a t h e r problem dependent f a c t o r . To achieve good overall performance with a network L P program properly refined pricing s t r a t e g y must be implemented.
The basic idea in t h e efficient specialization of t h e simplex method i s t h e spe- cial representation, w e , and updating of t h e basis. By t h i s w e can achieve t h e ef- ficient performance of t h e basic operations of t h e revised simplex method (BTRAN, PRICING, and FTRAN). The developed techniques use t h e rooted tree r e p r e s e n t a - tion of t h e basis. MINET adds one node to M and this node is considered t h e root of t h e basis tree. The root node i s r e g a r d e d as being on t h e t o p in t h e rooted tree with all o t h e r nodes hanging below it. If nodes i and j denote endpoints of a n arc in t h e rooted t r e e such t h a t node i is closer to t h e r o o t , then i is called t h e predecessor of node j and node j is called t h e immediate successor of node i
.
To facilitate t h e description of t h e list functions used in t h e network simplex algorithms w e will use some notations:
T
=
t h e basis tree.T ( z )
=
s u b t r e e of T headed by node z (i.e. t h e s u b t r e e t h a t includes z and all i t s successors in t h e predecessor ordering).For handling t h e basis t h e following list functions have been defined:
p ( z )
=
t h e predecessor of node z.
If z i s t h e r o o t node then p ( z )=
0.s (Z )
=
"thread successor" of z.
Function s ( z ) may be thought as a t h r e a d which passes through each node ex- actly once in a top to bottom, left to r i g h t o r d e r , starting from t h e r o o t node. The thread-successor of t h e last node is t h e r o o t node. If w e denote t h e root node by 1 , then t h e set Is (11, s2(1),
. . .
, sn (1)=
11 is exactly t h e set of nodes of t h e rooted tree, where s2(1)=
s ( s (1)), s 3 ( 1 )=
s (s2(1)), etc.r ( z )
=
r e v e r s e t h r e a d of z.
t ( z )
=
number of nodes in T(z ).f ( z )
=
last node in T ( z ) in t h r e a d ordering.h ( z )
=
distance of node z from t h e r o o t node (i.e. t h e number of arcs to be passed from z to t h e root in t h e predecessor order). h (1) is de- fined t o b e 0 .g ( z )
=
p r e o r d e r distance of node z. This denotes t h e sequential position of node z in t h e t h r e a d ordering. By this definition g (1) =l.i d ( z )
=
directed arc identifier. Suppose arc E (ib ( z )) connects nodes z and p ( z ) [ib (i) denotes t h e column number of t h e i-th basic arc in t h e matrix]. i d ( z ) i s defined as follows:For representing T t h e minimum requirement i s to keep t h e predecessor, thread, and directed arc identifier functions. N o t e t h a t each of t h e above defined functions requires an m
+
1 length integer a r r a y . In general i t is t r u e t h a t if w e use more functions and at t h e same time occupy more memory s p a c e f o r t h e a r r a y s t h e algorithm will be f a s t e r (even if logically m o r e complicated). This leads us tot h e w e l l known space-time conflict. (It a l s o should be noted t h a t not all t h e above functions c a n be used simultaneously because some of them a r e replacements f o r t h e o t h e r s . ) Setting up t h e design c r i t e r i a w e c a n decide on how f a r to g o in using more functions and complicated algorithm to gain speed. This decision influences t h e maximum problem size as well.
Glover, Klingman and Stutz in [ll] use t h e p r e d e c e s s o r , t h r e a d , r e v e r s e t h r e a d , and d i r e c t e d arc identifier functions.
Srinivasan and Thompson in [14] agumented t h e data s t r u c t u r e with t h e dis- t a n c e function which resulted in some simplifications and s p e e d improvement of t h e algorithm at t h e expense of updating t h e distance function in e a c h iteration.
Ali
et al. r e p o r t e d in [I] th a t Glover and Klingman had r e p l a c e d t h e distance function by t h e number of nodes in s u b t r e e function. The resulting p r o c e d u r e re- tained t h e benefits of t h e previous algorithm while giving a c h e a p updating of t h e newly used function.Bradley, Brown, and Graves in [4] r e p l a c e d t h e distance o r t h e number of nodes in s u b t r e e functions by t h e p r e o r d e r distance function. In this way t r a c i n g t h e cycle (to find t h e leaving arc of t h e basis t r e e ) i s simpler but t h e updating i s more difficult.
AU et al. r e p o r t e d in [I] th e following observation. If a basic arc i s removed from T, then T i s partitioned into two trees T 1 and T2, where t h e root i s contained in T I . The dual Variables of e i t h e r T 1 o r T2 must b e updated. If w e augment t h e d a t a s t r u c t u r e with t h e number of nodes in s u b t r e e function t h e n t h e smaller sub- tree f o r updating c a n easily b e selected. W e transform T1 and
T2
into independent t r e e s , update t h e dual v a r i a b l e s in t h e tree with fewer nodes, t h e n r e c o n n e c t T 1 and T2 and complete t h e updating.5. IHPLE16ENTATIONAL TOOLS OF HINET
As noted e a r l i e r t h e available l i t e r a t u r e does not provide a full description of a n implementation and many of t h e published sub-algorithms contain errors. When developing t h e p r e d e c e s s o r of MINET (PNS, 1983) we simply wanted to make a n ef- ficiently operating c o r r e c t network implementation f o r problem (1)-(3). The test- ing of PNS h a s given promising r e s u l t s and t h e r e f o r e i t i s considered a good start- ing basis f o r developing MINET.
Algorithmically MINET i s a specialized primal revised simplex method f o r solv- ing MCNF problems. F o r t h e r e p r e s e n t a t i o n of t h e rooted basis t r e e T i t uses t h e following functions (just as does i t PNS):
-
d i r e c t e d arc identifier,-
p r e d e c e s s o r ,-
t h r e a d .-
r e v e r s e t h r e a d ,-
number of nodes in s u b t r e e .-
last node in s u b t r e e .Matrix A of (6) i s r e p r e s e n t e d in MINET in t h e following way: The indices of t h e nonzero e n t r i e s a r e s t o r e d in a column-wise o r d e r in t h e Linear list inti ( e ) . To identify t h e beginning of columns in this list a n a r r a y of column p o i n t e r s cp (.) i s used. In e a c h column t h e index of t h e 'from' node i s supposed to be listed f i r s t and i t i s followed by t h e index of t h e 'to' node if i t exists. The u p p e r bounds and t h e cost coefficients of t h e arcs are s t o r e d in a r r a y s u (.) and cst (.), respectively. The s t a t u s of t h e arc variables c a n be found in a r r a y m a r k '). Basically this c a n as- sume t h r e e different values corresponding to basic, nonbasic at lower bound, and nonbasic at u p p e r bound situations.
The flexibility of this scheme i s evident and will b e r e c a l l e d l a t e r .
As a s t a r t i n g basis MINET creates a n a l l s l a c k basis, where all t h e nodes are connected t o t h e a r t i f i c i a l root [Master Root]. The c a p a c i t y of t h e s e arcs i s un- bounded. A d i r e c t e d arc identifier i s negative if t h e corresponding node require- ment i s negative (supply node), else i t i s positive. I t is e a s y t o see t h a t f o r t h i s trivial basis t h e corresponding administration i s t h e following:
The index of t h e Master Root i s m
+
1.The s t a r t i n g basic solution is usually infeasible. In phase-1 t h e program at- tempts to reduce t h e flows on all artificial arcs to zero. For t h i s purpose a special algorithm is used taking t h e advantage of ideas described in [13]. In t h e p r e s e n t interpretation i t means t h e setting up of t h e vector of simplex multipliers s t o r e d in pi(.) with t h e following values:
( i ) 1 if b ( i ) < O
.
Note t h a t (4) must hold f o r t h e problem, otherwise feasible solution cannot be found.
An iteration starts with t h e pricing operation. This s e r v e s to compute t h e d(j) reduced costs f o r t h e nonbasic variables and to select one candidate f o r entering the basis. If such a variable cannot be found then e i t h e r (a) a n optimal solution is r e a c h e d if w e are i n phase-2, o r (b) phase-1 i s terminated in which case the situation is still t o be evaluated: if all t h e artificial flows are driven to z e r o then phase-2 is initiated, otherwise t h e problem h a s no feasible solution.
Variables corresponding to artificial arcs are never priced because they are type-0 variables (see [13]).
The pricing operation of a column consists of t h e following computation if i points to t h e f i r s t nonzero e n t r y of column j :
d ( j )
= -
n ( i n d ( i ))+
~ ( i n d ( i+
1 ) )-
cst ( j ), if t h e arc is ordinary,
(11) d j= -
( 2i )+
m+
1-
s t (j ) if t h e arc is a self-loop.
(12) In phase-1 t h e cst ( a ) p a r t i s not present. If nonbasic variable j is at u p p e r bound then w e change t h e sign of d ( j ) f o r evaluation.I t i s easy to see from (11) and (12) t h a t pricing a column i s a 'cheap' opera- tion in t h e sense of t h e number of memory accesses and arithmetic operations.
If t h e r e exists at least one nonbasic column with d ( j )
>
0 , then t h e optimality condition is not satisfied and variable j is introduced to t h e basis.The simplicity of t h e pricing operation can be misleading. Since in practical cases t h e number of arcs ( n ) is much l a r g e r than t h e number of nodes (m), t h e r e are many nonbasic variables t h a t must b e scanned in t h e c o u r s e of iterations be-
f o r e optimality can be declared. Many of the pricing s t r a t e g i e s work in such a way t h a t a g r e a t number ( o r all) of t h e nonbasic variables a r e priced in one iteration (c.f. steepest ascent). This can result in a tremendous amount of computations to find an entering arc. This is trw even f o r t h e simplest selection rule 'first posi- tive'. There a r e statistics showing t h a t 50-90 percent of t h e computational e f f o r t to solve a network LP problem i s spent on pricing. With special problems these fig- u r e s can even be w o r s e . Though these facts have been recognized by some r e s e a r c h e r s , a general purpose 'optimal' pricing s t r a t e g y has not been found yet.
Observations show t h a t the efficiency of the pricing s t r a t e g y is generally problem dependent (at least with the known pricing strategies). Since w e have no informa- tion on the s t r u c t u r e and 'behavior' of t h e problems to be solved in project
"Modeling of Interconnected Power Systems" w e implemented s o m e known pricing strategies and designed a new one which has some f r e e parameters. These parame- ters enable t h e u s e r of t h e system to tune t h e program to a given class of problems to solve the members of the class in an efficient way.
The pricing strategy to be used can be defined in t h e starting phase of MINET.
When t h e standard pricing [ST] i s selected we have t h e chance t o f u r t h e r specify the way i t should work. In this case column selection strategy is controlled by the u s e r defined variable 'np ' as follows:
np
=
0 f i r s t positive d ( j ) in phase-1, largest d (j) in phase-;?, np=
1 l a r g e s t d ( j ) in both phases,np
=
2 f i r s t positive d ( j ) in both phases,np
=
3 f i r s t positive d ( j ) in phase-1, but scanning starts at t h e last column and goes backwards, largest d (j) in phase-2.In MINET standard pricing i s c a r r i e d out by SUBROUTINE PRICE 1.
When the new pricing strategy (called sectional pricing and r e f e r r e d as SC) i s selected then some f u r t h e r parameters have to be provided by the user. Before describing the meaning of the parameters w e briefly outline t h e basic idea of SC.
In a general pricing s t e p SC scans only a subset of t h e nonbasic variables. For this purpose matrix A of (6) i s partitioned into adjacent sections of the s a m e size (only the last section can somewhat be smaller). The size i s defined a s percent NPERC of n (the number of a r c s ) which, at the same time, defines the number of sections (NSC). There is a parameter KVEC t h a t gives the number of improving vectors (the ones with positive d(j)) to be found in one section if t h e r e are any.
Pricing of a sections s t o p s when this number of v e c t o r s have been found and t h e column where i t happened i s recorded. Next scanning will start at t h i s point.
There i s an o t h e r p a r a m e t e r KSEC t h a t controls t h e number of sections
to
b escanned in one pricing operation. In MINET KSEC i s temporarily set to t h e number of sections (NSC), t h a t i s all sections are scanned with t h e above technique. The fi- nal decision on t h e entering column i s based on t h e magnitude of t h e corresponding d ( j ) a n d t h e l a r g e s t one i s s e l e c t e d from among t h e scanned candidates. Special c a r e must b e t a k e n when t h e p r e s c r i b e d number of improving v e c t o r s cannot be found (typically in t h e neighborhood of an optimal solution), especially to d e c l a r e optimality a 'full pricing' i s necessary. The logical s t r u c t u r e of SC (which c a n easi- ly b e r e c o n s t r u c t e d from t h e s o u r o e code of SUBROUTINE SPRICE) automatically c o v e r s a l l t h e s e cases.
I t i s e a s y to see t h a t SC i s a r a t h e r flexible pricing scheme (which s t i l l c a n b e extended t o multiple pricing) and many of t h e known pricing s t r a t e g i e s are con- tained in i t as special cases t h a t c a n be reproduced by special definition of param- eters NPERC, KVEC, and KSEC. The power of SC h a s a l r e a d y been proved in a gen- e r a l LP implementation (MAPS) of t h e a u t h o r and in t h e limited number of experi- e n c e s t h a t w e had with MINET (where t h e improvement w a s dramatic).
Using t h e above definitions now w e can easily d e s c r i b e t h e p a r a m e t e r s to b e provided f o r MINET when SC i s selected. These p a r a m e t e r s are simply NPERC and KVEC. (As mentioned e a r l i e r KSEC i s not a u s e r acoessible p a r a m e t e r yet.)
After pricing (which r e s u l t e d in finding a candidate a r c variable) t h e next question i s t h e determination of t h e outgoing variable. This i s done in t h e pivot operation. To c a r r y o u t t h i s s t e p in g e n e r a l LP w e need t h e updated form of t h e in- coming column. This c a n be obtained by t h e expensive FTRAN operation. In net- work LP FTRAN c a n completely b e omitted and t h e pivot s t e p ( r a t i o t e s t ) c a n b e c a r r i e d out by t r a c i n g t h e loop ( c r e a t e d by t h e incoming a r c ) on t h e basic span- ning tree.
In MINET r a t i o test i s c a r r i e d out by SUBROUTINE RTEST1.
The subsequent updating operation r e q u i r e s t h e modification of t h e adminis- t r a t i o n of t h e basic spanning t r e e , t h e simplex multipliers, and t h e basic solution as well. This i s a r a t h e r complicated p r o c e d u r e and i s p a r t l y based on some ideas of [I] a n d [3].
-
1 2-
The updating s t e p s of MINET can be found in t h e lengthy SUBROUTINE UD1.
6. USE
OF
ilIMETThe present version of MINET can be used in a stand-alone mode on t h e VAX computer of IIASA. The program i s written in FORTRAN77 language of t h e VAX. The source code of t h e program is portable to o t h e r FORTRAN77 systems with t w o pos- sible exaeptions:
(a) The VAX FORTRAN uses t h e Dollar sign ($) in a FORMAT statement where t h e standard FORTRAN77 uses backslash (\ ).
(b) The INCLUDE statement of VAX FORTRAN is non-standard.
The subroutines of MINET are commented so t h a t t h e r e a d e r can have a f i r s t idea of t h e function and operation of them. The source code of MINET can be found in files 'minetl.fl containing t h e program, and 'minetcom.for' containing t h e com- mon variables. The latter file also provides information on the meaning of vari- ables and t h e way how t h e maximum size of t h e solvable problems can be changed in t h e declarations.
MINET is a fully in-core program, i.e. a f t e r loading and reading in t h e problem i t does not use t h e background store (disk). The compaot d a t a s t o r a g e scheme makes i t possible t h a t very l a r g e problems can be solved by this in-core version.
The problem t o be solved must be provided in a t e x t file with t h e following s t r u c t u r e . (The s t r u c t u r e i s very simple and can easily be changed if necessary.) 1 rec. M,N, format: 215 (i.e. two fields, 5 c h a r a c t e r s wide each, right justi-
fied)
2 rec. ' f r o m ' node, 'to' node, upper-bound, cost coefficient, format: 215,2110
N
+
2 r e c . right-hand-side elements, five in one record. format: 5110.To invoke MINET w e simply type t h e name of t h e file where t h e executable program resides (presently i t is *minetl.out'). The start p r o c e d u r e of MINET con- sists of a dialogue p a r t . The output of MINET a p p e a r s in capital letters if a u s e r response is required, otherwise in s m a l l - c a s e letters.
For program maintenance purposes a single variable is used t o control t h e ex- t e n t of intermediate output. First this trace variable i s questioned. The recom- mended value f o r normal use i s 0 (zero). After this t h e name of t h e input file, t h e pricing s t r a t e g y , and t h e p a r a m e t e r s of the selected pricing s t r a t e g y must be given. A t trace level 0 only two lines of intermediate r e s u l t s a p p e a r . One a f t e r completion of phase-1, and one a f t e r a n optimal solution h a s been found (if such exists). In both cases t h e number of iterations and t h e value of t h e t r u e objective function a r e displayed.
A detailed t a b u l a r output of t h e solution i s not automatically produced. The u s e r i s asked if he/she wants to have it. In t h e case of yes, t h e name of t h e output file must be given.
The structure of the t a b u l a r output is traditional. I t contains information on t h e column and r o w variables as well.
The shadow p r i c e s of t h e r o w variables are actually t h e values of t h e dual variables w ( i ) , while t h e shadow p r i c e s of t h e column variable are the values of dual variables v ( j ) , or t h e negative of them if a variable is at bound.
7. CONCLUDING EtEWRKS
After checking t h e correct operation of MINET we generated some l a r g e r problems t o test efficiency. For this purpose we used t h e t r a i l e r subproblems of R.R. Love, j r . 'Traffic Scheduling via Benders Decomposition', Mathematical Pro- gramming Study 15. The l a r g e s t of t h e s e problems contained 124 nodes and 3894 arcs. This specific type of problems w a s very sensitive to t h e pricing s t r a t e g y ap- plied and interestingly enough produced t h e best r u n statistics with NPERC=100 and KVEC=l which corresponds to a special p a r t i a l pricing s t r a t e g y . The solution time on t h e VAX 11/780 computer of IIASA w a s less than 4 seconds (residence time) under l o w workload conditions of the machine.
I t should be noted t h a t t h e above procedure does not mean a heavy testing of MINET, and this job must be done in the next phase of t h e p r o j e c t "Modeling of In- terconnected Power Systems". This will also be a good occasion to tune t h e algo-
rithm to t h e specific needs of t h e modeled power networks. One of t h e s e require- ments i s already known and t h i s i s t h e ability of modifying t h e s t r u c t u r e of t h e net- work. Clearly, this c a n b e done in a r a t h e r easy way. If a n arc i s to be deleted then t h e m a r k e r mark (a) of i t can simply be set to 0. If a n arc i s to b e added t h e n i t c a n be put a f t e r t h e last arc using t h e d a t a scheme described above. Adding a node re- quires a little bit more work with t h e p r e s e n t assumption t h a t t h e Master Root (MR) i s indexed m
+
1. Now t h e new node(s) can simply be added t o t h e existing ones and t h e new value f o r m must be established which a l s o defines t h e new index of MR.Now t h e new a r c @ ) connecting t h e new node@) can be added in t h e above described way. This administration could be made e a s i e r if we used 0 f o r indexing MR. While on t h e VAX FYIRTRAN i t i s possible, t h e FORTRAN77 s y s t e m which w e used f o r pro- gram development i t was impossible. This point i s a l s o considered as a possible f u r t h e r improvement on ' u s e r friendliness' and flexibility of t h e s y s t e m .
[I
1
Ali, A.I., R.V.Helgason, J.L.Kennington and H.S.Lal1: " P r i m a l Simplex Network Codes: State-of-the-Art Implementation Technology", Networks 8(1978), pp.315-339.
[2] B a r r , R., F.Glover and D.Klingman: "An improved version of t h e Out-of-Kilter Method and a comparative study of computer codes", Mathematical Program- ming, vo1.7. No. 1.(1974), pp. 60-87.
[3] B a r r , R., F.Glover and D.Klingman: 'Znhancements of Spanning T r e e Labeling P r o c e d u r e s f o r Network Optimization", Infor 17(1979) pp. 16-34.
[4] Bradley, G.H., G .G .Brown and G.W.Graves: "Design and Implementation of Large Scale Primal Twnsshipment Algorithms". Management Science, 24, 1 , 1977, pp. 1-34.
[5] Glover, F., D.Karney and D.Klingman: 'Implementation and Computational Study on Start P r o c e d u r e s and Basis Change C r i t e r i a f o r a Primal Network Code", Networks 4(3) (1974) 191-212.
[6] Glover, F., D.Karney, D.Klingman and A.Napier: "A Computational Study on Start P r o c e d u r e s , Basis Change C r i t e r i a , and Solution Algorithms f o r Tran- sportation Problems", Management Science 20(1974), pp. 793-813.
C73
Glover, F. and D.Klingman: "Recent Developments in Computer Implementation Technology f o r Network Flow Algorithms", International Workshop on Ad- vances in Linear Optimization Algorithms and Software, Pisa, Italy, July 20-31.1980.[8] Glover, F. and D.Klingman: 'The Simplex SON Algorithm f o r LPDmbedded N e t - work Problems", Mathematical Programming Study 15(1981) pp. 148-176.
[9] Glover, F., D.Karney and D.Klingman: "Implementation and Computational Com- parison of Primal, Dual and Primal-Dual Computer Codes f o r Minimum Cost Network Flow Problems", Networks, 4, 3(1974), pp. 191-212.
[lo]
Glover, F., D.Karney and D.Klingman: "Double-Pricing, Dual and Feasible S t a r t Algorithms for t h e Capacitated Transportation (Distribution) Problem", c c s Research Report 105, Center f o r Cybernetic Studies, University of Texas, Austin, Texas (undated).[ll] Glover, F., D-Klingman and J.Stutz: "Augmented Threaded Index Method f o r Network Optimization", INFOR, 12, 3,1974, pp. 293-298.
[I23 Grigoriadis, M.D.: "An Efficient Implementation of t h e Network Simplex Method", Mathematical Programming Study 26(1986), pp. 83-111.
[13] Maros, I.: "A General Phase-I Method in Linear Programming", European Jour- nal of Operational Research, 2 3 (1986), pp .64-7'7.
[I41 Srinivasan, V. and G.L.Thompson: "Accelerated Algorithms for Labeling and Relabeling of Trees with Applications to Distribution Problems", Journal of t h e Association of Computing Machinery, 19, 4 , 1972, pp. 712-726.