[Coin-discuss] Cplex use termination code "abandoned" if presolve determines that problem is infeasible or unbounded.

Tommy Thomadsen tt at imm.dtu.dk
Wed May 14 10:42:56 EDT 2003


What a great idea! Thanks a lot! 

As you say, the problem is never actually solved so no information is
available regarding the problem. I was trying to generate this information
from the error code generated in resolve() and initialSolve(), but since
the errorcode CPXERR_PRESLV_INForUNBD does not even indicate whether the
problem is infeasible or unbounded, this cannot be done.

By the way, is there any good reason why the error code from the call to
CPXdualopt() is not checked in the current implementation? (Likewise for
the call to CPXprimopt() in initialSolve().)

Regards,
Tommy

On Wed, 14 May 2003, Ted Ralphs wrote:

> Tommy,
> 
> I have run into this problem with CPLEX before. The problem is that if the LP is 
> found infeasible during presolve, this has to be detected by checking the 
> termination code after optimizing---this information is not available through 
> the CPXgetstat() function later because the LP is never actually solved. An ugly 
> workaround that will get you going for now is to check for the this condition in 
>   OSI's solve routines and if it is detected, then turn off presolve and force 
> CPLEX to solve the problem again. This should correctly set the problem status 
> and everything should work fine. For example, try adding something like the 
> following few lines to the end of resolve():
> 
>     int term = CPXdualopt(env_, lp);
>     if (term == CPXERR_PRESLV_INForUNBD){
>        int err = CPXsetintparam(env_, CPX_PARAM_PREIND, CPX_OFF);
>        checkCPXerror( err, "CPXsetintparam", "resolve");
>        term = CPXdualopt(env_, lp);
>        err = CPXsetintparam(env_, CPX_PARAM_PREIND, CPX_ON);
>        checkCPXerror( err, "CPXsetintparam", "resolve");
>     }
> 
> and something similar in initialSolve(). This should get you going. A longer 
> term fix is probably needed, though.
> 
> Ted
> -- 
> Dr. Ted Ralphs
> Assistant Professor
> Industrial and Systems Engineering
> Lehigh University
> (610)758-4784
> tkralphs at lehigh.edu
> www.lehigh.edu/~tkr2
> 
> _______________________________________________
> Coin-discuss mailing list
> Coin-discuss at www-124.ibm.com
> http://www-124.ibm.com/developerworks/oss/mailman/listinfo/coin-discuss
> 




More information about the Coin-discuss mailing list