[SCIP] Relaxation handler and concurrent solver

Marcus Daniels marcus at snoutfarm.com
Tue Dec 31 21:07:26 CET 2019


Hi,

I wrote:

"Is there a way to activate relaxations like scip/examples/Relaxator/src/relax_nlp.c during a concurrent solve, or when using parascip?  It works fine for a serial optimization, but seems to be ignored otherwise."

I found one way to do it is to make the call on the last line (and pulling the Relax NLP into the main code) in the file concsolver_scip.c.   Something similar would be needed in UG.

   /* create the concurrent solver's SCIP instance and set up the problem */
   SCIP_CALL( SCIPcreate(&data->solverscip) );
   SCIP_CALL( SCIPhashmapCreate(&varmapfw, SCIPblkmem(data->solverscip), data->nvars) );
   SCIP_CALL( SCIPcopy(scip, data->solverscip, varmapfw, NULL, SCIPconcsolverGetName(concsolver), TRUE, FALSE, FALSE, &valid) );
   assert(valid);
   SCIPincludeRelaxNlp(data->solverscip);

A general way to do it is to make that call in a copy routine in that relax_nlp.c.  However, that has the problem that sub-SCIPs (e.g. heuristics) will invoke the relaxation, which can be very expensive.

Marcus

________________________________
From: Marcus Daniels
Sent: Saturday, December 28, 2019 6:31 PM
To: scip at zib.de <scip at zib.de>
Subject: Relaxation handler and concurrent solver

Hello,

Is there a way to activate relaxations like scip/examples/Relaxator/src/relax_nlp.c during a concurrent solve, or when using parascip?  It works fine for a serial optimization, but seems to be ignored otherwise.

Thanks,

Marcus Daniels
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.zib.de/pipermail/scip/attachments/20191231/f16b33c3/attachment.html>


More information about the Scip mailing list