MPS文件是一种旧格式文件类型,原属于IBM的一种文件格式,格式为竖形文件,每行和每个变量都有一个名字。
MPS区分大小写,内容只能写在第 2, 5, 15, 25, 40 和 50列。
MPS的任何内容都有一个名字(例如行、列)。
第一行为NAME区域,定义整个问题的名字,写在第15列。
ROWS定义各行的名字,其中COST为 min定义。写在第二或第三列的为约束,E表示=,L表示<=,G表示>=, N表示无约束。
COLUMNS定义各列的名字,变量系数为0的不写在内容中,从第5列开始写。
RHS定义b,从第5列开始写。
BOUND定义决策变量的约束值,第2列写约束,UP表示<=,LO表示>=,FR表示=。
以ENDATA结尾。
举个简单的例子:
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
如果写成lp问题,如下:
min: +XONE +4 YTWO +9 ZTHREE;
LIM1: +XONE +YTWO <= 5;
LIM2: +XONE +ZTHREE >= 10;
MYEQN: -YTWO +ZTHREE = 7;
XONE <= 4;
YTWO >= -1;
YTWO <= 1;
以上的MPS格式定义较为简单,不涉及详细定义,MPS格式原版说明见:http://web.mit.edu/lpsolve_v5520/doc/mps-format.htm