H101: Linear Optimization Using the Simplex Algorithm

Author(s): M. Gyr Library: MATHLIB
Submitter: K.S. Kölbig Submitted: 15.02.1994
Language: Fortran Revised:

Subroutine subprograms RSMPLX and DSMPLX calculate the quantities tex2html_wrap_inline131 for which the linear form, or objective function,

displaymath133

assumes a maximum value subject to the tex2html_wrap_inline135 inequality constraints

displaymath137

and the tex2html_wrap_inline139 equality constraints

displaymath141

A number tex2html_wrap_inline143 of the variables tex2html_wrap_inline145 can be restricted to non-negative values ( tex2html_wrap_inline147 ). The remaining tex2html_wrap_inline149 variables tex2html_wrap_inline151 are then unrestricted ( tex2html_wrap_inline153 ). In the case tex2html_wrap_inline155 , all variables tex2html_wrap_inline157 are unrestricted. These subprograms can also be used for the so-called degenerate case.

On computers other than CDC or Cray, only the double-precision version DSMPLX is available. On CDC and Cray computers, only the single precision version RSMPLX is available.

Structure:

SUBROUTINE subprograms
User Entry Names: RSMPLX, DSMPLX
Internal Entry Names: H101S1, H101S2
Files Referenced: Unit 6
External References: MTLMTR, ABEND

Usage:

For tex2html_wrap_inline159 (type REAL), tex2html_wrap_inline161 (type DOUBLE PRECISION),

    CALL tSMPLX(A,B,C,Z0,IDA,M,M1,N,N1,LW,IDW,W,X,Z,ITYPE)
A
(type according to t) Two-dimensional array of dimension tex2html_wrap_inline163 . Contains, on entry, the coefficients tex2html_wrap_inline165 . Destroyed during execution.
B
(type according to t) One-dimensional array of dimension tex2html_wrap_inline167 . Contains, on entry, the coefficients tex2html_wrap_inline169 . Destroyed during execution.
C
(type according to t) One-dimensional array of dimension tex2html_wrap_inline171 . Contains, on entry, the coefficients tex2html_wrap_inline173 . Destroyed during execution.
Z0
(type according to t) Contains, on entry, the initial value of the objective function.
IDA
(INTEGER) Declared first dimension of A in the calling program ( tex2html_wrap_inline175 ).
M
(INTEGER) The total number m of variables tex2html_wrap_inline179 ( tex2html_wrap_inline181 ).
M1
(INTEGER) The number tex2html_wrap_inline183 of restricted variables tex2html_wrap_inline185 ( tex2html_wrap_inline187 .
N
(INTEGER) The total number n of constraints ( tex2html_wrap_inline191 ).
N1
(INTEGER) The number tex2html_wrap_inline193 of inequality constraints ( tex2html_wrap_inline195 .
LW
(INTEGER) Two-dimensional array of dimension tex2html_wrap_inline197 . Used as working space.
IDW
(INTEGER) Declared first dimension of LW in the calling program ( tex2html_wrap_inline199 ).
W
(type according to t) One-dimensional array of dimension tex2html_wrap_inline201 . Used as working space.
X
(type according to t) One-dimensional array of dimension tex2html_wrap_inline203 . If tex2html_wrap_inline205 or tex2html_wrap_inline207 , its first m elements X(1),...,X(M) contain, on exit, the or a solution tex2html_wrap_inline211 , respectively. The next n elements X(M+1),...,X(M+N) contain the values of the so-called slack variables tex2html_wrap_inline215 . If tex2html_wrap_inline217 or tex2html_wrap_inline219 , the elements tex2html_wrap_inline221 are undefined.
Z
(type according to t) If tex2html_wrap_inline223 or tex2html_wrap_inline225 , Z contains, on exit, the result z of the objective function. Undefined for tex2html_wrap_inline229 and tex2html_wrap_inline231 .
ITYPE
(INTEGER) Defines, on exit, the type of the result:
tex2html_wrap_inline233 There is exactly one finite solution.
tex2html_wrap_inline235 There is more than one solution.
tex2html_wrap_inline237 There is no finite solution.
tex2html_wrap_inline239 There is no feasable initial solution.

Method:

The method is described in Ref. 1 and Ref. 2.

Error handling:

Error H101.1: tex2html_wrap_inline241 or tex2html_wrap_inline243 .
Error H101.2: tex2html_wrap_inline245 or tex2html_wrap_inline247 or tex2html_wrap_inline249 or tex2html_wrap_inline251 .
In both cases, a message is written on Unit 6, unless subroutine MTLSET (N002) has been called.

References:

  1. H.P. Künzi, H.G. Tzschach and C.A. Zehnder, Numerical methods of mathematical optimization, (Academic Press, New York 1968)
  2. E. Stiefel, Einführung in die Numerische Mathematik, (B.G. Teubner, Stuttgart 1965)
tex2html_wrap_inline253

Michel Goossens Wed Jun 5 06:35:31 METDST 1996