Hello,
I was having trouble with infeasibility of some/most of my models (solving a series of LP in rapid succession for a simulation). Out of my colleagues, I was the only one experiencing this, even though we use exactly the same code for building and using the models. We might use different gurobi versions though, as I recently upgraded to Gurobi 8.0.1(Java, win64).
On detailed analysis with IIS, model.write() and adapting feasibilityTol I discovered a couple of things:
--> Since my colleague’s model is exactly the same and is feasible, apparently the new Gurobi does not actually apply its default feasibilityTol while the old version did.
Does this make sense? Are there multiple feasibilityTol-values in use after Gurobi 6.5.2?
For completeness here is an example of the specs of an infeasible attempt as printed by gurobi:
Gurobi 8.0.1 (win64, Java) logging started 08/03/18 14:32:26
Academic license - for non-commercial use only
Optimize a model with 5169 rows, 2520 columns and 10080 nonzeros
Coefficient statistics:
Matrix range [1e+00, 7e+03]
Objective range [8e+03, 2e+05]
Bounds range [0e+00, 0e+00]
RHS range [1e-01, 1e+05]
Presolve removed 5082 rows and 1750 columns
Presolve time: 0.00s
Presolved: 87 rows, 770 columns, 1512 nonzeros
Iteration Objective Primal Inf. Dual Inf. Time
0 9.7192584e+06 6.665029e+03 0.000000e+00 0s
Extra 24 simplex iterations after uncrush
Solved in 142 iterations and 0.02 seconds
Infeasible model
0 -1.7774525e+34 1.333352e+32 1.777453e+04 0s
IIS computed: 25 constraints and 0 bounds
IIS runtime: 0.02 seconds
Thanks and best regards
Christian