[SCIP] Lazy bound cannot be active

Gerald Gamrath gamrath at zib.de
Mon Jul 15 17:35:56 CEST 2019


Dear Liding Xu,

the lazy bound can (and often should) be equal to the upper bound of a 
variable. But this is not what this assert ensures. This assert should 
make sure that no upper bound for this variable is set in the LP solver 
(third part of the assert) unless the upper bound of the variable is 
lower than the lazy bound (second part; e.g., if in your case a variable 
is fixed to 0) or SCIP is in diving mode (first part; since diving mode 
can change the objective function, the lazy bounds need to be ensured 
explicitly). What value does "col->flushedub" have when the assert comes up?

Best,
Gerald

Am 02.07.19 um 09:09 schrieb liding xu:
> Dear scip team,
>   I have a set of binary variables x_i such that they are in 
> constraint \sum_{i} x_i = 1. So I set lazy bound on x_i to 1.0. 
> However, when a x_i becomes 1, the scip report error " 
> updateLazyBounds: Assertion `lp->divinglazyapplied || SCIPsetIsLT(set, 
> col->ub, col->lazyub) || (col->flushedub == SCIPlpiInfinity(lp->lpi))' 
> failed" in  file "src/scip/lp.c:12176:".
>   I test that because SCIPsetIsLT(set, col->ub, col->lazyub) fails 
> which is in my test case '1.0 < 1.0'. Why the lazy bound cannot equal 
> to the upper bound of binary variable?
>
> Best regards,
> Liding XU
>
>
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> https://listserv.zib.de/mailman/listinfo/scip

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.zib.de/pipermail/scip/attachments/20190715/148462ad/attachment.html>


More information about the Scip mailing list