Skip to main content

How to improve the BestBound in my Gurobi model?

Answered

Comments

1 comment

  • Jaromił Najman
    Gurobi Staff Gurobi Staff

    Hi Lucia,

    There are many ways to try to improve the performance for your model. First of all, please try the latest Gurobi version 9.5.1.

    You are setting the NoRelHeurTime parameter to \(1\) which allows for only exactly \(1\) second of the no relaxation heuristic. You should try giving it some more time, e.g., \(120\) seconds or more.

    You are setting the parameter StartNodeLimit twice. I would try leaving it at its default value and only experiment with it if Gurobi is not able to generate a feasible solution out of your MIP start.

    Barrier is the winning algorithm for the root relaxation, thus you could set Method=2 to gain some more seconds.

    I also noticed that you are relaxing the FeasibilityTol and BarConvTol quite a bit. It is not recommended to loosen these tolerance by that much unless you have a really good reason for this, e.g., the model accuracy and/or numerics are really bad.

    The log also shows that you are use callbacks. Do you use them to add lazy constraints or user cuts? If yes, is the number of your lazy constraints/user cuts finite such that you could try adding them to the model from start? It often helps to add all lazy constraints/user cuts to the model from start, because then Gurobi can use these constraints in its presolving step.

    Do you have an idea whether the best bound has to be improved or rather a better feasible solution has to be found? If you have a guess about the optimal value of this model, you could try experimenting with the MIPFocus parameter.

    You say smaller instances have been solved successfully. You could try using Gurobi's tuning tool to find suitable parameters for the smaller instances and check whether these also help for the large one.

    Best regards, 
    Jaromił

    0

Please sign in to leave a comment.