[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 05:32:05 EDT 2003


Hi Laci (and others),

my feet are wet.. And you are right - the problem is related to the
OsiCpxSolverInterface. In OsiCpxSolverInterface::isAbandoned(), calling
CPXgetstat() returns 0 - meaning that no solution exists (according to the
cplex manual). This seems to include that presolve has determined the
problem to be infeasible.

If "abandoned" is interpreted as "numerical difficulties - unknown
solution", then I guess isAbandoned() should return false - not true. On
the other hand if "abandoned" (as in cplex) means "no solution - do not
try to look in it" then it should, as it does, return true.

Any suggestions or comments - how is isabandoned used?

(I am not sure that my code does not generate "obviously" infeasible
subproblems, but anyway I do not think the result should be as above.)

By the way I use cplex 7.5

Regards,
Tommy

On Tue, 13 May 2003, Laszlo Ladanyi wrote:

> Hi Tommy,
> 
> The FIXME refers to the question of what is the proper course of action in
> case the LP solver has abandoned the problem (numerical difficulties, etc.).
> Right now BCP just throws an exception, but perhaps it would be better to
> prune the node and get the opt for the rest.
> 
> The real problem lies in OsiCpxSolverInterface. Apparently when the cplex
> presolver finishes off the problem the interface does not deduce correctly the
> status (abandoned, optimal, primal/dual infeas/unbounded, etc.) and comes back
> with abandoned instead of infeasible. Hopefully the maintainer will fix it
> soon, I can look at it next week if noone fixes it earlier. If you'd like to
> wet your feet then look at COIN/Osi/OsiCpx/OsiCpxSolverInterface.cpp and look
> at the functions below the comment:
> // Methods returning info on how the solution process terminated
> 
> Good luck,
> --Laci
> 
> On Tue, 13 May 2003, Tommy Thomadsen wrote:
> 
> > Hi,
> > 
> > I have a problem using BCP with CPLEX - I get a fatal error resulting
> > from the following lines in BCP_lp_main_loop.cpp:
> > if (tc & BCP_Abandoned) {
> >    // *FIXME* : later we might want to prune this node, but continue
> >    throw BCP_fatal_error("LP solver abandoned the lp.\n");
> > }
> > 
> > Info from Cplex:
> > CPLEX Error  1101: Presolve determines problem is infeasible or unbounded.
> > CPLEX Error  1217: No solution exists.
> > 
> > This does not happen when using CLP.
> > 
> > As the "FIXME" suggests, the node should be pruned since it is infeasible
> > (agreed?), but I have no idea how to accomplish that.
> > 
> > Any help will be appreciated very much!
> > 
> > Regards,
> > Tommy
> > 
> > _______________________________________________
> > 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