I'm trying to find an open source lp solver that is fast enough to my problem. I'm trying to build a MPS file so I can submit it to NEOS servers and compare the performance of different solvers.
My problem involves, at its most difficult cases, something around 150 integer variables but I'm starting with a simple case to help me figure out how the MPS file format works.
This is the problem:
minimize : 330.3 * M1 + 1132.88 * M2 + 955.86 * M3
subject to:
20 <= 60 * M2 <= 20.9
20 <= 34 * M3 <= 20.9
M1 + M2 + M3 = 1
and I wrote the following MPS file:
NAME problema1
ROWS
L K
L N
E ONE
N CUSTO
COLUMNS
M1 ONE 1 CUSTO 330.3
M2 K 60
M2 ONE 1 CUSTO 1132.88
M3 N 34
M3 ONE 1 CUSTO 955.86
RHS
KLESS K 20.9
NLESS N 20.9
ONEREST ONE 1
RANGES
RANGE1 K 0.9
RANGE2 N 0.9
ENDATA
Using the linear solvers available at NEOS (https://neos-server.org/neos/solvers/index.html), just Gurobi can solve it. The others find the problem is infeasible (which it's not).
I'm pretty confident that this is a problem with my MPS file, but I just can't figure it out what it is. What am I doing wrong?
Indeed your MPS file has a problem. The lines in the RHS section should have one name e.g.
RHS
RHS1 K 20.9
RHS1 N 20.9
RHS1 ONE 1
Basically the solver picks one RHS set. Similar for the RANGES section. I am not sure what you intended using the lines in the RANGES section.