<div dir="ltr"><div dir="ltr">Dear Gregor,<div><br></div><div><p style="margin:0px;font-stretch:normal;font-size:13px;line-height:normal;font-family:Arial"><span style="-webkit-font-kerning: none;">I have experienced some weird behavior using the method that I implemented following your instructions.</span></p>
<p style="margin:0px;font-stretch:normal;font-size:13px;line-height:normal;font-family:Arial;min-height:15px"><span style="-webkit-font-kerning: none;"></span><br></p>
<p style="margin:0px;font-stretch:normal;font-size:13px;line-height:normal;font-family:Arial"><span style="-webkit-font-kerning: none;">In particular, I noticed that if I enable all default heuristics the number of pruned nodes remains zero during the whole process. In order to investigate this, I observed the evolution of the number of open nodes (obtained as SCIPgetNChildren() + SCIPgetNLeaves() + SCIPgetNSiblings() ). If no nodes are pruned, the number of open nodes should increase linearly. However, this is not the case (see attached figure).</span></p>
<p style="margin:0px;font-stretch:normal;font-size:13px;line-height:normal;font-family:Arial;min-height:15px"><span style="-webkit-font-kerning: none;"></span><br></p>
<p style="margin:0px;font-stretch:normal;font-size:13px;line-height:normal;font-family:Arial"><span style="-webkit-font-kerning: none;">I wonder if this has anything to do with heuristics, cutting planes, etc. ?</span></p>
<p style="margin:0px;font-stretch:normal;font-size:13px;line-height:normal;font-family:Arial"><span style="-webkit-font-kerning: none;">As I mentioned in my first email, I would like to know the number of pruned nodes by all processes (bound, integrality and infeasibility).</span></p>
<p style="margin:0px;font-stretch:normal;font-size:13px;line-height:normal;font-family:Arial;min-height:15px"><span style="-webkit-font-kerning: none;"></span><br></p>
<p style="margin:0px;font-stretch:normal;font-size:13px;line-height:normal;font-family:Arial"><span style="-webkit-font-kerning: none;">Best regards,</span></p>
<p style="margin:0px;font-stretch:normal;font-size:13px;line-height:normal;font-family:Arial;min-height:15px"><span style="-webkit-font-kerning: none;"></span><br></p>
<p style="margin:0px;font-stretch:normal;font-size:13px;line-height:normal;font-family:Arial"><span style="-webkit-font-kerning: none;">Lara Scavuzzo</span></p></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">El jue., 25 jul. 2019 a las 19:06, Gregor Hendel (<<a href="mailto:hendel@zib.de">hendel@zib.de</a>>) escribió:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF">
Hi Lara,<br>
<br>
<div class="gmail-m_3758811403329591682moz-cite-prefix">Am 25.07.19 um 18:23 schrieb Lara
Scavuzzo:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div dir="ltr">
<p style="margin:0px;font-stretch:normal;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(24,26,24)">Dear
Gregor,</p>
<p style="margin:0px;font-stretch:normal;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(24,26,24);min-height:14px"><br>
</p>
<p style="margin:0px;font-stretch:normal;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(24,26,24)">Thank
you very much for your detailed explanation. As you
suggested, I used the <span style="color:rgb(34,34,34)">ncreatednodesrun
counter, although I think you meant to write</span></p>
<p style="margin:0px;font-stretch:normal;font-size:12px;line-height:normal;font-family:Helvetica"><span><pruned nodes> =
scip->stat->ncreatednodesrun - SCIPgetNNodes() - (
SCIPgetNChildren() + SCIPgetNLeaves() + SCIPgetNSiblings()
)</span></p>
</div>
</div>
</blockquote>
that is what I meant indeed. <br>
<blockquote type="cite">
<div dir="ltr">
<div dir="ltr">
<p style="margin:0px;font-stretch:normal;font-size:12px;line-height:normal;font-family:Helvetica;min-height:14px"><span></span><br>
</p>
<p style="margin:0px;font-stretch:normal;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(24,26,24)">If
I may ask for one last clarification: from what you write I
understand that the children/siblings/leaves distinction is
made based on the depth of each open node with respect to
the focus node. Is this correct?</p>
</div>
</div>
</blockquote>
It is not the depth that decides. It is the parent-child relation
with the focus node. If the focus node has already been branched on,
the newly created nodes are stored as children. Similarly, when the
focus node was created as a branching child itself, the other node
with the same parent is the sibling of the focus node. All other
open nodes are maintained as leaves. Recall that SCIP admits n-ary
user branching schemes, which is why even the siblings are kept as
array, although there is usually at most 1 sibling.<br>
<br>
Best regards,<br>
Gregor<br>
<br>
<blockquote type="cite">
<div dir="ltr">
<div dir="ltr">
<p style="margin:0px;font-stretch:normal;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(24,26,24);min-height:14px"><br>
</p>
<p style="margin:0px;font-stretch:normal;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(24,26,24)">Thank
you again.</p>
<p style="margin:0px;font-stretch:normal;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(24,26,24);min-height:14px"><br>
</p>
<p style="margin:0px;font-stretch:normal;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(24,26,24)">Best,</p>
<p style="margin:0px;font-stretch:normal;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(24,26,24);min-height:14px"><br>
</p>
<p style="margin:0px;font-stretch:normal;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(24,26,24)">Lara</p>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">El jue., 25 jul. 2019 a las
14:46, Gregor Hendel (<<a href="mailto:hendel@zib.de" target="_blank">hendel@zib.de</a>>) escribió:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF"> Hi Lara,<br>
<br>
the tree maintains three different types of open nodes:
children, siblings, and leaves. The types are always
relative to the focus node. It is correct that
SCIPgetNNodes() returns the total number of processed nodes,
ie, the nodes which have been focussed during the search so
far.<br>
<br>
The number of currently open nodes can therefore be accessed
as the sum SCIPgetNChildren() + SCIPgetNSiblings() +
SCIPgetNLeaves()<br>
<br>
SCIPgetNFeasibleLeaves() and SCIPgetNInfeasibleLeaves() are
referring to leaves from hindsight, i.e., they count how
often the search encountered nodes where the relaxation was
feasible (e.g, all variables integer) and how often a focus<br>
node was pruned (either the relaxation hit the objective
limit, or the node represents an infeasible subproblem). <br>
On the contrary, SCIPgetNLeaves() reports the current number
of leaf nodes in the queue, not the total number of leaf
nodes.<br>
<br>
It is not possible in the current SCIP version to access the
number of pruned nodes. If nodes are pruned from the queue,
e.g., because a new incumbent solution has been found, this
happens silently at the solver's discretion. <br>
<br>
There is a counter for the number of created nodes, which is
not publicly accessible via methods.<br>
<br>
scip->stat->ncreatednodesrun<br>
<br>
You can (ab)use this counter to get the number of pruned
nodes by the equation<br>
<br>
<pruned nodes> = scip->stat->ncreatednodesrun -
SCIPgetNNodes() - SCIPgetNChildren() + SCIPgetNLeaves() +
SCIPgetNSiblings()<br>
<br>
I don't see a reason why there is no public method to access
this attribute of the stats struct, I suggest you add one,
that you can wrap from the Python Interface in a second
step.<br>
<br>
Hope this helps,<br>
Gregor<br>
<br>
<br>
<div class="gmail-m_3758811403329591682gmail-m_-4280873926532715229moz-cite-prefix">Am
25.07.19 um 13:21 schrieb Lara Scavuzzo Montana:<br>
</div>
<blockquote type="cite">
<div id="gmail-m_3758811403329591682gmail-m_-4280873926532715229divtagdefaultwrapper" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif" dir="ltr">
<p style="margin-right:0px;margin-left:0px;font-stretch:normal;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(24,26,24)">
Dear SCIP community,</p>
<p style="margin-right:0px;margin-left:0px;font-stretch:normal;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(24,26,24)">
<br>
</p>
<p style="margin-right:0px;margin-left:0px;font-stretch:normal;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(24,26,24)">
I am solving MILPs using SCIP’s Python interface with
all default parameters and a custom branching rule. I
am a bit confused by the terminology of the
documentation, so I would be very thankful for the
following clarifications.</p>
<p style="margin-right:0px;margin-left:0px;font-stretch:normal;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(24,26,24);min-height:14px">
<br>
</p>
<p style="margin-right:0px;margin-left:0px;font-stretch:normal;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(24,26,24)">
During the solving process, I would like to keep track
of some solving statistics. In particular, at each
step know:</p>
<p style="margin-right:0px;margin-left:0px;font-stretch:normal;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(24,26,24)">
- <b>The number of processed nodes:</b> this can be
accessed with (correct me if I am wrong)
SCIPgetNNodes().</p>
<p style="margin-right:0px;margin-left:0px;font-stretch:normal;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(24,26,24)">
- <b>The number of open nodes:</b> is SCIPnodepqlen()
the right function to call?</p>
<p style="margin-right:0px;margin-left:0px;font-stretch:normal;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(24,26,24)">
- <b>The number of pruned nodes</b> (by bound,
infeasibility or integrality): I was unfortunately
unable to find a way to obtain this value. Would it be
(# of leaves) - (# of open nodes) ?</p>
<p style="margin-right:0px;margin-left:0px;font-stretch:normal;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(24,26,24);min-height:14px">
<br>
</p>
<p style="margin-right:0px;margin-left:0px;font-stretch:normal;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(24,26,24)">
I was also surprised to see that</p>
<p style="margin-right:0px;margin-left:0px;font-stretch:normal;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(24,26,24)">
SCIPgetNLeaves() != SCIPgetNFeasibleLeaves() +
SCIPgetNInfeasibleLeaves()</p>
<p style="margin-right:0px;margin-left:0px;font-stretch:normal;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(24,26,24)">
Maybe I am misinterpreting the meaning of these.</p>
<p style="margin-right:0px;margin-left:0px;font-stretch:normal;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(24,26,24);min-height:14px">
<br>
</p>
<p style="margin-right:0px;margin-left:0px;font-stretch:normal;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(24,26,24)">
Just to clarify, I would of course be modifying the
Python interface to include all necessary functions.</p>
<p style="margin-right:0px;margin-left:0px;font-stretch:normal;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(24,26,24)">
<br>
</p>
<p style="margin-right:0px;margin-left:0px;font-stretch:normal;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(24,26,24)">
Thank you in advance for any help with this issue.</p>
<p style="margin-right:0px;margin-left:0px;font-stretch:normal;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(24,26,24)">
<br>
</p>
<p style="margin-right:0px;margin-left:0px;font-stretch:normal;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(24,26,24)">
Best,</p>
<p style="margin-right:0px;margin-left:0px;font-stretch:normal;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(24,26,24)">
<br>
</p>
<p style="margin-right:0px;margin-left:0px;font-stretch:normal;font-size:12px;line-height:normal;font-family:Helvetica;color:rgb(24,26,24)">
Lara Scavuzzo</p>
</div>
<br>
<fieldset class="gmail-m_3758811403329591682gmail-m_-4280873926532715229mimeAttachmentHeader"></fieldset>
<pre class="gmail-m_3758811403329591682gmail-m_-4280873926532715229moz-quote-pre">_______________________________________________
Scip mailing list
<a class="gmail-m_3758811403329591682gmail-m_-4280873926532715229moz-txt-link-abbreviated" href="mailto:Scip@zib.de" target="_blank">Scip@zib.de</a>
<a class="gmail-m_3758811403329591682gmail-m_-4280873926532715229moz-txt-link-freetext" href="https://listserv.zib.de/mailman/listinfo/scip" target="_blank">https://listserv.zib.de/mailman/listinfo/scip</a>
</pre>
</blockquote>
<br>
</div>
_______________________________________________<br>
Scip mailing list<br>
<a href="mailto:Scip@zib.de" target="_blank">Scip@zib.de</a><br>
<a href="https://listserv.zib.de/mailman/listinfo/scip" rel="noreferrer" target="_blank">https://listserv.zib.de/mailman/listinfo/scip</a><br>
</blockquote>
</div>
</blockquote>
<br>
</div>
</blockquote></div>