Fixed Issues in Gurobi Optimizer 12.0#

This page lists the issues fixed in Gurobi 12.0.0.

Fixed Issues in Gurobi 12.0.1#

  • Missing GRBloadenv and GRBemptyenv symbols in the C library have been restored

  • Fixed bug and numerical issue in domain propagation of LOGISTIC and TAN functions

  • Fixed bug in presolve that can lead to wrong objective value calculation

  • Fixed bug with incorrect SolCount attribute value when using the PoolGap parameter

  • Fixed bug in object oriented APIs with duplicate variable indices in the objective functions of multi-objective models

  • Fixed numerical issue with reporting a feasible solution to the user while the problem was already declared infeasible

  • Fixed rare uninitialized memory read when accessing the simplex basis, which may lead to non-deterministic behavior

  • Fixed performance bug in multi-objective solves when crushing an objective function into the presolved model space

  • Fixed issue in multi-objective solves that can lead to unexpected error code 20000

  • Fixed very rare segmentation fault when using node files

  • Fixed bug with nonlinear presolve reductions invalidating lazy constraints produced in the callback

  • Fixed bug in the tuning tool used with a WLS license

  • Fixed unexpected error 10005 after multi-objective solve

  • Fixed bug in simplex-internal reduced cost strengthening that can lead to wrong answers for MIP models

  • Use safer numerics in domain propagation of quadratic constraints to avoid numerical issues

  • Fixed issue where the MIPGap setting could lead to a path change in the MIP tree search

  • Fixed infinite loop in IIS algorithm resulting from numerical issues in a sub-system solve

  • Fixed behavior of GRBpresolvemodel and Model.presolve methods when a restart is triggered during presolve

  • Fixed numerical issue in domain propagation of linear constraints with very small coefficients that can lead to wrong answers

  • Fixed bug with missing error messages when model size exceeds license limits

  • Fixed issues in presolve with handling the DIVIDE operator in general nonlinear functions

  • Fixed numerical issue in mixing path cut separator that could lead to wrong answers

  • Fixed bug in implicitly handling lower bounds in cone constraints that can lead to sub-optimal termination for infeasible SOCPs

  • Fixed segmentation fault with using MIP starts on MINLP models

  • Fixed bug that leads to invocation of Model.cbStopOneMultiObj terminating multi-objective solves completely

  • Fixed bug in presolve for quadratic constraints that could lead to wrong answers for MIQCPs

  • Model.addConstr now raises an explicit exception for invalid syntax involving NL constraints

  • Fixed error message in gurobipy when trying to optimize again an asynchronously optimized model that has already been closed

  • Fixed bug in presolve for QUBO models and PoolSearchMode=2 that leads to not anymore finding all feasible solutions

  • Fixed bug in presolve with non-convex quadratic constraints being modeled as general nonlinear constraints always leading to non-PSD error even if non-convex constraints should be allowed

  • Fixed bug with ignoring resource parameter limits like Threads or MemLimit with multi-objective or concurrent environments

  • Fixed bug with ignoring lazy constraints from the callback if the callback calls Model.message.

  • Removed warning about big bounds that had been introduced by Gurobi during presolve

  • Fixed memory leak in barrier when presolve decided to explicitly dualize the model

  • Fixed potential segmentation fault with general nonlinear constraints containing plus and mult operators

  • Fixed numerical issue in Euclidean presolve reduction that could lead to wrong answers

  • Fixed constraint sense in gc_funcnonlinear example for MATLAB and R

  • Fixed numerical issue in the envelope calculation for SIN and COS nonlinear function constraints

  • Fixed numerical issue for POLY nonlinear function constraints with tiny coefficients

  • Fixed numerical issue in a presolve reduction that detects piece-wise linear objectives, which can lead to wrong answers

  • Fixed potential segmentation fault in presolve for general nonlinear constraints

  • Fixed numerical issue in presolve for cliques with continuous variables

  • Fixed potential segmentation fault in a very rarely called heuristic

  • Fixed issue that fingerprint attribute for a model with piece-wise linear objective function on macOS ARM can be different than on other platforms.

