[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