<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Hi All,<div><br></div><div>Just an update and to make my question more precise. When I plug a debug solution, SCIP give reports of the type</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">ERROR: debugging solution was cut off in local node #443</blockquote><div>Which I believe means that the debugged solution was present at node 443 and it was incorrectly cut off. I'm guessing that, because I use constraint handlers to implement my branching rule, SCIP is reporting that the debug solution is getting cut off in every node (including nodes where the solution was cut off because of branching and not because of a cut or pruning). Thus, in this context, it is harder to use the debug information reported by SCIP. <br><br>In any case, using the branch-and-bound tree visualization:</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">SCIP_CALL(SCIPsetStringParam(scip, "visual/vbcfilename", "mytree.vbc"));</blockquote><div>I managed to manually keep track of which node the debug solution is present. And I discovered that the debug solution is getting incorrectly cut off in node #1728. However, I can't see why this node is getting pruned. The LP bound returned at this node is 670, which is lower then the solution returned by the whole algorithm (which has cost 674), so it doesn't seem that it is getting pruned because of its bounds. Moreover, I'm printing one line of log for each node using the command</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">SCIP_CALL(SCIPsetIntParam(scip, "display/freq", 1));</blockquote><div>and there is no line being printed for node #1728. Also, I'm printing the node number every time I call my custom feasibility check (called in CONSENFOPS, CONSENFOLP and CONSCHECK), and it is not being called at node #1728. So I'm puzzled about where the algorithm is pruning this node.</div><div><br></div><div>Oh, one more thing, I'm also locking the variables to avoid incorrect rounding. So for each variable x[e] in my model, I'm calling the following in the CONSLOCK method</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">SCIP_CALL(SCIPaddVarLocks(scip, x[e], nlockspos + nlocksneg,nlockspos + nlocksneg));</blockquote><div><br></div><div>Any help is greatly appreciated.</div><div><br></div><div>Thanks,</div><div>Matheus</div></div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Em qui., 30 de jun. de 2022 às 20:29, Matheus Ota <<a href="mailto:matheusota@gmail.com">matheusota@gmail.com</a>> escreveu:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr">Dear Scip Community,<div><br></div><div>I'm currently trying to debug my C++ program which incorrectly outputs a non-optimal solution. I have a minimization problem and I have a solution with value 673. My program when executed on my computer claims that a solution with value 674 is optimal. However, if I execute this program on another computer, it correctly outputs a solution with value 673. There are also instances where my computer is correct, but the other computer is not.</div><div><br></div><div>In order to debug this problem I've compiled SCIP with <span style="color:rgb(0,0,0);white-space:pre-wrap">-DDEBUGSOL=on and I'm using the parameter "</span><span style="color:rgb(0,0,0);white-space:pre-wrap">misc/debugsol" to pass the solution with value 673. One thing to mention is that I have custom branching rules which were implemented via constraint handlers. When I execute the program with the debug solution it is printing a lot of violated constraints in the terminal, however, the violated constraints all seem to correspond to the branching inequalities. Is there a way to suppress the errors specifically for these inequalities?</span></div><div><span style="color:rgb(0,0,0);white-space:pre-wrap"><br></span></div><div><font color="#000000"><span style="white-space:pre-wrap">Also, I would be thankful for any help here (as I'm getting out of ideas of where the bug is)! I've checked my branching constraints and indeed, if a solution is cut-off in one branch, then it is present in the other branch. So the branching constraints are just partitioning the set of feasible solutions (as expected).</span></font></div><div><font color="#000000"><span style="white-space:pre-wrap"><br></span></font></div><div><font color="#000000"><span style="white-space:pre-wrap">Thanks for your time,</span></font></div><div><font color="#000000"><span style="white-space:pre-wrap">Matheus</span></font></div></div></div></div>
</blockquote></div>