Fixed Issues in Gurobi 12.0.0#

Optimizer#

  • Properly sign Windows dll and executables and .NET library

  • Fixed issue with empty error messages for function calls from callback

  • Fixed issue with infinite recursion if GRBmsg is called from within a message callback

  • Reduced number of malloc calls to avoid issues with memory fragmentation that may lead to out-of-memory errors

  • Removed runtime overhead from querying OS information for logging that could be noticed when solving thousands of tiny models

  • Fixed a potential segmentation fault when setting an integer attribute of a general constraint

  • Fixed read error for OPB files at the end of the file

  • Fixed issue in OPB file reader when the resulting quadratic problem has more than 2 billion quadratic terms

  • Fixed very rare numerical issue in presolve that could lead to wrong answers

  • Fixed numerical issues in presolve that could lead to a wrong declaration of infeasibility

  • Fixed numerical issues in parallel column presolve reduction that could lead to wrong answers

  • Fixed issue with inconsistent objective values if uncrushing improves (for numerical reasons) the objective value

  • Fixed rare issue with presolve reduction that combines an inequality with an equation that is parallel to it, leading to a wrong answer

  • Fixed issue in presolve with general piecewise-linear constraint that can lead to large constraint violations

  • Fixed potential segmentation fault in presolve for models with both quadratic equalities and a quadratic objective

  • Fixed rare issues in MIQCP presolve that could lead to wrong answers

  • Fixed some numerical issues in the simplex algorithm

  • Fixed numerical issue in dependent row presolve for LPs that could lead to wrong declaration of infeasibility

  • Fixed issue with infinite cycling in QP simplex

  • Fixed very rare issue with super basic variables handling in LP relaxations of MIPs that could lead to wrong answers

  • Fixed memory leak in simplex when switching from primal to dual and solving again with primal

  • Fixed issue with dual violations if a continuous model with a piecewise-linear objective is solved by barrier without crossover

  • Fixed bugs in barrier that could arise for models with more than 2 billion non-zeros

  • Fixed potential segmentation fault in SOCP when there are more cones than linear constraints in the model

  • Fixed issue with wrong objective sense for maximization models that are solved with barrier, use the explicit dual model and exploit symmetry

  • Fixed issue with IntegralityFocus=1 that could lead to a wrong answer

  • Fixed issue in MIP cleanup with accepting a solution that has too large constraint violations

  • Fixed numerical issue in cut lifting that could lead to wrong answers

  • Fixed very rare segmentation fault in a special case of clique and implied bound cuts

  • Fixed performance issue with the interior point heuristic for nonconvex MIQCPs not benefitting from the user-specified PStart values because they are incorrectly discarded

  • Fixed issue with an infinite loop in MIQCP solving if outer approximation is unbounded

  • Fixed numerical issue with small values in presolve for quadratic constraints that could lead to wrong answers

  • Fixed bug with spatial branching for nonconvex models that could result in excessively large node files or memory consumption

  • Raise error earlier if there are more than 2 billion quadratic terms in the quadratic constraints

  • Removed wrong warning log message about piecewise-linear objective for an IIS solve on a model with general function constraints

  • Fixed issue with incorrect handling of the WorkLimit parameter in individual multi-objective environments

  • Fixed issues with getting a wrong primary objective function in a multi-objective model without an update call before setting the secondary objective

  • Fixed inconsistencies in the interplay of the global Threads parameter and the Threads parameters of concurrent environments

Tuning Tool#

  • Fixed handling of fixed parameter settings in remote tuning sessions

gurobipy#

  • Fixed usage of np.array() for numpy 2.0 compatibility

Compute Server, Cluster Manager, and Instant Cloud#

The list of fixed issues for Compute Server, Cluster Manager, and Instant Cloud can be found here.