[Scip] SCIP changes variable bounds in solving stage

Horváth Markó horvathmarko89 at gmail.com
Fri Aug 14 13:57:32 CEST 2015


Dear all,

I'm still dealing with a branch-and-price procedure for a problem with 
binary variables, by using SCIP 3.2.0 with soplex 2.2.0.
The problem is that my pricer generates a column twice. More precisely, 
in a non-root tree node generates a column already exists in the root.

1) the newly generated column has negative reduced cost (my reduced cost 
calculation gives the same result as method SCIPgetVarRedcost) and it is 
feasible according to branching rule.
2) the original column is in the LP (via SCIPvarIsInLP)

So, that was strange for me, but after some investigation 
(http://listserv.zib.de/pipermail/scip/2014-August/002121.html) I 
accepted it, and checked the bounds:

3) the original column has an upper bound equal to 0. And that is the 
problem. Why does SCIP change the upper bound of the variable (since it 
is clear that I need this variable)? Not my branching rule do this, but 
SCIP. I have made a general event handler and I have followed the 
corresponding variable, and I have got the following:

(general event handler) [lpsolved] LP of node 8 was completely solved 
with cut & price
(general event handler) [lb/ub tightened/relaxed] the local lower/upper 
bound of variable xnew_30379 has been increased/decreased
(general event handler) xnew_30379: llb: 0.000000 lub: 0.000000
(general event handler) [glb/gub changed] the global lower/upper bound 
of variable xnew_30379 has been changed
(general event handler) xnew_30379: glb: 0.000000 gub: 0.000000
(general event handler) [lpsolved] LP of node 8 was completely solved 
with cut & price

and it is interesting that I have got the message 'LP of node 8 was 
completely solved with cut & price' twice.

So. I would like to ask why SCIP changes bounds of a variable (in 
solving stage) and I would like to know if it is possible to turn it off.

Best regards,
Marko


More information about the Scip mailing list