<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Dear Xavier,<br>
    <br>
    you are absolutely right! I missed that you are only looping over
    the LP branching candidates in the example, and as you said, this
    ignores variables with value 1. So the bug was really in the example
    code, sorry for the confusion.<br>
    <br>
    Do you have an instance where this can be reproduced (with the
    example code)?<br>
    <br>
    I did a short fix that might be a bit easier than your fix, and also
    made a few other things in the code somewhat easier. I will send it
    to you in a separate mail, perhaps you can test that it works?<br>
    <br>
    Best,<br>
    Gerald<br>
    <br>
    <div class="moz-cite-prefix">Am 24.03.2017 um 12:26 schrieb Xavier
      Schepler:<br>
    </div>
    <blockquote
cite="mid:CA+SwSLw3Oi93RbLeH5qkwuaAT+Oqst+YY0JC1TiugOK18uFz9w@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div>
          <div>
            <div>
              <div>
                <div>
                  <div>
                    <div>Dear Gerald,<br>
                      <br>
                    </div>
                    I tryed again and got the same error, after removing
                    my fix.<br>
                  </div>
                  It looks like there is really an error in the code of
                  the example, probably because the function
                  SCIPgetLPBranchCands return only fractional variables.<br>
                  <br>
                </div>
                What may happen is that a variable standing for a pair
                may have a value equal to 1, so it won't be taken into
                account when computing the sum, which will be between 0
                and 1.<br>
                <br>
              </div>
            </div>
            What do you think ?<br>
            <br>
          </div>
          Kind regards,<br>
          <br>
        </div>
        Xavier<br>
        <div>
          <div>
            <div>
              <div><br>
                <br>
              </div>
            </div>
          </div>
        </div>
      </div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">2017-03-24 12:12 GMT+01:00 Xavier
          Schepler <span dir="ltr"><<a moz-do-not-send="true"
              href="mailto:xavier.schepler@gmail.com" target="_blank">xavier.schepler@gmail.com</a>></span>:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">
            <div dir="ltr">
              <div>
                <div>
                  <div>
                    <div>Dear Gerald,<br>
                      <br>
                    </div>
                    Ok, I get it, there is something wrong with my part
                    of the code :o)<br>
                    <br>
                  </div>
                  ThankĀ  you very much for your help !<br>
                  <br>
                </div>
                Kind regards,<br>
                <br>
              </div>
              Xavier<br>
              <div>
                <div>
                  <div><br>
                    <br>
                  </div>
                </div>
              </div>
            </div>
            <div class="HOEnZb">
              <div class="h5">
                <div class="gmail_extra"><br>
                  <div class="gmail_quote">2017-03-24 12:00 GMT+01:00
                    Gerald Gamrath <span dir="ltr"><<a
                        moz-do-not-send="true"
                        href="mailto:gamrath@zib.de" target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:gamrath@zib.de">gamrath@zib.de</a></a>></span>:<br>
                    <blockquote class="gmail_quote" style="margin:0 0 0
                      .8ex;border-left:1px #ccc solid;padding-left:1ex">
                      <div bgcolor="#FFFFFF" text="#000000">
                        <p>Dear Xavier,</p>
                        <p>I agree that this is confusing, but I guess
                          the example is doing the right thing. Because
                          after summing up the LP values for the pairs
                          of variables, you do not check this for
                          fractionality, but take</p>
                        <p><tt>value = MIN(pairweights[i][j],
                            1-pairweights[i][j]);</tt><tt><br>
                          </tt></p>
                        and compare this to the bestvalue which is
                        initialized to 0.0. So if the pairweight is
                        larger than 1, the min is always negative and
                        this variable will not be chosen as a branching
                        candidate. I'm not sure this case was taken into
                        account when writing this code, but it seems to
                        work anyway. :-)<br>
                        <br>
                        Best,<br>
                        Gerald
                        <div>
                          <div class="m_5442217572206144159h5"><br>
                            <br>
                            <br>
                            <div
                              class="m_5442217572206144159m_-2019721574131620711moz-cite-prefix">On
                              24.03.2017 09:45, Xavier Schepler wrote:<br>
                            </div>
                            <blockquote type="cite">
                              <div dir="ltr">
                                <div>
                                  <div>
                                    <div>
                                      <div>Dear Gerald,<br>
                                        <br>
                                      </div>
                                      Yes, my problem has this property,
                                      that each subset of a valid
                                      packing is again a valid packing.
                                      Each item must be covered once in
                                      the end.<br>
                                      <br>
                                    </div>
                                    You are totally right : I should
                                    choose two items such that those are
                                    together in some of the packings
                                    selected by the LP solution and also
                                    some packings are selected that
                                    contain exactly one of the items.<br>
                                    <br>
                                  </div>
                                  What looks like a bug to me is that in
                                  the file branch_ryanfoster.c of the
                                  bin-packing example, the only thing
                                  that is checked to select the
                                  branching candidate is that the sum
                                  over the pair of items is fractional,
                                  but it is not checked if at the same
                                  time there is a packing that contains
                                  exactly one of the items with a
                                  fractional value.<br>
                                  <br>
                                </div>
                                <div>There would be at least two ways to
                                  correct that : check if a branching
                                  was done before on the pair (what I
                                  do), or check if at the same time
                                  there is packing that contains exactly
                                  one of the items with a fractional
                                  value.</div>
                                <div><br>
                                </div>
                                <div>Kind regards,<br>
                                  <br>
                                </div>
                                <div>Xavier Schepler<br>
                                </div>
                              </div>
                              <div class="gmail_extra"><br>
                                <div class="gmail_quote">2017-03-23
                                  23:00 GMT+01:00 Gerald Gamrath <span
                                    dir="ltr"><<a
                                      moz-do-not-send="true"
                                      href="mailto:gamrath@zib.de"
                                      target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:gamrath@zib.de">gamrath@zib.de</a></a>></span>:<br>
                                  <blockquote class="gmail_quote"
                                    style="margin:0 0 0
                                    .8ex;border-left:1px #ccc
                                    solid;padding-left:1ex">
                                    <div bgcolor="#FFFFFF"
                                      text="#000000"> Dear Xavier,<br>
                                      <br>
                                      but does your problem have the
                                      property, that each subset of a
                                      valid packing is again a valid
                                      packing? And each item must be
                                      covered once in the end?<br>
                                      I would say that you can then
                                      ignore pairs of variables for
                                      which the sum over the LP values
                                      is larger than 1, because you
                                      could post-process this in the end
                                      and reduce this value by removing
                                      both items for some packings.<br>
                                      More specifically, you should
                                      choose two items such that those
                                      are together in some of the
                                      packings selected by the LP
                                      solution and also some packings
                                      are selected that contain exactly
                                      one of the items. This is not the
                                      case for your example. If you do
                                      Ryan and Foster branching based in
                                      this criterion, each variable
                                      should have a value 0 or 1 in the
                                      end.<br>
                                      <br>
                                      I hope this makes sense.<br>
                                      <br>
                                      Best,<br>
                                      Gerald
                                      <div>
                                        <div
                                          class="m_5442217572206144159m_-2019721574131620711h5"><br>
                                          <br>
                                          <br>
                                          <div
