[SCIP] About variable fixing during branching

Badilla Mera, Fabian fbadilla at gatech.edu
Tue Oct 14 16:45:31 CEST 2025


Hi Everyone,

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.

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.

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).

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?

Best regards,
Fabian Badilla
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.zib.de/pipermail/scip/attachments/20251014/6c4024b1/attachment.html>


More information about the Scip mailing list