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