Gurobi Optimizer is designed to be deterministic. You always get the same results from the same inputs (model and parameters) on the same computer with the same Gurobi version. Gurobi Optimizer is also deterministic for parallel optimization: you always get the same results with multiple threads. However, if you change any inputs, including small changes like:
- Parameter values
- Rounding of coefficients
- Order of variables or constraints
Then you may get different results, even if everything else remains the same.
Gurobi Optimizer may not be deterministic with time dependent behavior such as
- the TimeLimit parameter, where the timing can vary with computer workload.
- concurrent optimization (Method=3) and concurrent MIP (ConcurrentMIP > 1), which are also time dependent.
- Why does Gurobi perform differently on different machines?
- What is the model fingerprint in the log files?