[Coin-discuss] BCP aborts with LP : No var/cut in pool but couldn't select branching object.

Miroslav Karamanov miroslav at andrew.cmu.edu
Mon Oct 3 18:11:17 EDT 2005


I've had several cases when BCP finds an integer solution 
and terminates with error:
"LP : No var/cut in pool but couldn't select branching object."

BCP does feasibility check and finds the integrality of the 
solution (with objective OBJVAL1). It rounds variables and 
recomputes objective (to OBJVAL2) in 
BCP_lp_user::test_full(). I assume it updates the upper 
bound. But what I notice is that it does not update the 
lower bound for the node -- it stays OBJVAL1 < upper_bound 
(==OBJVAL2). (compute_lower_bound() doesn't do the job -- it 
returns lpres.objval().)
And it continues in the main loop trying to branch.

Updating the lower bound to OBJVAL2 fixes the problem but 
I'm not sure this is the right fix given the message you get:
"LP:   Terminating and fathoming due to proven high cost."

On the other hand, the lower bound has to be updated, 
otherwise you'll get different behavior depending on what 
happens when rounding, i.e. whether  OBJVAL1 < or > OBJVAL2.

As for the integer feasibility, I don't see where BCP takes 
into account the fact that this is an integer solution.
(I guess I don't know the code enough.)


Miroslav





More information about the Coin-discuss mailing list