<div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">Dear Gerald (and others)</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">Thank you for the clarification (months ago). I've been implementing it in the way you suggested, everything seems ok, but then I encountered some weird behaviour.</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">I compile the code  in normal mode -> seems to work fine<br>I compile the code in DBG=opt mode -> seems to work fine<br><br>In my program I also have some upper bounds that use plain CPLEX, so I decided to use the flag -DNDEBUG while compiling, which is (as far as I know) disabling CPLEX debug mode<br><br>When I now compile my code in DBG=opt mode with the -DNDEBUG flag, I catch an assert somewhere within scip:</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><span style="font-family:monospace"><span style="color:rgb(0,0,0)">JRP: src/scip/tree.c:1214: SCIPnodePropagateAgain: Assertion `node != NULL' failed.</span><br><br>Do you maybe know if this flag is the cause of any unspecified behavior? Of course, it is a bit weird to use debug mode and to tell at the same time to not debug (via the flag), but I want to make sure things are correct.</span></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><span style="font-family:monospace"><br></span></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><span style="font-family:monospace"><br></span></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><span style="font-family:monospace">Kind regards,</span></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><span style="font-family:monospace">Albert<br></span><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jan 9, 2020 at 12:46 PM Gerald Gamrath <<a href="mailto:gamrath@zib.de" target="_blank">gamrath@zib.de</a>> wrote:<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>
    Dear Albert,<br>
    <br>
    changing the upper bound to 0 to enforce your decision is correct.
    However, your consactive method should only mark the constraint to
    be repropagated; afterwards, propagation will be called where you
    should adjust the bounds. Since the bound is only changed at the
    current node, SCIP will automatically undo this when the current
    subtree is left and re-install the bound when it is re-entered. In
    the latter case, you thus only need to propagate variables added in
    the meantime.<br>
    <br>
    For more details, see
    <a href="https://scip.zib.de/doc-6.0.2/html/FAQ.php#pricerandnodedata" target="_blank">https://scip.zib.de/doc-6.0.2/html/FAQ.php#pricerandnodedata</a> or have
    a look at the binpacking example.<br>
    <br>
    Best,<br>
    Gerald<br>
    <br>
    <div>Am 09.01.20 um 10:45 schrieb
      Schrotenboer, Albert:<br>
    </div>
    <blockquote type="cite">
      
      <div dir="ltr">
        <div class="gmail_default" style="font-family:arial,helvetica,sans-serif">Dear SCIP
          Community,</div>
        <div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br>
        </div>
        <div class="gmail_default" style="font-family:arial,helvetica,sans-serif">I am solving a
          basic VRP with branch & price, and have a question
          regarding a branching rule I've implemented (Actually, I
          forgot how to do it...) I branch on x_{ij} arcs, which I
          identify with my branchrule object. To handle this information
          down the b&b tree, I use a constraint handler with the
          following virtual methods implemented:<br>
        </div>
        <div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br>
        </div>
        <div class="gmail_default" style="font-family:arial,helvetica,sans-serif">SCIP_DECL_CONSTRANS(ObjConshdlrOwn::scip_trans)
          <br>
        </div>
        <div><span class="gmail_default" style="font-family:arial,helvetica,sans-serif">      To
            transform the info, nothing special</span></div>
        <div><span class="gmail_default" style="font-family:arial,helvetica,sans-serif"></span><span class="gmail_default" style="font-family:arial,helvetica,sans-serif"></span></div>
        <div><span class="gmail_default" style="font-family:arial,helvetica,sans-serif">SCIP_DECL_CONSACTIVE(ObjConshdlrOwn::scip_active)</span></div>
        <div><span class="gmail_default" style="font-family:arial,helvetica,sans-serif">      Here I
            search which of my generated routes should be fixed to zero
            corresponding to my branching information. (I also do the
            appropriate adaptations in my pricing based on the
            branching). I fix my variables by the following routines:</span></div>
        <div><span class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br>
          </span></div>
        <div><span class="gmail_default" style="font-family:arial,helvetica,sans-serif">if
            (SCIPvarGetUbLocal(var) > 0.01)<br>
                  SCIP_CALL(SCIPchgVarUb(scip,
            (*d_varConsInfo).v_path[r].d_var, 0.0) );  <br>
          </span></div>
        <div><span class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br>
          </span></div>
        <div><span class="gmail_default" style="font-family:arial,helvetica,sans-serif">This all
            works nicely (when I do not run in debug mode). When I run
            in Debug mode, however, an assert is collapsing when SCIP
            alters the path of the tree (when it backtracks a few
            nodes), saying that:</span></div>
        <div><span class="gmail_default" style="font-family:arial,helvetica,sans-serif">JRP:
            src/scip/tree.c:1803: SCIPnodeAddBoundinfer: Assertion
            `(SCIP_NODETYPE)node->nodetype == SCIP_NODETYPE_FOCUSNODE
            || (SCIP_NODETYPE)node->nodetype ==
            SCIP_NODETYPE_PROBINGNODE ||
            (SCIP_NODETYPE)node->nodetype == SCIP_NODETYPE_CHILD ||
            (SCIP_NODETYPE)node->nodetype ==
            SCIP_NODETYPE_REFOCUSNODE || node->depth == 0' failed.<br>
          </span></div>
        <div><span class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br>
          </span></div>
        <div><span class="gmail_default" style="font-family:arial,helvetica,sans-serif">My question
            is, therefore, the following: Is changing the UB to enforce
            variables to 0 the correct way to go? In addition, am I
            required to implement the deactive virtual method as well,
            to change the upper bounds back to what they were? <br>
          </span></div>
        <div><span class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br>
          </span></div>
        <div><span class="gmail_default" style="font-family:arial,helvetica,sans-serif">Kind regards,</span></div>
        <div><span class="gmail_default" style="font-family:arial,helvetica,sans-serif">Albert<br>
          </span></div>
        <div><span class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br>
          </span></div>
        <div>
          <div>-- <br>
            <div dir="ltr">
              <div dir="ltr">
                <div>
                  <div dir="ltr">
                    <div>
                      <div dir="ltr">
                        <div>
                          <div dir="ltr">
                            <div dir="ltr">
                              <div dir="ltr">
                                <div dir="ltr">
                                  <div style="color:rgb(0,0,0);font-size:10pt;letter-spacing:normal;line-height:12pt;margin-bottom:0px;margin-top:0px">
                                    <p class="MsoNormal"><span style="color:rgb(102,102,102)">Albert
                                        Schrotenboer</span></p>
                                    <p class="MsoNormal"><span style="color:rgb(102,102,102)">Postdoctoral
                                        Researcher<br>
                                      </span></p>
                                    <p class="MsoNormal"><span style="color:rgb(102,102,102)">Faculty
                                        of Economics and Business</span></p>
                                    <p class="MsoNormal"><span style="color:rgb(102,102,102)"></span><font color="rgb(34, 34, 34)"><span style="color:rgb(102,102,102)">University
                                          of Groningen</span></font><font color="rgb(34, 34, 34)"><span style="color:rgb(102,102,102)"><br>
                                        </span></font></p>
                                    <p class="MsoNormal"><font color="rgb(34, 34, 34)"><span style="color:rgb(102,102,102)">P.O.
                                          Box 800, 9700 AV Groningen</span>
                                      </font></p>
                                  </div>
                                </div>
                              </div>
                            </div>
                          </div>
                        </div>
                      </div>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
      <br>
      <fieldset></fieldset>
      <pre>_______________________________________________
Scip mailing list
<a href="mailto:Scip@zib.de" target="_blank">Scip@zib.de</a>
<a href="https://listserv.zib.de/mailman/listinfo/scip" target="_blank">https://listserv.zib.de/mailman/listinfo/scip</a>
</pre>
    </blockquote>
    <br>
  </div>

</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div style="color:rgb(0,0,0);font-size:10pt;letter-spacing:normal;line-height:12pt;margin-bottom:0px;margin-top:0px"><p class="MsoNormal"><span style="color:rgb(102,102,102)">dr. Albert Schrotenboer</span></p><p class="MsoNormal"><span style="color:rgb(102,102,102)">Postdoctoral Researcher<br></span></p><p class="MsoNormal"><span style="color:rgb(102,102,102)">Faculty of Economics and Business</span></p><p class="MsoNormal"><span style="color:rgb(102,102,102)"></span><font color="rgb(34, 34, 34)"><span style="color:rgb(102,102,102)">University of Groningen</span></font><font color="rgb(34, 34, 34)"><span style="color:rgb(102,102,102)"><br></span></font></p><p class="MsoNormal"><font color="rgb(34, 34, 34)"><span style="color:rgb(102,102,102)">P.O. Box 800, 9700 AV Groningen</span> </font></p></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div>