class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338moz-cite-prefix">Am
                                            23.03.2017 um 18:50 schrieb
                                            Xavier Schepler:<br>
                                          </div>
                                          <blockquote type="cite">
                                            <div dir="ltr">
                                              <div>I meant :<br>
                                                <br>
                                                After re-optimization,
                                                the sum over the
                                                variables which cover
                                                items 1 and 3 is still
                                                fractional, and its
                                                value is <b>1.5.</b>
                                                (not 0.5)<br>
                                                <br>
                                              </div>
                                              <br>
                                            </div>
                                            <div class="gmail_extra"><br>
                                              <div class="gmail_quote">2017-03-23
                                                18:45 GMT+01:00 Xavier
                                                Schepler <span
                                                  dir="ltr"><<a
                                                    moz-do-not-send="true"
href="mailto:xavier.schepler@gmail.com" target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:xavier.schepler@gmail.com">xavier.schepler@gmail.com</a></a>></span>:<br>
                                                <blockquote
                                                  class="gmail_quote"
                                                  style="margin:0 0 0
                                                  .8ex;border-left:1px
                                                  #ccc
                                                  solid;padding-left:1ex">
                                                  <div dir="ltr">
                                                    <div>
                                                      <div>
                                                        <div>Dear
                                                          Gerald,<br>
                                                          <br>
                                                        </div>
                                                        Thank you for
                                                        your response.<br>
                                                      </div>
                                                      <br>
                                                      Assume that a
                                                      branching
                                                      constraint was
                                                      added, enforcing
                                                      that items 1 and 3
                                                      must be in the
                                                      same bin. The
                                                      variables that do
                                                      not satisfy this
                                                      constraint were
                                                      deleted. The
                                                      resulting LP is
                                                      the one in the
                                                      attached file.
                                                      After
                                                      re-optimization,
                                                      the sum over the
                                                      variables which
                                                      cover items 1 and
                                                      3 is still
                                                      fractional, and
                                                      its value is 0.5.
                                                      Assume that no
                                                      improving variable
                                                      is priced out,
                                                      during the column
                                                      generation phase.
                                                      What does prevent
                                                      the same branching
                                                      constraint to be
                                                      generated again ?<br>
                                                    </div>
                                                    <div>This is
                                                      because, in the
                                                      case of a set
                                                      covering problem,
                                                      the sum over the
                                                      variables which
                                                      cover items 1 and
                                                      3 can be greater
                                                      than one and
                                                      fractional, which
                                                      can not happen
                                                      with a set
                                                      partitionning
                                                      problem.<br>
                                                    </div>
                                                    <div>So, my opinion
                                                      is that, with the
                                                      set covering
                                                      formulation, in
                                                      the case of a
                                                      fractional sum
                                                      value for a pair
                                                      of a items, itĀ 
                                                      must be checked
                                                      whether the
                                                      branching
                                                      constraint is
                                                      satisfied (i.e.
                                                      that it is already
                                                      exists), and only
                                                      in the case that
                                                      is is not, to
                                                      create it.<br>
                                                      <br>
                                                    </div>
                                                    <div>Does it make
                                                      sense ?<br>
                                                    </div>
                                                    <div><br>
                                                    </div>
                                                    <div>Kind regards,<br>
                                                    </div>
                                                    <div><br>
                                                    </div>
                                                    <div>Xavier<br>
                                                    </div>
                                                    <br>
                                                  </div>
                                                  <div
class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338HOEnZb">
                                                    <div
class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338h5">
                                                      <div
                                                        class="gmail_extra"><br>
                                                        <div
                                                          class="gmail_quote">2017-03-23
                                                          16:38
                                                          GMT+01:00
                                                          Gerald Gamrath
                                                          <span
                                                          dir="ltr"><<a
moz-do-not-send="true"
class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338moz-txt-link-abbreviated"
href="mailto:gamrath@zib.de" target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:gamrath@zib.de">gamrath@zib.de</a></a>></span>:<br>
                                                          <blockquote
                                                          class="gmail_quote"
style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                                                          <div
                                                          bgcolor="#FFFFFF"
                                                          text="#000000">
                                                          <p>Dear
                                                          Xavier,</p>
                                                          <p>I would
                                                          guess that
                                                          there is a bug
                                                          in your
                                                          pricing
                                                          problem.</p>
                                                          <p>Normally,
                                                          if you branch
                                                          on items i and
                                                          j and go into,
                                                          say, the child
                                                          node where
                                                          SAME(i,j)
                                                          should hold,
                                                          you fix all
                                                          packings
                                                          locally to 0,
                                                          which contain
                                                          exactly one of
                                                          the two items.
                                                          But
                                                          additionally,
                                                          you need to
                                                          adjust your
                                                          pricing
                                                          problem, so
                                                          that no
                                                          further
                                                          packings with
                                                          that property
                                                          are priced in
                                                          in this
                                                          subtree, say
                                                          by adding a
                                                          constraint x_i
                                                          = x_j. Note
                                                          that variables
                                                          are always
                                                          valid
                                                          globally, so
                                                          if you jump
                                                          through the
                                                          tree and come
                                                          back to this
                                                          sub-tree later
                                                          on, you need
                                                          to repropagate
                                                          the node again
                                                          to make sure
                                                          that variables
                                                          generated in
                                                          between also
                                                          stick to the
                                                          branching
                                                          decision.</p>
                                                          <p>This works
                                                          fine for set
                                                          partitioning
                                                          problems or
                                                          set covering
                                                          problems if
                                                          you can ensure
                                                          that there is
                                                          always at
                                                          least one
                                                          optimal
                                                          solution which
                                                          would be
                                                          feasible for
                                                          the
                                                          corresponding
                                                          set
                                                          partitioning
                                                          problem.</p>
                                                          <p>If in your
                                                          problem, this
                                                          is not the
                                                          case and there
                                                          is no optimal
                                                          solution which
                                                          fulfills all
                                                          constraints
                                                          with equality,
                                                          I fear you
                                                          cannot use
                                                          Ryan and
                                                          Foster
                                                          branching.</p>
                                                          <p>Your fix
                                                          might cure the
                                                          symptoms, but
                                                          I guess the
                                                          bug itself
                                                          persists.
                                                          Because if you
                                                          did some
                                                          branching on
                                                          SAME(i,j)
                                                          before, there
                                                          should not be
                                                          any incentive
                                                          to do the same
                                                          branching
                                                          again. If
                                                          there is, then
                                                          the old
                                                          branching was
                                                          actually not
                                                          strictly
                                                          enforced, and
                                                          as such, you
                                                          might now
                                                          choose to not
                                                          do the same
                                                          branching
                                                          again, but you
                                                          might end up
                                                          with a
                                                          situation
                                                          where you
                                                          performed all
                                                          possible
                                                          branching but
                                                          are still not
                                                          feasible,
                                                          since as it
                                                          seems, your
                                                          branchings are
                                                          not (always)
                                                          respected.</p>
                                                          Best,<br>
                                                          Gerald
                                                          <div>
                                                          <div
