MIP solvers such as Gurobi Optimizer solve integer programs via a series of linear programming relaxations. A solution is deemed integer if all integer variables are within a tolerance value (IntFeasTol) of an integer solution. The default value of IntFeasTol is 1e-5, so 1.000000465 would be considered an integer solution. Note that in some cases, tightening this tolerance too much can have a significant impact on the solve time.
Gurobi Optimizer does not provide a rounding feature because, in many models, rounding to an exact integer value can create problems, such as making the solution infeasible. Our recommendation is that you do any necessary rounding in post-processing once the optimization run is complete.
A special case
Starting with Gurobi 9.1, for the special case of trickle flow involving integrality violations within tolerance in big-M constraints, setting the IntegralityFocus parameter to 1 will enable Gurobi to check the rounded solution for feasibility and perform additional branching steps to try to remove the integrality violation without compromising feasibility.
Please sign in to leave a comment.