Update parameters if MIP start does not produce a solution
AnsweredI am working on a large MILP. To improve the solve time, I am providing the solver with a MIP Start partial initial solution. As this initial solution is heuristic, it does not always produce an incumbent solution.
Is there a way to change the solver's parameters if the MIP Start does not produce an incumbent solution (e.g. change MIP Focus from 3 to 1 or use the MIP start values as variable hints)?
Thank you!
-
Hello Marlyse,
Thank you for reaching out to the community forum.
We do have some questions:
- Have you seen this knowledge base article: https://support.gurobi.com/hc/en-us/articles/15185996954897-What-does-User-MIP-start-did-not-produce-a-new-incumbent-solution-mean? It may help you clear how to interpret the logs when using a MIP start.
- Have you also researched the StartNodeLimit https://docs.gurobi.com/projects/optimizer/en/current/reference/parameters.html#startnodelimit parameter? Given that you sometimes do see the utility of the partial MIP start from your heuristic, you could experiment by adjusting this parameter.
To your question: Is there a way to change the solver's parameters if the MIP Start does not produce an incumbent solution (e.g. change MIP Focus from 3 to 1 or use the MIP start values as variable hints)?
One way to consider this is to use the Gurobi callback feature. According to this, you may leverage the "MESSAGE" callback code to initiate the callback, and check whenever the log line equals "User MIP start did not produce a new incumbent solution". If true, then your code could terminate the model. Once that happens, your main application code process could set new parameters, and finally restart the model optimization again within the same environment.
Warm thanks,
Erik H.
0 -
Thank you! This is exactly what I was looking for.
0
Please sign in to leave a comment.
Comments
2 comments