<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<p></p>
<p data-start="237" data-end="252">Hello Fabian,</p>
<p data-start="254" data-end="560">You might find this paper helpful: <a data-start="289" data-end="357" class="decorated-link" rel="noopener" target="_new" href="https://arxiv.org/abs/2412.14710">
https://arxiv.org/abs/2412.14710<span aria-hidden="true" class="ms-0.5 inline-block align-middle leading-none"><svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg" data-rtl-flip="" class="block h-[0.75em] w-[0.75em] stroke-current stroke-[0.75]"><path d="M14.3349 13.3301V6.60645L5.47065 15.4707C5.21095 15.7304 4.78895 15.7304 4.52925 15.4707C4.26955 15.211 4.26955 14.789 4.52925 14.5293L13.3935 5.66504H6.66011C6.29284 5.66504 5.99507 5.36727 5.99507 5C5.99507 4.63273 6.29284 4.33496 6.66011 4.33496H14.9999L15.1337 4.34863C15.4369 4.41057 15.665 4.67857 15.665 5V13.3301C15.6649 13.6973 15.3672 13.9951 14.9999 13.9951C14.6327 13.9951 14.335 13.6973 14.3349 13.3301Z"></path></svg></span></a>,
or even more so the accompanying code: <a data-start="398" data-end="480" class="decorated-link" rel="noopener" target="_new" href="https://github.com/alexhoen/bnbanalyzer">
https://github.com/alexhoen/bnbanalyzer<span aria-hidden="true" class="ms-0.5 inline-block align-middle leading-none"><svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg" data-rtl-flip="" class="block h-[0.75em] w-[0.75em] stroke-current stroke-[0.75]"><path d="M14.3349 13.3301V6.60645L5.47065 15.4707C5.21095 15.7304 4.78895 15.7304 4.52925 15.4707C4.26955 15.211 4.26955 14.789 4.52925 14.5293L13.3935 5.66504H6.66011C6.29284 5.66504 5.99507 5.36727 5.99507 5C5.99507 4.63273 6.29284 4.33496 6.66011 4.33496H14.9999L15.1337 4.34863C15.4369 4.41057 15.665 4.67857 15.665 5V13.3301C15.6649 13.6973 15.3672 13.9951 14.9999 13.9951C14.6327 13.9951 14.335 13.6973 14.3349 13.3301Z"></path></svg></span></a>.<br data-start="481" data-end="484">
Although it’s written in C++, it should still serve as a useful reference.</p>
<p data-start="562" data-end="909">In that project, I collect all leaves of the Branch-and-Bound tree using the event handler system and then perform analyses on them.<br data-start="694" data-end="697">
If you remove the analysis part, the code will effectively print the entire Branch-and-Bound tree. You can either reuse the existing code directly or adapt it as a debugging tool for your Python implementation.</p>
<p data-start="911" data-end="1074">My suggestion is to ensure that you have parameterized it correctly as Branch-and-Bound (B&B). The relevant parameterization can be found in the
<code data-start="1056" data-end="1071">SCIPInterface</code>.</p>
<p data-start="1076" data-end="1094">Hope this helps!</p>
<p data-start="1096" data-end="1115">Best,<br data-start="1101" data-end="1104">
Alexander</p>
<p><br>
</p>
<p><br>
</p>
</div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Scip <scip-bounces@zib.de> on behalf of Badilla Mera, Fabian <fbadilla@gatech.edu><br>
<b>Sent:</b> Tuesday, October 14, 2025 4:45:31 PM<br>
<b>To:</b> scip@zib.de<br>
<b>Subject:</b> [SCIP] About variable fixing during branching</font>
<div> </div>
</div>
<div>
<div style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
Hi Everyone,</div>
<div style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
I'm currently using PySCIPOpt to generate B&B trees, because I'm interested in some information related to the leaves of the tree. I'm keeping track of the solving process using an Event handler that saves data such as the branching performed at each node,
the node's LP objval, the dual solutions, among other information.</div>
<div style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
I want to use the most basic B&B algorithm possible to generate the full tree. To do this, I'm currently deactivating some functionality from SCIP using the methods: setPresolve(off), setHeuristics(off), setSeparting(off) and disablePropagation(). Also, I'm
setting additional parameters like propagating/maxrounds, propagating/maxcuts to 0 and using DFS node selection.</div>
<div style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
My problem is that I've encountered some intances where the LP that SCIP is solving at the node is not the one that I expected, because it has additional variables being fixed. I think this happens whenever we found a solution in a Branch of the tree, and then
SCIP use that information to fix variables on the rest of the tree. This leads SCIP to prune the branch before finding a node where the LP bound is worst than the global bound, because it marks the node as infeasible (even when the LP it is feasible).</div>
<div style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
In summary, I'd really appreaciate if you could guide me on which parameters I have to tweak to be able to get the full trees and deactivate the additional variable fixing. Also, if someone could explain me what conditions triggers the event "NODEINFEASIBLE"
that would help me a lot, because in some cases I get that event even when the node's LP is feasible. How does SCIP detects that the branch will be infeasible for the original MIP?</div>
<div style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
Best regards,</div>
<div style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
Fabian Badilla</div>
</div>
</body>
</html>