Skip to main content

Slow MIP Solving, how to speed up?

Answered

Comments

2 comments

  • Michel Soares
    Thought Leader

    Hi Nima,

    From the logs, looking only at possible parameter changes, I would suggest trying Presolve = 2 and MIPFocus = 1.

    Also, updating your Gurobi to 11.0 might improve your results as well.

    0
  • Maliheh Aramon
    Gurobi Staff Gurobi Staff

    Hi Nima, 

    Is there something to do?

    Experimenting with parameters Presolve=2 (to reduce the model size and tighten it further, if possible) and MIPFocus=1 (to focus on finding a feasible solution), as mentioned by Michel, are good parameters to experiment with. 

    The logs show that reaching an incumbent is the main issue.

    • You might want to experiment with the NoRelHeurTime parameter which runs the no-relaxation heuristic before solving the root relaxation to find a high quality solution. 
    • It also makes sense to set the Cuts parameter to 0 to speed up the node throughput. 
    • You might also want to experiment with setting the NodeMethod parameter to 2 because the logs show that the node LP relaxation takes a long time to finish. 

     And the machine with much less CPU/RAM solved the problem faster than this machine which didnt make sense to me, how could this be?

    Having more cores and RAM in disposal does not necessarily improve the performance. It is highly problem dependent. When comparing the performance of two different hardware on a model, it is important to use the exact same parameter values and Gurobi version. Furthermore, since Gurobi Optimizer's performance, like any other numerical solver, is subject to performance variability, it is important to run the Optimizer multiple times with different values for the random Seed parameter and do the comparison using statistics such as average runtime as opposed to relying on one data point.

    The articles below are also relevant to your question:

    Best regards,

    Maliheh

    0

Please sign in to leave a comment.