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

Laszlo Ladanyi ladanyi at us.ibm.com
Wed May 14 08:53:28 EDT 2003


Hi Tommy,

Abandoned should be reserved for serious troubles. Infeasibility is not one of
them. So testing stat for 0 is probably not the right thing in isAbandoned. Or
maybe it is, but only after testing that none of the other isXyz functions
would return true.

As you wrote in your previous email, you did get this printout: 
CPLEX Error  1101: Presolve determines problem is infeasible or unbounded.
CPLEX Error  1217: No solution exists.
This info should be possible to extract somehow, and they together mean
infeasibility (is it always for the primal even if dual simplex is invoked?)
Testing this should be added to is{Primal,Dual}Infeasible.

Good luck,
--Laci

On Wed, 14 May 2003, Tommy Thomadsen wrote:

> 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
> > > 
> > 
> > 
> 
> _______________________________________________
> 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