MPS数据格式

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

“If you give someone a program, you will frustrate them for a day; if you teach them how to program, you will frustrate them for a lifetime.”
原文地址:https://www.cnblogs.com/Scorpio989/p/3959495.html