Being able to manually set a best bound before the optimization starts
AnsweredHello,
Gurobi enables users to manually start an optimization process with a given solution, which can save a lot of time as the best objective starts better than it would have started otherwise. Why would it not be possible to do the exact same with the best bound if one knows a good value for it ?
Let me illustrate with an example : I've been doing tests with the travelling salesman problem, using the Danzig-Fulkerson-Johnson formulation on which I iteratelively added subtour elimination constraints until I found the best solution with no subtour (this is, I believe, the best known way to solve TSP through MIP).
After consulting the gurobi logs, I noticed that a significant part of the computations was just about getting the best bound value from its LP relaxation initializated value to the faster found best objective. Yet, after each solution with a subtour obtained, I know for sure that the best "actual" solution will have a higher objective value than this "wrong" solution, so I could retrieve the value of the subtour-including solution and use it as a best bound for the next search to start with a lower gap. Being unable to do this - apparently simple - operation is very frustrative.
Note : One could just brutally add an inequality constraint on the objective expression of the model, but it does not necessarily reduce the computation time, and in my case it increased it.
If this feature is actually already present, then I apologize, and I would really like to know where to find it since my searches on the web and in the reference manual were not fruitful.
Thank you very much !
Anthony
-
Official comment
This post is more than three years old. Some information may not be up to date. For current information, please check the Gurobi Documentation or Knowledge Base. If you need more help, please create a new post in the community forum. Or why not try our AI Gurobot?. -
Hi Anthony,
It is currently not possible to pass a lower bound (or in case of maximization an upper bound) to Gurobi. I agree that at a first glance passing a lower bound to the solver seems like a good thing. Please have a look at this post and this one for a detailed explanation of why this may not be a good idea.
Best regards,
Jaromił0 -
Hi Jaromił,
Thank you very much for your answer, and especially for the links, which are very instructive.
Best regards,
Anthony
0
Post is closed for comments.
Comments
3 comments