<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
Hi,</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
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.
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
When I look at what is happening I see this:<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof ContentPasted0">
[var.c:3183] debug: add rounding locks 1/1 to variable <t_G<-{C,E,F}> (locks=0/0, type=0)
<div class="ContentPasted0">[var.c:3183] debug: add rounding locks 0/1 to variable <t_G<-{C,E,F}> (locks=1/1, type=0)</div>
<div class="ContentPasted0">[var.c:3183] debug: add rounding locks 0/1 to variable <t_G<-{C,E,F}> (locks=1/2, type=0)</div>
<div class="ContentPasted0">[var.c:3183] debug: add rounding locks 1/1 to variable <t_G<-{C,E,F}> (locks=1/3, type=0)</div>
<div class="ContentPasted0">[var.c:3183] debug: add rounding locks 1/1 to variable <t_G<-{C,E,F}> (locks=2/4, type=0)</div>
<div class="ContentPasted0">[var.c:3183] debug: add rounding locks 1/1 to variable <t_G<-{C,E,F}> (locks=3/5, type=0)</div>
<div class="ContentPasted0">[var.c:3183] debug: add rounding locks 1/1 to variable <t_G<-{C,E,F}> (locks=4/6, type=0)</div>
<div class="ContentPasted0">[var.c:3183] debug: add rounding locks 1/1 to variable <t_G<-{C,E,F}> (locks=5/7, type=0)</div>
<div class="ContentPasted0">[var.c:3183] debug: add rounding locks 1/1 to variable <t_G<-{C,E,F}> (locks=6/8, type=0)</div>
<div class="ContentPasted0">[var.c:3183] debug: add rounding locks 0/-1 to variable <t_G<-{C,E,F}> (locks=7/9, type=0)</div>
<div class="ContentPasted0">[var.c:3183] debug: add rounding locks -1/-1 to variable <t_G<-{C,E,F}> (locks=7/8, type=0)</div>
<div class="ContentPasted0">[var.c:3183] debug: add rounding locks -1/-1 to variable <t_G<-{C,E,F}> (locks=6/7, type=0)</div>
<div class="ContentPasted0">[var.c:3183] debug: add rounding locks -1/-1 to variable <t_G<-{C,E,F}> (locks=5/6, type=0)</div>
<div class="ContentPasted0">[var.c:3183] debug: add rounding locks -1/-1 to variable <t_G<-{C,E,F}> (locks=4/5, type=0)</div>
<div class="ContentPasted0">[var.c:3183] debug: add rounding locks -1/-1 to variable <t_G<-{C,E,F}> (locks=3/4, type=0)</div>
<div class="ContentPasted0">[var.c:3183] debug: add rounding locks -1/-1 to variable <t_G<-{C,E,F}> (locks=2/3, type=0)</div>
<div class="ContentPasted0">[var.c:3183] debug: add rounding locks -1/-1 to variable <t_G<-{C,E,F}> (locks=1/2, type=0)</div>
<div class="ContentPasted0">[var.c:3183] debug: add rounding locks -1/-1 to variable <t_G<-{C,E,F}> (locks=0/1, type=0)</div>
<div class="ContentPasted0 ContentPasted1">gobnilp: src/scip/var.c:3217: SCIPvarAddLocks: Assertion `lockvar->nlocksdown[locktype] >= 0' failed.<br class="ContentPasted1">
<br>
</div>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof ContentPasted0">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof ContentPasted0">
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</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof ContentPasted0">
of solving when the constraints are being deleted it looks like a 0/1 locking is being 'undone' with a -1/-1 unlocking.</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof ContentPasted0">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof ContentPasted0">
Any idea what might be the problem here? <br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof ContentPasted0">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof ContentPasted0">
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).</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof ContentPasted0">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof ContentPasted0">
James<br>
</div>
<div class="elementToProof">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div id="Signature">
<div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
James Cussens</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Room MVB 3.26<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Dept of Computer Science, University of Bristol</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Phone: +44 (0)117 455 8723<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<a href="https://jcussens.github.io/">https://jcussens.github.io/</a></div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span style="font-size:11.5pt">Funded PhDs available in Bristol in the following areas: <a href="http://www.bristol.ac.uk/cdt/compass/" target="_blank" rel="noopener noreferrer"><span>Data Science</span></a>, <a href="http://www.bristol.ac.uk/cdt/interactive-ai/" target="_blank" rel="noopener noreferrer"><span>Interactive
AI</span></a>, <a href="http://www.bristol.ac.uk/cdt/cyber-security/" target="_blank" rel="noopener noreferrer"><span>Cyber Security</span></a> or <a href="http://www.bristol.ac.uk/cdt/digital-health/" target="_blank" rel="noopener noreferrer"><span>Digital
Health</span></a>. </span><br>
</div>
</div>
</div>
</div>
</body>
</html>