-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Branch-and-bound node incorrectly declared infeasible for bc1_presolved #24
Comments
Adding a little bit more detail, some of the above is a printing artifact. It seems like Clp actually proceeds the same for much of the solution of the node with id 31 (in both the bb_example and vpc codes): There is divergence at iteration 752 (possibly earlier, as I have not checked in more detail yet). To generate more details for Clp printing within Cbc, you can set:
|
In the beginning, we are using ClpSimplexDual, called repeatedly from ClpSimplex.cpp:5503, and at some point we switch to ClpSimplexPrimal. I think this happens at line ClpSimplex.cpp:5623 when The first time I detect a difference is when Eventually, at this same line, we get to a substantially different solution in the two codes, if we set a breakpoint for when Why does this happen? Debugging steps (in gdb) for the current versions of the two codes vpc:
bb_example:
|
When running instance bc1_presolved, using option
-d 64
, I eventually get an errorI try to replicate the partial tree generated by the vpc code using a smaller (easier to debug) code: bb_example.
Since the coin_example repository is currently private, I am also attaching the bb_example.zip code here.
The bb_example code proceeds identically to the vpc code in generating the partial branch-and-bound tree, up to node 30.
At that point, the underlying Clp calls diverge.
As shown in the screen shot, the issue is that on the left (the bb_example code), node with id 31 is declared optimal, while on the right (the vpc code), the same node is declared primal infeasible.
This node corresponds to setting the following bounds: (947,u,0), (963,u,0), (964,u,0), (965,l,1), (977,u,0).
As shown in the screenshot, Gurobi finds this node feasible, with an objective close to the one that Clp finds in the bb_example code.
Compilation of COIN code to reproduce:
The text was updated successfully, but these errors were encountered: