<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body 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<br>
<br>
<br>
<div class="moz-cite-prefix">On 24.03.2017 09:45, Xavier Schepler
wrote:<br>
</div>
<blockquote
cite="mid:CA+SwSLxysc6BRK_5vujaBv6nn8HXu9e4Y2h1yrfOCwoFrcWH8w@mail.gmail.com"
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">gamrath@zib.de</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="h5"><br>
<br>
<br>
<div class="m_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">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>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_8327358648935919338HOEnZb">
<div class="m_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_8327358648935919338moz-txt-link-abbreviated"
href="mailto:gamrath@zib.de"
target="_blank">gamrath@zib.de</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_8327358648935919338m_-3460604176725813753h5"><br>
<br>
<div
class="m_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_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_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-cm">/* compute weigthts for each order pair */</span>
<span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-k">for</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">(</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">v</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-o">=</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-mi">0</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">;</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">v</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-o"><</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">nlpcands</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">;</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-o">++</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">v</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">)</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">{</span>
<a moz-do-not-send="true" name="m_8327358648935919338_m_-3460604176725813753_m_3956173086178731958_branch_ryanfoster.c-174"></a> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">assert</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">(</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">lpcands</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">[</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">v</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">]</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-o">!=</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-nb">NULL</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">);</span>
<span class="m_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_8327358648935919338_m_-3460604176725813753_m_3956173086178731958_branch_ryanfoster.c-177"></a> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">vardata</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-o">=</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">SCIPvarGetData</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">(</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">lpcands</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">[</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">v</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">]);</span>
<span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">consids</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-o">=</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">SCIPvardataGetConsids</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">(</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">vardata</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">)<wbr>;</span>
<a moz-do-not-send="true" name="m_8327358648935919338_m_-3460604176725813753_m_3956173086178731958_branch_ryanfoster.c-180"></a> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">nconsids</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-o">=</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">SCIPvardataGetNConsids</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">(</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">vardata</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p"><wbr>);</span>
<a moz-do-not-send="true" name="m_8327358648935919338_m_-3460604176725813753_m_3956173086178731958_branch_ryanfoster.c-181"></a> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">assert</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">(</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">nconsids</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-o">></span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-mi">0</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">);</span>
<span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-cm">/* loop over all constraints/items the variable belongs to */</span>
<a moz-do-not-send="true" name="m_8327358648935919338_m_-3460604176725813753_m_3956173086178731958_branch_ryanfoster.c-184"></a> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-k">for</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">(</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">i</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-o">=</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-mi">0</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">;</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">i</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-o"><</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">nconsids</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">;</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-o">++</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">i</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">)</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">{</span>
<a moz-do-not-send="true" name="m_8327358648935919338_m_-3460604176725813753_m_3956173086178731958_branch_ryanfoster.c-185"></a> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">id1</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-o">=</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">consids</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">[</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">i</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">];</span>
<a moz-do-not-send="true" name="m_8327358648935919338_m_-3460604176725813753_m_3956173086178731958_branch_ryanfoster.c-186"></a> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-k">for</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">(</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">j</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-o">=</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">i</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-o">+</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-mi">1</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">;</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">j</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-o"><</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">nconsids</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">;</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-o">++</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">j</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">)</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">{</span>
<a moz-do-not-send="true" name="m_8327358648935919338_m_-3460604176725813753_m_3956173086178731958_branch_ryanfoster.c-187"></a> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">id2</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-o">=</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">consids</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">[</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">j</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">];</span>
<a moz-do-not-send="true" name="m_8327358648935919338_m_-3460604176725813753_m_3956173086178731958_branch_ryanfoster.c-188"></a> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">assert</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">(</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">id1</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-o"><</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">id2</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">);</span>
<a moz-do-not-send="true" name="m_8327358648935919338_m_-3460604176725813753_m_3956173086178731958_branch_ryanfoster.c-189"></a> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-k">if</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">(</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">branchpairs</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">[</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">id2</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">][</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">id1</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">])</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">{</span>
<a moz-do-not-send="true" name="m_8327358648935919338_m_-3460604176725813753_m_3956173086178731958_branch_ryanfoster.c-190"></a> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-k">continue</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">;</span>
<a moz-do-not-send="true" name="m_8327358648935919338_m_-3460604176725813753_m_3956173086178731958_branch_ryanfoster.c-191"></a> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">}</span>
<span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">pairweights</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">[</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">id2</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">][</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">id1</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">]</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-o">+=</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">lpcandsfrac</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">[</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">v</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">];</span>
<span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">assert</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">(</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">SCIPisFeasLE</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">(</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">scip</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">,</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">pairweights</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">[</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">id2</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">][</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">id1</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">],</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-mf">1.0</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">));</span>
<a moz-do-not-send="true" name="m_8327358648935919338_m_-3460604176725813753_m_3956173086178731958_branch_ryanfoster.c-196"></a> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">assert</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">(</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">SCIPisFeasGE</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">(</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">scip</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">,</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">pairweights</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">[</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">id2</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">][</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">id1</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">],</span> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-mf">0.0</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">));</span>
<a moz-do-not-send="true" name="m_8327358648935919338_m_-3460604176725813753_m_3956173086178731958_branch_ryanfoster.c-197"></a> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">}</span>
<a moz-do-not-send="true" name="m_8327358648935919338_m_-3460604176725813753_m_3956173086178731958_branch_ryanfoster.c-198"></a> <span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">}</span>
<a moz-do-not-send="true" name="m_8327358648935919338_m_-3460604176725813753_m_3956173086178731958_branch_ryanfoster.c-199"></a><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">}</span></pre>
</div>
<div><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">branchpairs</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">[</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">id2</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">][</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">id1</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">]</span> <span class="m_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_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">pairweights</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">[</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">id2</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">][</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-n">id1</span><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">] will be
equal to zero, so this pair will not be selected for
branching.
</span></div>
<div><span class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958gmail-p">Am I right ?</span>
</div>
<div>Kind regards,
</div>
<div>Xavier Schepler
</div>
</div>
<fieldset class="m_8327358648935919338m_-3460604176725813753m_3956173086178731958mimeAttachmentHeader"></fieldset>
</div></div><pre>______________________________<wbr>_________________
Scip mailing list
<a moz-do-not-send="true" class="m_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_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>
</body></html>