Setting IntegralityFocus=1 accelerates solution?
AnsweredI am solving a series of linear integer programming problems with gurobipy. The solutions I originally got weren't exactly integral, so I set the IntegralityFocus parameter to be 1. Now I get integral solutions, but there was also an additional nice surprise: gurobi solves the problems about 90% faster now. While this is a pleasant surprise, I would like to look this gift horse in the mouth: I am trying to understand how this acceleration can happen, even in theory. Thank you!
-
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 try Gurobot, our chatbot interface offering instant, expert-level support. -
Hi,
Sometimes even small changes in the solution path (which is the case when you change parameter settings) can have huge effects on the performance, this is called "solver variability".
In the case of IntegralityFocus, Gurobi performs additional more detailed feasibility checks of incumbent solutions, so maybe some solutions have not been declared as feasible before because of numerical issues.
Additionally, Gurobi does some additional branching steps that could be helpful in your case.Best regards,
Mario0
Post is closed for comments.
Comments
2 comments