[SCIP] Error in presolving after restart when doing branch-and-price?

Franzen, Christian franzen at or.rwth-aachen.de
Mon Jan 4 11:38:44 CET 2021


Thanks Gregor,


Including the event handler fixed the issue.


Cheers

Christian


________________________________
Von: Hendel, Gregor <hendel at zib.de>
Gesendet: Sonntag, 3. Januar 2021 22:02
An: Franzen, Christian; scip at zib.de
Betreff: AW: [SCIP] Error in presolving after restart when doing branch-and-price?


Hi Christian,


You have discovered a bug: the cons_components constraint should not blindly set this parameter, but check first if it exists.


The parameter "limits/softtime" is not a core parameter, but provided by the plugin event_softtimelimit.c/h. If this plugin is missing, the components constraint handler cannot execute the call in line 709 (in my current SCIP)

SCIP_CALL( SCIPsetRealParam(subscip, "limits/softtime", softtimelimit) );


I assume that you do not call SCIPincludeDefaultPlugins() when you set up your SCIP? You can hotfix this issue temporarily by

a) including only the above event handler into your scip: SCIPincludeEventHdlrSofttimelimit(scip) (don't forget the header event_softtimelimit.h)

b) including all default plugins using SCIPincludeDefaultPlugins(scip)

c) deleting the line above from cons_components.c


Happy limiting of soft time,

Gregor



________________________________
Von: Scip <scip-bounces at zib.de> im Auftrag von Franzen, Christian <franzen at or.rwth-aachen.de>
Gesendet: Freitag, 1. Januar 2021 22:18:29
An: scip at zib.de
Betreff: [SCIP] Error in presolving after restart when doing branch-and-price?


Hi SCIP Team.


At the moment I am experimenting with my branch-and-price-and-cut solver and I try to stop pricing when the root node LP relaxation is solved to optimality. I wondered if SCIP is able to just use the current (integer) reduced master problem and execute all that fancy propagators, separators and heuristics to solve it without pricing any further columns.


The implementation of my pricer just looks at the depth of the current node and deactivates my pricer as soon as depth is >0. Of course I set the modifiable flag to false for all constraints. In the logs I see that propagators and separators are doing their job pretty well. However, as soon as I am doing a restart to make all the presolvers run, I get an error message stating that


cons components found 3 undirected components at node 1, depth 0 (0)
[paramset.c:1826] ERROR: parameter <limits/softtime> unknown
[set.c:3061] ERROR: Error <-12> in function call
[scip_param.c:307] ERROR: Error <-12> in function call
[cons_components.c:678] ERROR: Error <-12> in function call
[cons_components.c:760] ERROR: Error <-12> in function call
[cons_components.c:2449] ERROR: Error <-12> in function call
[cons.c:4071] ERROR: Error <-12> in function call
[scip_solve.c:1008] ERROR: Error <-12> in function call
[scip_solve.c:1214] ERROR: Error <-12> in function call
[scip_solve.c:1214] ERROR: Error <-12> in function call
[scip_solve.c:1214] ERROR: Error <-12> in function call
[scip_solve.c:1378] ERROR: Error <-12> in function call
[scip_solve.c:2398] ERROR: Error <-12> in function call
[scip_solve.c:2620] ERROR: Error <-12> in function call


The independent components constraint handler is just trying to read the parameter "limits/softtime". I am not sure why that could stop working from the changes that I have made to my pricer. Any idea what I am doing wrong here? I attach the full SCIP log of an example run.


Regards

Christian

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.zib.de/pipermail/scip/attachments/20210104/d5853dcd/attachment.html>


More information about the Scip mailing list