[Scip] Ensuring a presolver runs last

Gregor Hendel hendel at zib.de
Thu Jan 27 18:41:52 MET 2011


Am 27.01.2011 17:44, schrieb Martin Bergner:

Hi Martin,

have you already tried to implement your data collection in the
presolexitpre-callback within your presolver-plugin? This callback is
supposed to be called after all presolvers have finished and hence
you should get the data you want.

Best, gregor
> Hi all,
>
> I want to ensure that the presolver I use runs as the "last" presolver.
> The reason for this is that it is extremely expensive and I want to
> profit from SCIP's other presolvers. I thought I can achieve that by
> giving it an extremely low priority (lower then any of the presolvers
> included in scip) and setting PRESOL_DELAY to TRUE in order that it gets
> delayed if other presolver found reductions. 
>
> However, I discovered that SCIP runs other presolver after my presolver
> has run. This is not what I want, since my presolver actually doesn't do
> anything, it justs collects information. The collected information is
> useless once SCIP performs some kind of presolving and I would have to
> do the rather expensive collection again.
>
> It doesn't matter whether I return SCIP_DIDNOTFIND or SCIP_SUCCESS,
> whether I set presolving/maxrounds = 1. SCIP always runs 2 rounds and my
> presolver is not the last. What did I forget? 
>
> Can I at least find out that SCIP wants to do something after my
> presolver so that I can delay it by myself? I need to be sure however,
> that SCIP really runs my presolver again. On most of the instances, this
> behaviour does not occur, but there are some where it does. It has been
> present with SCIP 1.2.* as well and I'm currently using 2.0.1.
>
> Regards,
> Martin
>
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> http://listserv.zib.de/mailman/listinfo/scip



More information about the Scip mailing list