Tuning amount of time spent with warm starts
AnsweredI'm trying to solve a difficult MIP using warm starts based on a model with extra constraints. Basically, I have an idea what some sums of variables in the full model may be. With these additional constraints, the Gurobi solves the model in a reasonable amount of time. However, when I delete the constraints and resolve, sometimes it spends hours/days in the phase prior to presolve where it is looking at MIP starts. Sometimes this phase is fruitful, and I'll see messages like
MIP start from previous solve produced solution with objective 550 (15.05s)
MIP start from previous solve produced solution with objective 540 (15.62s)
MIP start from previous solve produced solution with objective 340 (27.61s)
MIP start from previous solve produced solution with objective 320 (28.14s)
But sometimes it does not. Is there any way to tune how much time Gurobi spends in this phase? I've seen StartNodeLimit, but I don't have any idea what value to set it to.
When I checked the model's NumStart parameter after the first solve, it stays at 0, so it seems like I can't examine the start data that is contained in the model to trim it myself.
The model only has continuous variables but has SOS1 constraints, causing it to be a MIP model.

There is no way to explicitly limit the amount of time spent in this phase, but the StartNodeLimit parameter is indeed what you should be looking at. Its default value is 500 (the default value of SubMIPNodes); so you could experiment with smaller numbers than that. (E.g. start 250 and then further decrease/bisect depending on how it goes.)
You could also try shutting off MIP start processing entirely by setting StartNodeLimit to 2 since sometimes trying to complete partial MIP starts can take more time than it saves.
0
Please sign in to leave a comment.
Comments
1 comment