class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753h5"><br>
                                                          <br>
                                                          <div
class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958moz-cite-prefix">On
                                                          23.03.2017
                                                          16:09, Xavier
                                                          Schepler
                                                          wrote:<br>
                                                          </div>
                                                          </div>
                                                          </div>
                                                          <blockquote
                                                          type="cite">
                                                          <div>
                                                          <div
class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753h5">
                                                          <div dir="ltr">
                                                          <div>
                                                          <div>Dear SCIP
                                                          developers,<br>
                                                          <br>
                                                          </div>
                                                          I'm working on
                                                          a variant of
                                                          the
                                                          bin-packing
                                                          problem. I
                                                          started from
                                                          the example of
                                                          a
                                                          branch-and-price
                                                          algorithm for
                                                          the bin
                                                          packing
                                                          problem
                                                          provided with
                                                          SCIP 3.2.1. It
                                                          uses the Ryan
                                                          and Foster
                                                          branching
                                                          rule.<br>
                                                          <br>
                                                          </div>
                                                          <div>However,
                                                          the master
                                                          problem is a
                                                          set cover
                                                          problem, so,
                                                          potentially,
                                                          after
                                                          branching on a
                                                          pair of item,
                                                          it may happen
                                                          that this same
                                                          pair of items
                                                          comes up again
                                                          with a
                                                          fractional sum
                                                          value in a
                                                          child node.<br>
                                                          </div>
                                                          <div>To avoid
                                                          this problem,
                                                          we must ensure
                                                          that the pair
                                                          selected for
                                                          branching has
                                                          not been
                                                          selected
                                                          before in an
                                                          ancestor for
                                                          branching. If
                                                          it has,
                                                          another pair
                                                          must be
                                                          selected.<br>
                                                          <br>
                                                          </div>
                                                          <div>Before
                                                          adding a piece
                                                          of code that
                                                          checks if a
                                                          pair was
                                                          selected
                                                          before for
                                                          branching, I
                                                          had my program
                                                          branching
                                                          again and
                                                          again on the
                                                          same pair of
                                                          variable, for
                                                          one particular
                                                          instance.<br>
                                                          <br>
                                                          </div>
                                                          <div>The code
                                                          which computes
                                                          the fractional
                                                          values of the
                                                          pair is now as
                                                          follows :<br>
                                                          <br>
                                                          <pre><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-cm">/* compute weigthts for each order pair */</span>
