Skip to main content

Turning off presolve improves efficiency immensly

Answered

Comments

5 comments

  • Official comment
    Simranjit Kaur
    Gurobi Staff Gurobi Staff
    This post is more than three years old. Some information may not be up to date. For current information, please check the Gurobi Documentation or Knowledge Base. If you need more help, please create a new post in the community forum. Or why not try our AI Gurobot?.
  • Greg Glockner
    Gurobi Staff Gurobi Staff

    To understand what's happening, can you post logs from your tests?

    0
  • Bruno Oliveira
    Gurobi-versary
    First Comment
    First Question

    Thank you for your availability.

    In the link I provide the logs (for 600s runs) for test using pure ILP and MILP versions of the model with and without presolve. The size of the logs was to large just to paste them directly in the comment box.

    https://drive.google.com/open?id=1kRWB1dHf8MHb_y66QgDr8urnq_3jyJ40 

    The first log corresponds to the ILP model without presolve; the second corresponds to the MILP model without presolve; the third corresponds to the ILP model with presolve and; the fourth log corresponds to the MILP model with presolve.

    As you may see, the use of presolve has a negative impact on solving the problem.

    I hope that this sufficient. I'm available for any further clarifications if needed.

    Thank you very much for your time. Any insights you may provide me will be very helpful.

    0
  • Greg Glockner
    Gurobi Staff Gurobi Staff

    Thanks for the logs. Looks like your runs with default presolve need to be more aggressive at finding an integer feasible solution. Try setting ZeroObjNodes to something like 500 or 1000; same for MinRelNodes. You should also try adding MIPFocus=1.

    0
  • Bruno Oliveira
    Gurobi-versary
    First Comment
    First Question

    Thank you very much for your feedback. I really appreciate it.

    Since I wish to understand and describe the model in its original form (the reason why I remove presolve), I need to run the model with no changes in the optimizer's parameters. Nonetheless, I've tried your suggestion and the MIPFocus = 1 helped obtaining a feasible solution, but the performance is still far from the 'no presolve' alternative.

    I'm unable to understand why the large difference in performance, when the objective of presolve would be, at least in my understanding, to help improving the performance by removing "redundant" rows and columns. For me, it is very counter-intuitive.

    Thank you once more for your time. If you have any other insights or ideas of what may be the reason for these results, they would be very much appreciated.

    0

Post is closed for comments.