-
Notifications
You must be signed in to change notification settings - Fork 115
Description
The cuopt_cli has a --user-problem-file option which can be used to dump an MPS representation of the problem received by the solver.
For the netlib/lp/e226.mps file, the generated mps file yields a different objective than the e226.mps file when it is fed back into cuopt_cli as data.
Steps to reproduce
- download the e226.mps file from https://www.netlib.org/lp/data/e226
- solve the e226..mps file with cuopt_cli and use --user-problem-file to generate a new mps file (which should contain an identical problem)
- solve the generated file (optionally generate another new mps file to show that the file does not change at this point)
- compare the reported objectives
Expecation:
the objective values should be the same. probably, the mps files should be the same as well, or any differences should be mathematically equivalent
Example:
$ cuopt_cli --user-problem-file cli_e226.mps e226.mps
Setting parameter user_problem_file to cli_e226.mps
Running file e226.mps
Solving a problem with 223 constraints 282 variables (0 integers) and 2578 nonzeros
Objective offset 7.113000 scaling_factor 1.000000
Writing user problem to file: cli_e226.mps
Running concurrent
Iter Primal Obj. Dual Obj. Gap Primal Res. Dual Res. Time
Dual simplex finished in 0.02 seconds
0 +7.11300000e+00 +7.11300000e+00 0.00e+00 2.52e+01 4.12e+01 0.017s
PDLP finished
Concurrent time: 0.019s
Solved with dual simplex
Status: Optimal Objective: -1.16389291e+01 Iterations: 367 Time: 0.019s
$ cuopt_cli --user-problem-file cli_e226_two.mps cli_e226.mps
Setting parameter user_problem_file to cli_e226_two.mps
Running file cli_e226.mps
Solving a problem with 223 constraints 282 variables (0 integers) and 2578 nonzeros
Objective offset 0.000000 scaling_factor 1.000000
Writing user problem to file: cli_e226_two.mps
Running concurrent
Iter Primal Obj. Dual Obj. Gap Primal Res. Dual Res. Time
Dual simplex finished in 0.02 seconds
0 +0.00000000e+00 +0.00000000e+00 0.00e+00 2.52e+01 4.12e+01 0.017s
PDLP finished
Concurrent time: 0.019s
Solved with dual simplex
Status: Optimal Objective: -1.87519291e+01 Iterations: 367 Time: 0.019s
The generated mps files match from the two runs.
They are different from the original e226.mps
$ diff cli_e226_two.mps cli_e226.mps
$ diff -q cli_e226.mps e226.mps
Files cli_e226.mps and e226.mps differ