[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