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.