<span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-k">for</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">(</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">v</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-o">=</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-mi">0</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">;</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">v</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-o"><</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">nlpcands</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">;</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-o">++</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">v</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">)</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">{</span>
<a moz-do-not-send="true" name="m_5442217572206144159_m_-2019721574131620711_m_8327358648935919338_m_-3460604176725813753_m_3956173086178731958_branch_ryanfoster.c-174"></a>   <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">assert</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">(</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">lpcands</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">[</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">v</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">]</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-o">!=</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-nb">NULL</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">);</span>
        <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-cm">/* get variable data which contains the information to which constraints/items the variable belongs */</span>
<a moz-do-not-send="true" name="m_5442217572206144159_m_-2019721574131620711_m_8327358648935919338_m_-3460604176725813753_m_3956173086178731958_branch_ryanfoster.c-177"></a>   <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">vardata</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-o">=</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">SCIPvarGetData</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">(</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">lpcands</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">[</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">v</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">]);</span>
        <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">consids</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-o">=</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">SCIPvardataGetConsids</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">(</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">vardata</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">)<wbr>;</span>
<a moz-do-not-send="true" name="m_5442217572206144159_m_-2019721574131620711_m_8327358648935919338_m_-3460604176725813753_m_3956173086178731958_branch_ryanfoster.c-180"></a>   <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">nconsids</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-o">=</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">SCIPvardataGetNConsids</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">(</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">vardata</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p"><wbr>);</span>
<a moz-do-not-send="true" name="m_5442217572206144159_m_-2019721574131620711_m_8327358648935919338_m_-3460604176725813753_m_3956173086178731958_branch_ryanfoster.c-181"></a>   <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">assert</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">(</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">nconsids</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-o">></span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-mi">0</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">);</span>
        <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-cm">/* loop over all constraints/items the variable belongs to */</span>
<a moz-do-not-send="true" name="m_5442217572206144159_m_-2019721574131620711_m_8327358648935919338_m_-3460604176725813753_m_3956173086178731958_branch_ryanfoster.c-184"></a>   <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-k">for</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">(</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">i</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-o">=</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-mi">0</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">;</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">i</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-o"><</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">nconsids</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">;</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-o">++</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">i</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">)</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">{</span>
<a moz-do-not-send="true" name="m_5442217572206144159_m_-2019721574131620711_m_8327358648935919338_m_-3460604176725813753_m_3956173086178731958_branch_ryanfoster.c-185"></a>           <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">id1</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-o">=</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">consids</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">[</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">i</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">];</span>
<a moz-do-not-send="true" name="m_5442217572206144159_m_-2019721574131620711_m_8327358648935919338_m_-3460604176725813753_m_3956173086178731958_branch_ryanfoster.c-186"></a>           <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-k">for</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">(</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">j</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-o">=</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">i</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-o">+</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-mi">1</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">;</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">j</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-o"><</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">nconsids</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">;</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-o">++</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">j</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">)</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">{</span>
<a moz-do-not-send="true" name="m_5442217572206144159_m_-2019721574131620711_m_8327358648935919338_m_-3460604176725813753_m_3956173086178731958_branch_ryanfoster.c-187"></a>                   <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">id2</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-o">=</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">consids</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">[</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">j</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">];</span>
<a moz-do-not-send="true" name="m_5442217572206144159_m_-2019721574131620711_m_8327358648935919338_m_-3460604176725813753_m_3956173086178731958_branch_ryanfoster.c-188"></a>                   <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">assert</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">(</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">id1</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-o"><</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">id2</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">);</span>
<a moz-do-not-send="true" name="m_5442217572206144159_m_-2019721574131620711_m_8327358648935919338_m_-3460604176725813753_m_3956173086178731958_branch_ryanfoster.c-189"></a>                   <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-k">if</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">(</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">branchpairs</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">[</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">id2</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">][</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">id1</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">])</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">{</span>
<a moz-do-not-send="true" name="m_5442217572206144159_m_-2019721574131620711_m_8327358648935919338_m_-3460604176725813753_m_3956173086178731958_branch_ryanfoster.c-190"></a>                           <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-k">continue</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">;</span>
<a moz-do-not-send="true" name="m_5442217572206144159_m_-2019721574131620711_m_8327358648935919338_m_-3460604176725813753_m_3956173086178731958_branch_ryanfoster.c-191"></a>                   <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">}</span>
                        <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">pairweights</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">[</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">id2</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">][</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">id1</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">]</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-o">+=</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">lpcandsfrac</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">[</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">v</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">];</span>
                        <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">assert</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">(</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">SCIPisFeasLE</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">(</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">scip</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">,</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">pairweights</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">[</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">id2</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">][</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">id1</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">],</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-mf">1.0</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">));</span>
<a moz-do-not-send="true" name="m_5442217572206144159_m_-2019721574131620711_m_8327358648935919338_m_-3460604176725813753_m_3956173086178731958_branch_ryanfoster.c-196"></a>                   <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">assert</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">(</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">SCIPisFeasGE</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">(</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">scip</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">,</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">pairweights</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">[</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">id2</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">][</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">id1</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">],</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-mf">0.0</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">));</span>
<a moz-do-not-send="true" name="m_5442217572206144159_m_-2019721574131620711_m_8327358648935919338_m_-3460604176725813753_m_3956173086178731958_branch_ryanfoster.c-197"></a>           <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">}</span>
<a moz-do-not-send="true" name="m_5442217572206144159_m_-2019721574131620711_m_8327358648935919338_m_-3460604176725813753_m_3956173086178731958_branch_ryanfoster.c-198"></a>   <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">}</span>
<a moz-do-not-send="true" name="m_5442217572206144159_m_-2019721574131620711_m_8327358648935919338_m_-3460604176725813753_m_3956173086178731958_branch_ryanfoster.c-199"></a><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">}</span></pre>
        </div>
        <div><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">branchpairs</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">[</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">id2</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">][</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">id1</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">]</span> <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p"></span> is
          equal to zero if no branching constraints exists on the pair
          {id2, id1} for the current node, and it is equal to one
          otherwise.

          

        </div>
        <div>If a branching was done on the pair id2, id1, thenĀ  <span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">pairweights</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">[</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">id2</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">][</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">id1</span><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">] will be
            equal to zero, so this pair will not be selected for
            branching.

            

          </span></div>
        <div><span class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">Am I right ?</span>

          

        </div>
        <div>Kind regards,

          

        </div>
        <div>Xavier Schepler

        </div>
      </div>
      

      <fieldset class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958mimeAttachmentHeader"></fieldset>
      

      </div></div><pre>______________________________<wbr>_________________
Scip mailing list
<a moz-do-not-send="true" class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958moz-txt-link-abbreviated" href="mailto:Scip@zib.de" target="_blank">Scip@zib.de</a>
<a moz-do-not-send="true" class="m_5442217572206144159m_-2019721574131620711m_8327358648935919338m_-3460604176725813753m_3956173086178731958moz-txt-link-freetext" href="http://listserv.zib.de/mailman/listinfo/scip" target="_blank">http://listserv.zib.de/mailman<wbr>/listinfo/scip</a>
</pre>
    </blockquote>
    

  </div>


______________________________<wbr>_________________

Scip mailing list

<a moz-do-not-send="true" href="mailto:Scip@zib.de" target="_blank">Scip@zib.de</a>

<a moz-do-not-send="true" href="http://listserv.zib.de/mailman/listinfo/scip" rel="noreferrer" target="_blank">http://listserv.zib.de/mailman<wbr>/listinfo/scip</a>


</blockquote></div>
</div>
</div></div></blockquote></div>
</div>



</blockquote>
</div></div></div></blockquote></div>
</div>



</blockquote>
</div></div></div></blockquote></div>
</div>
</div></div></blockquote></div>
</div>



</blockquote>
</body></html>