[SCIP] calling <SCIPcutoffNode> in presolving stage

James Cussens james.cussens at bristol.ac.uk
Mon Jun 12 09:38:12 CEST 2023


Hi Stefan,

Yes, thanks that works. I think this issue is sorted now.

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/>.
________________________________
From: Stefan Vigerske <svigerske at gams.com>
Sent: 12 June 2023 08:11
To: James Cussens <james.cussens at bristol.ac.uk>; scip at zib.de <scip at zib.de>
Subject: Re: [SCIP] calling <SCIPcutoffNode> in presolving stage

Hi,

ok, sorry, I was lazy. Attached a new one that should also builds with
NDEBUG.

Stefan

On 11/06/2023 16:45, James Cussens wrote:
> Thanks Marc and Stefan for your help, and thanks Stefan for the patch.
>
> In the patch I think there may be a problem with the change to conflict.c since I get the following compilation error.
>
> src/scip/conflict.c: In function ‘detectImpliedBounds’:
> src/scip/conflict.c:2444:21: warning: implicit declaration of function ‘SCIPcutoffNode’; did you mean ‘SCIPvisualCutoffNode’? [-Wimplicit-function-declaration]
>   2444 |          SCIP_CALL( SCIPcutoffNode(set->scip, SCIPgetRootNode(set->scip)) );
>        |                     ^~~~~~~~~~~~~~
> src/scip/def.h:381:44: note: in definition of macro ‘SCIP_CALL’
>    381 |                           if( (_restat_ = (x)) != SCIP_OKAY )                                                 \
>        |                                            ^
> src/scip/conflict.c:2444:47: warning: implicit declaration of function ‘SCIPgetRootNode’; did you mean ‘SCIPtreeGetRootNode’? [-Wimplicit-function-declaration]
>   2444 |          SCIP_CALL( SCIPcutoffNode(set->scip, SCIPgetRootNode(set->scip)) );
>        |                                               ^~~~~~~~~~~~~~~
> src/scip/def.h:381:44: note: in definition of macro ‘SCIP_CALL’
>    381 |                           if( (_restat_ = (x)) != SCIP_OKAY )                                                 \
>        |                                            ^
> It seems that in other places in conflict.c different functions are used to signal global infeasibility.
>
> 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/>.
> ________________________________
> From: Stefan Vigerske <svigerske at gams.com>
> Sent: 11 June 2023 12:27
> To: James Cussens <james.cussens at bristol.ac.uk>; scip at zib.de <scip at zib.de>
> Subject: Re: [SCIP] calling <SCIPcutoffNode> in presolving stage
>
> Hi,
>
> looks like a bug to me.
> The attached patch should help. It removes the call of SCIPcutoffNode in
> cons_logicor, but should still signal infeasibility to the SCIP core.
>
> Stefan
>
> On 11/06/2023 11:47, James Cussens wrote:
>> Hi all,
>>
>> I'm getting the following problem when running in debug mode:
>>
>> [debug.c:2345] ERROR: cannot call method <SCIPcutoffNode> in presolving stage
>> [scip_tree.c:430] ERROR: Error <-8> in function call
>> [presolve.c:1312] ERROR: Error <-8> in function call
>> [cons_logicor.c:3287] ERROR: Error <-8> in function call
>> [cons_logicor.c:4689] ERROR: Error <-8> in function call
>> [cons.c:4063] ERROR: Error <-8> in function call
>> [scip_solve.c:997] ERROR: Error <-8> in function call
>> [scip_solve.c:1207] ERROR: Error <-8> in function call
>> [scip_solve.c:1207] ERROR: Error <-8> in function call
>> [scip_solve.c:1373] ERROR: Error <-8> in function call
>> [scip_solve.c:2484] ERROR: Error <-8> in function call
>> [scip_solve.c:2722] ERROR: Error <-8> in function call
>> [data_bnsl.c:1486] ERROR: Error <-8> in function call
>> [data_bnsl.c:2579] ERROR: Error <-8> in function call
>> [data_bnsl.c:3952] ERROR: Error <-8> in function call
>> [data_bnsl.c:4246] ERROR: Error <-8> in function call
>>
>> The problem seems to be that when global infeasibility is deduced in presolving, specifically via the function SCIPshrinkDisjunctiveVarSet
>> there is a call:
>>
>>      SCIP_CALL( SCIPcutoffNode(scip, SCIPgetRootNode(scip)) );
>>
>> but it seems that using SCIPcutoffNode in presolving is not allowed. Is this perhaps a bug? If so, is there a fix?
>>
>> Best wishes,
>>
>> 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/>.
>>
>>
>> _______________________________________________
>> 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/20230612/bb88a6a4/attachment.html>


More information about the Scip mailing list