[SCIP] separating while counting feasible solutions
Ambros Gleixner
gleixner at zib.de
Thu May 17 10:46:24 CEST 2018
Hi James and Pierre,
Just a short add-on: Using separation while counting should be fine.
There are currently no separation routines in SCIP that cut off feasible
solutions. (The only ones might be the separation routines in
polyhedral symmetry handling, but symmetry handling is turned off
independently.)
This line of code is from about 2011, so we don't remember everything,
but we guess that the decision to turn of separation in counting was
based on performance arguments, Pierre's point 1). But SCIP has changed
significantly since then, and your example shows that it can be beneficial.
We will discuss internally whether to change this behavior in the
future, but for now your solution looks good.
Best,
Ambros
Am 17.05.2018 um 03:39 schrieb Pierre Le Bodic:
> Hi James,
>
> My understanding as a scip user is that when switching to counting &
> collecting, you're explicitly enumerating all solutions. Therefore,
> separation is turned off probably because 1) it would probably slow down
> the enumeration without altering the output, and 2) if needed, a
> provably optimal solution will be available once the explicit
> enumeration is complete.
>
> Since what you would like to achieve is different than enumeration, it
> may pay off to play with some of the parameters in limits/, in
> particular limits/objective, whether in solve or count mode. I hope this
> helps!
>
> Kind regards,
> Pierre
>
> On 15 May 2018 at 18:34, James Cussens <james.cussens at york.ac.uk
> <mailto:james.cussens at york.ac.uk>> wrote:
>
> I have noticed that when SCIP is counting (and possibly collecting)
> feasible solutions, separation is turned off.
>
> What is the rationale for this?
>
> In my own SCIP project having no separation led to very poor
> performance when collecting feasible solutions with objective value
> better than a given value. (I just want reasonably 'good' feasible
> solutions.)
>
> I fixed the problem as follows:
>
> SCIP_CALL( SCIPsetParamsCountsols(scip) );
> /* put separating back on! */
> SCIP_CALL( SCIPparamsetSetSeparating(scip->set->paramset,
> scip->set, scip->messagehdlr, SCIP_PARAMSETTING_DEFAULT, TRUE) );
>
> but perhaps keeping separation leads to some other problem I don't
> realise.
>
> Any advice on this issue gratefully received.
>
> James
>
> --
> James Cussens
> Dept of Computer Science &
> York Centre for Complex Systems Analysis
> Room 326, The Hub, Deramore Lane Tel +44 (0)1904 325371
> University of York Fax +44
> (0)1904 500159
> York YO10 5GE, UK http://www.cs.york.ac.uk/~jc
> http://www.york.ac.uk/docs/disclaimer/email.htm
> <http://www.york.ac.uk/docs/disclaimer/email.htm>
>
> _______________________________________________
> Scip mailing list
> Scip at zib.de <mailto:Scip at zib.de>
> https://listserv.zib.de/mailman/listinfo/scip
> <https://listserv.zib.de/mailman/listinfo/scip>
>
>
>
>
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> https://listserv.zib.de/mailman/listinfo/scip
>
--
Ambros Gleixner, Research Group Mathematical Optimization Methods at
Zuse Institute Berlin, http://www.zib.de/gleixner
More information about the Scip
mailing list