[SCIP] [Scip] SCIP changes variable bounds in solving stage

Gerald Gamrath gamrath at zib.de
Wed Aug 26 11:31:58 CEST 2015


Dear Marko,

sorry for the late reply, I was on vacation.

As you assumed, getting the lpsolved event twice is caused by a bound 
change after the LP was solved the first time, which will trigger 
another LP solving (with cut&price) loop.

In order to see which plugin changes this bound, you could set a 
breakpoint in gdb at that code in you event handler and look at the 
backtrace. Perhaps, we can also identify it by looking at the SCIP 
statistics. Could you print them and send them to me?

If we know, we cna disable that plugin (although normally, the settings 
should already be defensive enough such that no such problem occurs).

Best,
Gerald

On 14.08.2015 13:57, Horváth Markó wrote:
> 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
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> http://listserv.zib.de/mailman/listinfo/scip



More information about the Scip mailing list