<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Hi once again Matheus,</p>
    <p>you can see the priorities in each of the 'branch_*.c' files. I
      quickly grepped them all for you:</p>
    <p>./scip/branch_inference.c:47:#define BRANCHRULE_PRIORITY     
      1000<br>
      ./scip/branch_nodereopt.c:34:#define BRANCHRULE_PRIORITY       
      -9000000<br>
      ./scip/branch_random.c:43:#define BRANCHRULE_PRIORITY      -100000<br>
      ./scip/branch_vanillafullstrong.c:48:#define
      BRANCHRULE_PRIORITY        -2000<br>
      ./scip/branch_cloud.c:59:#define BRANCHRULE_PRIORITY        0<br>
      ./scip/branch_xyz.c:31:#define BRANCHRULE_PRIORITY        0<br>
      ./scip/branch_multaggr.c:61:#define BRANCHRULE_PRIORITY        0<br>
      ./scip/branch_allfullstrong.c:62:#define BRANCHRULE_PRIORITY     
      -1000<br>
      ./scip/branch_leastinf.c:37:#define BRANCHRULE_PRIORITY      50<br>
      ./scip/branch_mostinf.c:37:#define BRANCHRULE_PRIORITY      100<br>
      ./scip/branch_pscost.c:46:#define BRANCHRULE_PRIORITY      2000<br>
      ./scip/branch_fullstrong.c:48:#define BRANCHRULE_PRIORITY      0<br>
      ./scip/branch_relpscost.c:60:#define BRANCHRULE_PRIORITY     
      10000<br>
      ./scip/branch_lookahead.c:78:#define BRANCHRULE_PRIORITY        0<br>
      ./scip/branch_distribution.c:83:#define BRANCHRULE_PRIORITY       
      0<br>
    </p>
    <p>So you can see that reliability pseudocost branching
      (branch_relpscost.c) has the highest priority of 10000.</p>
    <p>To also answer the previous question: You can get local variable
      bounds by calling "SCIPvarGetLbLocal" and "SCIPvarGetUbLocal",
      respectively. There is also a page in the documentation that might
      help you in finding C-API methods easier on your own:
      <a class="moz-txt-link-freetext" href="https://scip.zib.de/doc-7.0.0/html/DOC.php">https://scip.zib.de/doc-7.0.0/html/DOC.php</a></p>
    <p>Best,<br>
      Leon<br>
    </p>
    <div class="moz-cite-prefix">On 27.05.20 23:48, Matheus Ota wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAL0UnZ139YybMA6weSWzcdnpk_YwtKtY-snyx4sPpriut=aErQ@mail.gmail.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div>Hi,</div>
        <div><br>
        </div>
        <div>I think I implemented correctly a branching rule that
          inherits from ObjBranchRule, but I don't know what value I
          should assign for the priority. I tried 1000 and it was not
          being called, I tried 100000 and it was called ok. Just to be
          sure, where can I find the priority values of the other
          branching rules used by SCIP?</div>
        <div><br>
        </div>
        <div>Thanks,</div>
        <div>Matheus<br>
        </div>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">Em ter., 26 de mai. de 2020 às
          12:24, Matheus Ota <<a href="mailto:matheusota@gmail.com"
            moz-do-not-send="true">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>Hi Leon,</div>
            <div><br>
            </div>
            <div>Thanks for your detailed answer! Yes, I want to query
              if the lower bound of the variable equals the upper bound,
              and what is this value.</div>
            <div><br>
            </div>
            <div>Thanks again,</div>
            <div>Matheus<br>
            </div>
          </div>
          <br>
          <div class="gmail_quote">
            <div dir="ltr" class="gmail_attr">Em ter., 26 de mai. de
              2020 às 04:57, Leon Eifler <<a
                href="mailto:eifler@zib.de" target="_blank"
                moz-do-not-send="true">eifler@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">Hello Matheus,<br>
              <br>
              everything you want to achieve can be implemented in a
              branching rule. I <br>
              don't think there is a benefit of doing this in a
              constraint handler. In <br>
              your branching rule you can create to child nodes and add
              all bound <br>
              changes that you want to do for S and T to those child
              nodes.<br>
              <br>
              > Also, in order to select the sets S and T I also need
              to know all the <br>
              > variables already fixed to 0 and to 1. Is there any
              way of doing this? <br>
              > Should I store all the variables fixed in each
              branching in a data <br>
              > structure? Or there is an easier way of just checking
              if the variable <br>
              > is already fixed or not?<br>
              <br>
              You can get all fractional variables by calling
              SCIPgetLPBranchCands (or <br>
              do you think of fixed as in local lower bound equals local
              upper bound?)<br>
              <br>
              > Also, my idea for branching is not enough to separate
              all fractional <br>
              > solutions. So when it is not possible to use my
              branching, I want SCIP <br>
              > to use the branching it normally uses (I guess it is
              strong <br>
              > branching). Could anyone that knows about this give
              me some help here?<br>
              <br>
              You do not have to do anything here. If you give your
              branching rule a <br>
              high priority it will get called first. Just ensure that
              your branching <br>
              rule sets the result pointer to SCIP_DIDNOTFIND or
              SCIP_DIDNOTRUN <br>
              (whichever makes more sense) if it does not find a
              branching. Then the <br>
              branching rule with the next hightest priority will get
              called.<br>
              <br>
              Best,<br>
              Leon<br>
              <br>
              <br>
              _______________________________________________<br>
              Scip mailing list<br>
              <a href="mailto:Scip@zib.de" target="_blank"
                moz-do-not-send="true">Scip@zib.de</a><br>
              <a href="https://listserv.zib.de/mailman/listinfo/scip"
                rel="noreferrer" target="_blank" moz-do-not-send="true">https://listserv.zib.de/mailman/listinfo/scip</a><br>
            </blockquote>
          </div>
        </blockquote>
      </div>
    </blockquote>
  </body>
</html>