[SCIP] variable locking problem

James Cussens james.cussens at bristol.ac.uk
Tue Jun 6 16:11:35 CEST 2023


Hi,

I'm getting an assert error (when running in OPT=dbg mode) because a variable is ending up with a negative number of down locks.

When I look at what is happening I see this:

[var.c:3183] debug: add rounding locks 1/1 to variable <t_G<-{C,E,F}> (locks=0/0, type=0)
[var.c:3183] debug: add rounding locks 0/1 to variable <t_G<-{C,E,F}> (locks=1/1, type=0)
[var.c:3183] debug: add rounding locks 0/1 to variable <t_G<-{C,E,F}> (locks=1/2, type=0)
[var.c:3183] debug: add rounding locks 1/1 to variable <t_G<-{C,E,F}> (locks=1/3, type=0)
[var.c:3183] debug: add rounding locks 1/1 to variable <t_G<-{C,E,F}> (locks=2/4, type=0)
[var.c:3183] debug: add rounding locks 1/1 to variable <t_G<-{C,E,F}> (locks=3/5, type=0)
[var.c:3183] debug: add rounding locks 1/1 to variable <t_G<-{C,E,F}> (locks=4/6, type=0)
[var.c:3183] debug: add rounding locks 1/1 to variable <t_G<-{C,E,F}> (locks=5/7, type=0)
[var.c:3183] debug: add rounding locks 1/1 to variable <t_G<-{C,E,F}> (locks=6/8, type=0)
[var.c:3183] debug: add rounding locks 0/-1 to variable <t_G<-{C,E,F}> (locks=7/9, type=0)
[var.c:3183] debug: add rounding locks -1/-1 to variable <t_G<-{C,E,F}> (locks=7/8, type=0)
[var.c:3183] debug: add rounding locks -1/-1 to variable <t_G<-{C,E,F}> (locks=6/7, type=0)
[var.c:3183] debug: add rounding locks -1/-1 to variable <t_G<-{C,E,F}> (locks=5/6, type=0)
[var.c:3183] debug: add rounding locks -1/-1 to variable <t_G<-{C,E,F}> (locks=4/5, type=0)
[var.c:3183] debug: add rounding locks -1/-1 to variable <t_G<-{C,E,F}> (locks=3/4, type=0)
[var.c:3183] debug: add rounding locks -1/-1 to variable <t_G<-{C,E,F}> (locks=2/3, type=0)
[var.c:3183] debug: add rounding locks -1/-1 to variable <t_G<-{C,E,F}> (locks=1/2, type=0)
[var.c:3183] debug: add rounding locks -1/-1 to variable <t_G<-{C,E,F}> (locks=0/1, type=0)
gobnilp: src/scip/var.c:3217: SCIPvarAddLocks: Assertion `lockvar->nlocksdown[locktype] >= 0' failed.


The (priced-in) variable is added to 9 constraints, and sure enough the locks are updated correctly each time the variable is added to a constraint. But at the end
of solving when the constraints are being deleted it looks like a 0/1 locking is being 'undone' with a -1/-1 unlocking.

Any idea what might be the problem here?

This assert error is thrown right at the end of solving, I don't get any problems earlier (and also the solving produces the correct solution).

James

James Cussens
Room MVB 3.26
Dept of Computer Science, University of Bristol
Phone: +44 (0)117 455 8723
https://jcussens.github.io/
Funded PhDs available in Bristol in the following areas: Data Science<http://www.bristol.ac.uk/cdt/compass/>, Interactive AI<http://www.bristol.ac.uk/cdt/interactive-ai/>, Cyber Security<http://www.bristol.ac.uk/cdt/cyber-security/> or Digital Health<http://www.bristol.ac.uk/cdt/digital-health/>.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.zib.de/pipermail/scip/attachments/20230606/d4a1cc01/attachment.html>


More information about the Scip mailing list