Gurobi lazy constraint issue

Whilst doing that, I think I figured it out. It’s a numerical precision issue.

To make it simple, some_condition_on(vars) boils down to a geq expression g(x) >= N for some g and N.

Running it single-threaded, it happens that at that node deep in the tree, and for N=10, the retrieved value in the callback is (literally) g(x) = 9.999999999999999.

That’s why the condition does not hold and the program exits. This is not encountered for any (n>1)-threaded runs as mentioned previously.

My model is a MIP with cont. and 0-1 vars so I believe numerical issues are bound to happen… but is this normal behavior with regards to the number of threads?

Thank you,

1 Like