Setting stop criterion to maximum one solution changes the behaviour of branch and bound
Hello,
I have a question regarding the behaviour of the branch and bound procedure when solving a large MIP model.
When I establish my stopping criterion as a given maximum time, the branch and bound procedure log shows the same behaviour as when I set the stopping criterion to a maximum number of found solutions = 2 or higher, ex. model.set(GRB.IntParam.solutionLimit,2).
But, when I set the stopping criterion to max solution = 1, the behaviour of the branch and bound is no longer the same.
This is quite strange to me, as that is the only change I'm making.
I appreciate any clarification on what may be happening.
Thank you very much
-
This is not unexpected, Bruno. Note if the solution limit is set to 1, the emphasis is really on funding at least one feasible solution, and Gurobi takes that into account.
Hope this helps.
0 -
Hello,
Thank you for the reply. But I'm still not sure of what me be happening.
Do you mean that Gurobi identifies that should stop after finding a single solution and changes the search strategy on its own?
If I wanted to change the search strategy I would change the MIPFocus for example,
I'm wondering if there is a way for Gurobi to keep its usual search strategy but stop at the first found solution.Thank you.
0 -
> Do you mean that Gurobi identifies that should stop after finding a single solution and changes the search strategy on its own?
Yes, Gurobi will take into account the solution limit settings.
If you want to follow same algorithmic path as before, without this setting taking effect, you may want to implement a custom termination call-back; please see more about call-backs in our doc online.
Hope this helps.
0 -
This behavior is non-intuitive and needs to be documented. IMHO, the SolutionLimit should only affect when the optimization stops, not the path of the optimizer. If the latter is the case, then please document it.
0
Please sign in to leave a comment.
Comments
4 comments