[SCIP] Performance affected by order of variable/constraint creation?
Pierre Le Bodic
pierre.lebodic at monash.edu
Thu Jul 4 01:32:10 CEST 2019
Hi Rich,
I believe that what your are observing is what we refer to as "performance
variability", a common phenomenon in solvers. See for instance this
discussion <http://listserv.zib.de/pipermail/scip/2013-November/001736.html>,
as well as answers and references therein. See also this more recent survey
<https://doi.org/10.1287/educ.2013.0112>.
For your particular problem, I would first try to use the function
SCIPchgVarBranchPriority
<https://scip.zib.de/doc/html/group__PublicVariableMethods.php#ga274db1c9e91d873799f6484e45a8d6bc>to
give the PWD-related variables a higher priority, thus ensuring that these
are branched on before any other, independently of the creation order.
Kind regards
Pierre
On Thu, 4 Jul 2019 at 05:14, Levinson, Richard J. (ARC-TI)[SGT, INC] <
richard.j.levinson at nasa.gov> wrote:
> Hello SCIP team,
>
>
> I have a CIP model where I've noticed a big performance difference when I
> swap the order in which I create/add variables and constraints to the SCIP
> model. I first noticed this using my C-API code but have now reproduced it
> using the interactive shell.
>
>
> This is a job scheduling app where I have four types of jobs SAB, PPA, PWD
> and EXP. Performance varies greatly depending on the order in which I
> create the variables and constraints for these jobs.
>
>
>
> - When I create the PWD-related variables and constraints before the
> EXP variables, then it finds an optimal solution in 0.8 seconds and
> converges to prove optimality after 20 seconds.
>
> - But when I create the EXP-related variables and constraints before the
> PWD variables, then it takes 651 seconds to find the optimal solution and
> takes over 100 seconds to find the first feasible solution.
>
> - In both cases, the optimal solution is exactly the same.
>
> - In a different case, when I create SAB and PPA model before PWD and
> EXP, then it also takes about 100 secs to find the optimal solution and 525
> seconds to converge and prove optimality.
>
>
> I've attached two CIP input files where the only difference is the
> sequence of the variables and constraints. The variables and constraints
> are the same but in a different order.
>
> Also attached the SCIP output logs from running with each of the two
> attached CIP in the interactive shell.
>
>
> Attached files:
>
>
> - pwdFirst.cip = PWD vars and constraints created first (this is the
> fast case)
> - expFirst.cip = EXP vars and constraints created first (this is
> the slow case)
>
>
>
> - pwdFirstSol.rtf = SCIP output for the PWD first case (fast result)
>
>
> - expFirstSol.rtf = SCIP output for the EXP first case (slow result)
>
>
>
> Can you please explain what is causing this order dependency, and how I
> might be able to eliminate or control it via SCIP parameters? For example,
> can I use Variable Branching options to override these ordering effects?
> I'd rather the performance not depend on the order of my C++ code
> statements.
>
>
> Thank you,
>
> Rich Levinson
>
>
>
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> https://listserv.zib.de/mailman/listinfo/scip
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.zib.de/pipermail/scip/attachments/20190704/8c97784b/attachment.html>
More information about the Scip
mailing list