|
Problem eliminated |
Top Previous Next |
|
Presolve can, in relatively simple problems, essentially eliminate the problem. This generally occurs because presolves commonly substitute away bounds and equality constraints to simplify the problem and may in effect simplify the problem out of existence. Consider the example presol1.gms
variables z; positive variables y1,y2; equations r1,r2,r3,r4; r1.. z=e=y1+y2; r2.. y1=l=10; r3.. y2=l=10; r4.. y1+y2=e=10; model badpresol /all/ option lp=osl; solve badpresol using lp maximizing z;
The LOG file reports
Presolve... **** PRESOLVE has deleted all rows
0 0.000000 Unknown Infeasible
and the LST file
S O L V E S U M M A R Y MODEL BADPRESOL OBJECTIVE Z TYPE LP DIRECTION MAXIMIZE SOLVER OSL FROM LINE 10 **** SOLVER STATUS ERROR SOLVER FAILURE **** MODEL STATUS 6 INTERMEDIATE INFEASIBLE **** OBJECTIVE VALUE 0.0000
and later we see
**** PRESOLVE has deleted all rows
The OSL presolve has made constraints r2 and r3 into simple upper bounds and has manipulated constraint r4 to express y1 in terms of y2 and y1 has been substituted out of the problem. The resultant model has one variable and no explicit constraints. In turn, the OSL solver cannot function. One would have to suppress the presolve with the OSL.opt solver option file to solve the model. The other solvers with presolves - CPLEX, XA , XPRESS and CONOPT - all can handle this. |