[SCIP] Meaning of assertion assert(lp->validsollp == stat->lpcount)

Alexander Helber helber at or.rwth-aachen.de
Thu Oct 19 15:36:23 CEST 2023


Hi Marc,

i did terminate probing like this and I don't think that I directly do 
anything to the LP, I just create a new probing node, change bounds, 
solve the probing LP, backtrack, rinse and repeat. The watchpoint on the 
stats did not directly reveal anything to me other than that the 
lp->validsollp was not update in some cases. I don't know why, but it 
seems this was the problem: if the timing was 
SCIP_PROPTIMING_AFTERLPLOOP, i do two different probing tests: so the LP 
is put into probing mode, probing is done, probing mode is ended, then 
probing mode is immediately entered again, probing is done, probing is 
ended. It seems that during the second round of probing, the 
lp->validsollp was not properly updated for whatever reason. I have now 
moved the SCIPstartProbing and SCIPendProbing so that they are only 
called once per propagation call and now i do not have the error anymore.

Thank you for the input!
All the best
Alex

On 19.10.23 14:18, Marc Pfetsch wrote:
>
>
> Hi Alex,
>
> can you please check whether your propagation method terminates the 
> probing mode correctly (SCIPendProbing)? It also might be that you 
> call functions that disturb the LP status somehow.
>
> If the problem is not immediate from your code, you could run your 
> code in a debugger and add a watchpoint on lp->validsollp and 
> stat->lpcount and see which function changes it. This might help to 
> track the problem down.
>
> Best
>
> Marc
>
>
>
>
> On 19/10/2023 13:37, Alexander Helber wrote:
>> Dear SCIP community,
>>
>> I am working on a Benders Decomposition where I also implement a 
>> propagator that tries to fix some variables by solving probing LPs. 
>> For many instances this works without problem but sometimes, the 
>> assertion `assert(lp->validsollp == stat->lpcount);` of the function 
>> SCIPlpRemoveRedundantRows in line 15956 of `lp.c` is triggered. This 
>> happens after my propagator was called, when SCIP resumes solving the 
>> current node LP, but not every time. It does not seem to indicate any 
>> big problems, as I seem to get correct solutions when I ignore the 
>> assertion. If I do not use my propagator, the error does not seem to 
>> occur.
>>
>> In any case, I wonder if someone has an idea what is going wrong and 
>> if it may have negative consequences.
>>
>> All the best,
>> Alex
>>
>> -- 
>> Alexander Helber
>> Research and Teaching Assistant
>>
>> Chair of Operations Research
>> RWTH Aachen University
>> Kackertstrasse 7
>> 52072 Aachen
>> Germany
>> Web: or.rwth-aachen.de
>> Mail:helber at or.rwth-aachen.de
>>
>>
>> _______________________________________________
>> Scip mailing list
>> Scip at zib.de
>> https://listserv.zib.de/mailman/listinfo/scip
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> https://listserv.zib.de/mailman/listinfo/scip

-- 
Alexander Helber
Research and Teaching Assistant

Chair of Operations Research
RWTH Aachen University
Kackertstrasse 7
52072 Aachen
Germany
Web: or.rwth-aachen.de
Mail:helber at or.rwth-aachen.de
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.zib.de/pipermail/scip/attachments/20231019/dc4926da/attachment.html>


More information about the Scip mailing list