Man Scilab
readmps
Scilab Function
readmps - reads a file in MPS format
Calling Sequence
-
mps= readmps (file-name,bounds [,maxsizes]);
Parameters
-
file-name
:
character string, path of the MPS file
-
bounds
: 2-vector
[lowbound,upbound]
, default lower ans upper bounds
-
maxsizes
: 3-vector
[maxm,maxn,maxnza]
Maximum number of contraints and variables, maximum number of
nonzeros entries in the LP constraint matrix. If omitted readmps
reads the file once just to compute these numbers.
-
mps
: tlist with following fields
-
irobj
: integer (index of the objective row).
-
namec
: character string (Name of the objective).
-
nameb
: character string (Name of the right hand side).
-
namran
: character string (Name of the ranges section).
-
nambnd
: character string (Name of the bounds section).
-
name
: character string (Name of the LP problem).
-
rownames
: character string column vector (Name of the rows).
colnames : character string row vector (Name of the columns).
-
rowstat
: integer vector, row types:
-
1
row type is "="
-
2
: row type is ">="
-
3
: row type is "<="
-
4
: objective row
-
5
: other free row
-
rowcode
: real matrix
[hdrowcd,lnkrow]
with
-
hdrowcd
: real vector (Header to the linked list of rows with the same codes).
-
lnkrow
: integer vector (Linked list of rows with the same codes).
-
colcode
: real matrix
[hdcolcd,lnkcol]
with
-
hdcolcd
: integer vector (Header to the linked list of columns with the same codes).
-
lnkcol
: integer vector (Linked list of columns with the same codes).
-
rownmbs
: integer vector (Row numbers of nonzeros in columns of matrix A.)
-
colpnts
: integer vector (Pointers to the beginning of columns of matrix A).
-
acoeff
: real vector (Array of nonzero elements for each column).
-
rhs
:real vector ( Right hand side of the linear program).
-
ranges
: real vector of constraint ranges.
-
bounds
: real matrix
[lbounds,ubounds]
with
-
ubounds
: full column vector of upper bounds
-
lbounds
: full column vector of lower bounds
-
stavar
: full column vector of variable status
-
0
:standard (non negative) variable
-
1
: upper bounded variable
-
2
: lower bounded variable
-
3
: lower and upper bounded variable
-
4
: minus infinity type variable i.e -inf<x<=u
-
5
: plus infinity type variable i.e l<=x< inf
-
6
: fixed type variable i.e l=x=u
-
-k
: free variable
Description
readmps
.
Utility function: reads a file containing description of an LP problem
given in MPS format. It is an
interface with the program
rdmps1.f
of hopdm (J. Gondzio).
For a description of the variables, see the file rdmps1.f.
MPS format is a standard ASCII medium for LP codes.
MPS format is described in more detail in Murtagh's book:
Murtagh B. (1981). Advanced Linear Programming, McGrew-Hill,
New York, 1981.
Examples
//Let the LP problem:
//objective:
// min XONE + 4 YTWO + 9 ZTHREE
//constraints:
// LIM1: XONE + YTWO < = 5
// LIM2: XONE + ZTHREE > = 10
// MYEQN: - YTWO + ZTHREE = 7
//Bounds
// 0 < = XONE < = 4
// -1 < = YTWO < = 1
//Generate MPS file
txt=['NAME TESTPROB'
'ROWS'
' N COST'
' L LIM1'
' G LIM2'
' E MYEQN'
'COLUMNS'
' XONE COST 1 LIM1 1'
' XONE LIM2 1'
' YTWO COST 4 LIM1 1'
' YTWO MYEQN -1'
' ZTHREE COST 9 LIM2 1'
' ZTHREE MYEQN 1'
'RHS'
' RHS1 LIM1 5 LIM2 10'
' RHS1 MYEQN 7'
'BOUNDS'
' UP BND1 XONE 4'
' LO BND1 YTWO -1'
' UP BND1 YTWO 1'
'ENDATA'];
mputl(txt,TMPDIR+'/test.mps')
//Read the MPS file
P=readmps(TMPDIR+'/test.mps',[0 10^30])
//Convert it to linpro format
LP=mps2linpro(P)
//Solve it with linpro
[x,lagr,f]=linpro(LP(2:$))
See Also
mps2linpro
,
Back