[SCIP] separating while counting feasible solutions

Gerald Gamrath gamrath at zib.de
Thu May 17 11:05:24 CEST 2018


Hello together,

just another short add-on: unfortunately, we missed the impact of 
symmetry handling on counting in the last release, so that you should 
deactivate symmetry by hand (misc/usesymmetry = 0) when counting 
solutions. In the next release, this will be done automatically.

On the other hand, if you are interested in different solutions rather 
than different permutations of essentially the same solution, you could 
try to keep symmetry handling activated to speed up the counting process 
for this limited set of solutions (if there is any symmetry present in 
your problem).

Best,
Gerald

On 17.05.2018 10:46, Ambros Gleixner wrote:
> 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
>>
>



More information about the Scip mailing list