<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Dear Ambros,<div><br></div><div>Thank you for the reply! Indeed my "check" flag was set to TRUE. However, after changing it to FALSE, I'm still getting reported that the debug solution violates a branching constraint, like for example</div><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">***** debug: row <branching1> violates debugging solution (lhs=2, rhs=2, activity=[4,4], local=1, lpfeastol=1e-06)<br>branching1: 2 <= +1<t_x_14,15> +1<t_x_13,15> +1<t_x_12,13> +1<t_x_12,14> +1<t_x_11,12> +1<t_x_11,15> +1<t_x_10,12> +1<t_x_10,15> +1<t_x_9,12> +1<t_x_9,15> +1<t_x_8,12> +1<t_x_8,15> +1<t_x_7,8> +1<t_x_7,9> +1<t_x_7,10> +1<t_x_7,11> +1<t_x_7,13> +1<t_x_7,14> +1<t_x_6,7> +1<t_x_6,12> +1<t_x_6,15> +1<t_x_5,6> +1<t_x_5,8> +1<t_x_5,9> +1<t_x_5,10> +1<t_x_5,11> +1<t_x_5,13> +1<t_x_5,14> +1<t_x_4,6> +1<t_x_4,8> +1<t_x_4,9> +1<t_x_4,10> +1<t_x_4,11> +1<t_x_4,13> +1<t_x_4,14> +1<t_x_3,4> +1<t_x_3,5> +1<t_x_3,7> +1<t_x_3,12> +1<t_x_3,15> +1<t_x_2,4> +1<t_x_2,5> +1<t_x_2,7> +1<t_x_2,12> +1<t_x_2,15> +1<t_x_1,4> +1<t_x_1,5> +1<t_x_1,7> +1<t_x_1,12> +1<t_x_1,15> +1<t_x_0,4> +1<t_x_0,5> +1<t_x_0,7> +1<t_x_0,12> +1<t_x_0,15> <= 2</blockquote></div><div><br></div><div>Also in this topic, I think that I'm still confused by what the flag means. Is there a more precise description somewhere? The "check" flag for example, I set it to TRUE because I thought that branching inequalities were not redundant. Here is how I'm creating the branching inequalities:</div><div><br></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(SCIPcreateConsLinear(scip, &cons1, "branching1", 0, NULL, NULL,2.0, 2.0, TRUE, FALSE, FALSE, FALSE, TRUE,TRUE, TRUE, FALSE, FALSE, TRUE));<br>SCIP_CALL(SCIPcreateConsLinear(scip, &cons2, "branching2", 0, NULL, NULL, 4.0, SCIPinfinity(scip),TRUE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE));</blockquote><div><br></div><div>I then create the child nodes:</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(SCIPcreateChild(scip, &child1, 0.0, SCIPgetLocalTransEstimate(scip)));<br>SCIP_CALL(SCIPcreateChild(scip, &child2, 0.0, SCIPgetLocalTransEstimate(scip))); </blockquote><div><br></div><div>And add the constraints to the nodes:</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(SCIPaddConsNode(scip, child1, cons1, NULL));<br>SCIP_CALL(SCIPaddConsNode(scip, child2, cons2, NULL)); </blockquote><div><br></div><div>Thanks again for your time,</div><div>Matheus </div></div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Em sáb., 2 de jul. de 2022 às 09:06, Ambros Gleixner <<a href="mailto:gleixner@zib.de">gleixner@zib.de</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">Dear Matheus,<br>
<br>
Your approach with the debug solution is definitely right.  The fact <br>
that branching inequalities are reported as violated constraints, <br>
however, could mean that you are not using the right flags for your <br>
branching constraints.  Can it be that the "check" flag is set to TRUE? <br>
  This should not be the case, since they do not belong to the <br>
definition of feasibilty.<br>
<br>
Best,<br>
Ambros<br>
<br>
<br>
Am 01.07.22 um 02:29 schrieb Matheus Ota:<br>
> Dear Scip Community,<br>
> <br>
> I'm currently trying to debug my C++ program which incorrectly outputs a <br>
> non-optimal solution. I have a minimization problem and I have a <br>
> solution with value 673. My program when executed on my computer claims <br>
> that a solution with value 674 is optimal. However, if I execute this <br>
> program on another computer, it correctly outputs a solution with value <br>
> 673. There are also instances where my computer is correct, but the <br>
> other computer is not.<br>
> <br>
> In order to debug this problem I've compiled SCIP with -DDEBUGSOL=on and <br>
> I'm using the parameter "misc/debugsol" to pass the solution with value <br>
> 673. One thing to mention is that I have custom branching rules which <br>
> were implemented via constraint handlers. When I execute the program <br>
> with the debug solution it is printing a lot of violated constraints in <br>
> the terminal, however, the violated constraints all seem to correspond <br>
> to the branching inequalities. Is there a way to suppress the errors <br>
> specifically for these inequalities?<br>
> <br>
> Also, I would be thankful for any help here (as I'm getting out of ideas <br>
> of where the bug is)! I've checked my branching constraints and indeed, <br>
> if a solution is cut-off in one branch, then it is present in the other <br>
> branch. So the branching constraints are just partitioning the set of <br>
> feasible solutions (as expected).<br>
> <br>
> Thanks for your time,<br>
> Matheus<br>
> <br>
> _______________________________________________<br>
> Scip mailing list<br>
> <a href="mailto:Scip@zib.de" target="_blank">Scip@zib.de</a><br>
> <a href="https://listserv.zib.de/mailman/listinfo/scip" rel="noreferrer" target="_blank">https://listserv.zib.de/mailman/listinfo/scip</a><br>
_______________________________________________<br>
Scip mailing list<br>
<a href="mailto:Scip@zib.de" target="_blank">Scip@zib.de</a><br>
<a href="https://listserv.zib.de/mailman/listinfo/scip" rel="noreferrer" target="_blank">https://listserv.zib.de/mailman/listinfo/scip</a><br>
</blockquote></div>