MIP start
Answeredhello,
I have a program for a MILP problem right now. I use gurobi to find the optimal solution of the model. The process took about 44s, then I brought the optimal solution into the program as an initial value, and found that after bringing in the initial value, the solution took even longer, 51s. Shouldn't the solution be faster after substituting the initial value to reduce the search range? In the model with initial values, the solution log already shows that gurobi accepts the initial values and has completed the solution: User MIP start produced solution with objective 406548 (0.01s)
Loaded user MIP start with objective 406548. can you please answer this question for me?
-
By providing a MIP start, the optimization path changes which in some cases can lead to a performance degradation instead of an improvement. You can see the different optimization paths in the differences between the B&B logs.
You can think of it this way: In the first case Gurobi took optimization path A which leads to pruning of a relatively large part of the tree. In the second case Gurobi has some given feasible point information which leads to optimization path B. On this path the large part of the tree cannot be pruned quickly ultimately leading to a longer runtime.So in most cases providing a good (or even an optimal) feasible point leads to performance improvements. However, there are exceptions where this leads to performance degradation, and it looks like you ran into one.
You could try running both cases with multiple values of the Seed parameter to check how vulnerable to variability your model is. The Knowledge Base article Why does Gurobi perform differently on different machines? speaks about different machines. The same argumentation can be applied to different parameters or provided MIP starts.
Best regards,
Jaromił1 -
Thank you very much for the help you provided and successfully solved my confusion.
0
Please sign in to leave a comment.
Comments
2 comments