Skip to main content

Using DualReductions completely halts optimization. What can cause this?

Answered

Comments

3 comments

  • David Torres Sanchez
    Gurobi Staff Gurobi Staff

    Hi Nicolai,

    DualReductions affects presolve.
    You are also setting different presolve parameters (Presolve + PreSparsify).
    I would suggest removing these parameters as well as DualReductions, the model is smaller when this is 1 (default).

    Cheers, 
    David

    1
  • Nicolai Schjørring
    Gurobi-versary
    First Comment
    First Question

    Hi David!

    Thanks for the reply! I have been doing a lot of testing, getting an instance agnostic warm start code done, and a few of those settings I simply forgot I had set. My code is still very rough. Simply removing the 3 settings you mentioned, allows the solver to narrow the gap considerably and fast.

    I am curious however, as to why these settings would cause this (if you have the time). I have some instances with 140 million variables (most of which are binary), and while I have access to a HPC cluster, reducing the footprint of the program is desirable.

    Kind regards,

    Nicolai

    0
  • David Torres Sanchez
    Gurobi Staff Gurobi Staff

    Enabling DualReductions (which is the default), is able to use dual information to make further presolve reductions. Setting this to 1 therefore results in longer time and smaller presolved model (more constraints + variables removed, sorry got mixed up before).

    Setting PreSparsify to 2 will aim to reduce the number of non-zeros, this can be damaging for some models, the default setting will choose automatically, and this typically works quite well.

    Additionally, you are setting Presolve to 1, which again limits the effort spent in presolve. Again, this may not be beneficial in all cases.

    More presolve, will typically mean longer time during that stage, however, the resulting model will be smaller, and so the resource usage will be reduced.

    Cheers,
    David

    0

Please sign in to leave a comment.