Fixed issues in Gurobi Optimizer 10.0#

This page lists the issues fixed in each technical release in the 10.0.x series.

Fixed issues in Gurobi 10.0.3#

  • Fixed floating point exception in presolve

  • Fixed hang when querying sensitivity analysis attributes on a numerically unstable LP

  • Fixed R interface for handling log, loga and logistic general constraints

  • Fixed issue with wrong objective value and dual bound reported after MIP cleanup finds a solution

  • Fixed LP file format reader for general function constraints

  • Cleaned up error calculations on polynomial general function constraints

  • Fixed segmentation fault due to a missing destructor call when explicitly dlclose’ing the gurobi library

  • Fixed handling of empty columns after uncrush that leads to stalling at the end of an LP solve

  • Fixed not always passing the current incumbent solution to the next objective hierarchy solve in multi-objective optimization

  • Fixed issue with not respecting cutoff parameter for models with disconnected components

  • Fixed wrong answer due to handling of primal bound for models with disconnected components

  • Fixed issue with API methods to copy a model not copying variable and constraint tags

  • Fixed numerical issue in presolve that may lead to wrong answers for MIQPs

  • Fixed segmentation fault due to an invalid write when setting an LP warm start basis

  • Fixed segmentation fault in the dependent row checking of LP presolve

  • Fixed possible segmentation fault when calling the partition heuristic in the MIP cleanup phase

  • Fixed potentially infinite loop due to an integer overflow in symmetry handling

  • Fixed issue with not respecting a user’s model.terminate() signal if called too early

  • Fixed wrong answer due to scaling when re-solving an LP after turning it into a multi-scenario model by adding an empty scenario

  • Fixed floating point exception in partition heuristic

  • Fixed wrong answer due to bad relaxation of a variable bound in presolve aggregation of length 2 equations

  • Fixed usage of sparse array data types of scipy 1.11.0 in gurobipy

  • Added missing operator overload for MLinExpr * LinExpr in gurobipy

Fixed issues in Gurobi 10.0.2#

  • Fixed index order of the tuples returned from Model.addConstrs in gurobipy

  • Fixed segmentation fault in partition heuristic when run in parallel

  • Fixed potential non-determinism in partition heuristic

  • Fixed wrong answer issue with piece-wise linear objective primal simplex method

  • Fixed wrong answer bug with lazy constraints for MIQCPs with MIQCPMethod=0

  • Fixed return values for MIPSOL_OBJBST callback code

  • Fixed segmentation fault when re-solving a non-convex MIQCP with a tree having node files

  • Fixed segmentation fault in network simplex on model with duplicate arcs

  • Fixed wrong error code 10001 in distributed MIP

  • Fixed potential issue with overshooting time limit in barrier solves

  • Fixed issue that gurobi_cl and a Compute Server solve have different solving paths for QUBO models

  • Fixed issue with overshooting the time limit in a primal heuristic

  • Fixed licensing issue with retrieving the user name when an invalid locale is used

  • Fixed wrong answer on continuous QCP model that is wrongly detected to be convex

  • Fixed wrong answer issue for MIQCPs due to conflicting dual reductions

  • Fixed wrong answer for a nonconvex MIQCP with unbounded relaxation

  • Fixed very rare potential segmentation fault with network cuts

  • Fixed invalid network cuts in the presence of a quadratic objective

  • Fixed issue with lazy constraints being ignored and an infeasible solution being accepted

  • Fixed issue in distributed MIP with occasionally not recording solutions found after the ramp-up phase

  • Fixed issue with the environment callback not working properly anymore

  • Fixed performance issue in a heuristic that uses a loop with quadratic complexity

Fixed issues in Gurobi 10.0.1#

  • Fixed issue with occasionally returning an invalid solution status in concurrent LP when barrier encounters numerical issues

  • Fixed numerical issue in outer approximation cuts that can lead to wrong answers for MIQCPs

  • Fixed a performance issue in OBBT that can lead to overshooting the time limit

  • Fixed issue with printing internal parameter settings to the log when using distributed workers in Gurobi Instant Cloud

  • Fixed race conditions when creating multiple Gurobi environments in parallel threads

  • Fixed small memory leak in lift-and-project cut seperator

  • Fixed wrong answer arising from sub-MIP cuts with “PoolGap=0” parameter setting

  • Fixed bug with applying an invalid lifting for quadratic constraints in presolve

  • Fixed potential segmentation fault in lifting for quadratic constraints in presolve

  • Fixed rare issue with occasionally using one thread more than allowed by the “Threads” parametrer

  • Fixed bug in orbital probing that can lead to wrong answers for symmetric models

  • Fixed bug in coefficient strengthening that can lead to wrong answers for models with tiny coefficients

  • Fixed bug with reporting wrong objective values in the log file of multi-objective solves

  • Fixed handling of user callback function when copying a model

  • Fixed inconsistency with handling variable bounds that are exactly -1e+20 or +1e+20

  • Fixed presolve reduction when general integer variables appear as squares in quadratic objective function

  • Fixed presolve reduction on quadratic objectives with maximization senseFixed bug in non-convex MIQCP with accepting an infeasible solution after domains became too tiny to branch on

  • Fixed bug with running feasibility pump multiple times during the solve

  • Fixed issue with wrong SOS types returned for remote environments and empty SOSs

  • Fixed inconsistency between version information in local and Compute Server log output

  • Fixed recording when computeIIS() is called for a Compute Server session

  • Fixed segmentation fault when writing an IIS model and variable or constraint tags are present

  • Fixed segmentation fault when using NodeMethod=2 for MIQCPs

  • Fixed issue that number of open Gurobi environments in a process was limited by OS resources

  • Fixed bug with creating the fixed model for models that contain SOS2 constraints

  • Fixed wrong answer for MIQCPs with MIQCPMethod=0 and constraints marked as lazy

  • Fixed issue with returning an internal error code 100001 on a non-convex MIQCP

  • Fixed segmentation fault when setting Crossover=0 in a multi-objective environment for a multi-objective LP

  • Fixed numerical issue in parallel column presolve reduction for variables with huge bounds

  • Fixed bug with calculating an IIS for a model that contains semi-continuous or semi-integer variables

  • Shut off messages from WLS module if OutputFlag is set to 0

  • Fixed an infinite recursion in a heuristic for MIQCPs that leads to a stack overflow

  • Fixed numerical issue in handling models with independent components that can lead to wrong answers

  • Fixed potential segmentation fault when displaying the tuner results

  • Fixed numerical issue in presolve when merging piece-wise linear constraints modeled by linear constraints

  • Fixed bug with not discarding multi-objective changes from update cache if the model update contains an invalid change

  • Fixed numerical issue in presolve that can lead to wrong answers

  • Fixed potential segmentation fault when adding variables to a model that has using the VarhIntVal, VarHintPre or Partition attributes

  • Fixed wrong answer when applying original problem heuristics in MIQPs

  • Fixed wrong error message when accessing uninitialized attributes in an MQConstr object

  • Fixed issue in gurobipy with using MVars of size 1 in SOSs and indicator constraints

  • Fixed issue in gurobipy with using MVars of size 1 in Model.ChgCoef()

  • Fixed lagged console output in Matlab

  • Throw exceptions for errors in Java API of SetObjective() and SetObjectiveN()

Fixed issues in Gurobi 10.0.0#

  • Fixed issue in gurobipy with multiplying an MLinExpr from the left to an MVar

  • Fixed issue in gurobipy with creating MVars with multiple singleton dimensions

  • Fixed segmentation fault when removing the callback after starting an asynchronous optimization

  • Fixed issue in gurobipy with mixing LinExpr and MLinExpr objects

  • Fixed bug with partition heuristic not running for PartitionPlace=16

  • Fixed numerical issue in cuts with tiny coefficients that may lead to wrong answers in very rare cases

  • Fixed issue with multi-objective environments not allowing to set the logfile name

  • Fixed issue with not calling the callback for solutions found in MIP cleanup at the end of the solve

  • Fixed bug in conflict analysis for non-convex MIQCP models that may lead to wrong answers

  • Fixed bug with solutions being not available with Compute Server if the solve is interrupted during the NoRel heuristic

  • Fixed an infinite loop due to switching back and forth between QCP and LP relaxation for an MIQCP solve with numerical issues

  • Fixed an uninitialized memory read in barrier algorithm that may lead to non-deterministic behavior in rare cases

  • Fixed wrong answer bug by improving numerics in simplex by switching to quad precision more often for bad models

  • Fixed performance issue in the lifting step of probing in presolve

  • Fixed bug that work and time limits were not checked before starting to process MIP starts

  • Fixed performance bug in network simplex algorithm on ARM chips

  • Fixed numerical issue in infeasibility proof cuts that may lead to wrong answers

  • Fixed version mismatch warning with Java API in version 9.5.2

  • Fixed bug that objective constant change is ignored for maximization problems when only the sign of the constant changes

  • Fixed performance issue in NoRel heuristic where Gurobi stays in phase 1 even though an almost feasible solution has already been found

  • Fixed issue in gurobipy with raising a GurobiError instead of returning NotImplemented when LinExpr and other objects cannot handle an input type

  • Fixed issue in gurobipy with Model.getAttr() returning bogus results instead of raising an exception when called with incorrect attributes

  • Fixed bug with not printing log information for a very long time in a special case of presolve probing

  • Fixed issue that sometimes solutions survive in the solution pool even though they should be discarded due to the PoolGap parameter

  • Fixed bug in presolving with returning an infeasible solution for a model with semi-continuous variables

  • Fixed bug with returning a wrong IntVioIndex, i.e., the index of the variable with largest integrality violation

  • Fixed bug in gurobipy when setting attributes of a 0-dimensional MVar

  • Fixed performance issue with the clean-up phase taking very long for IntegralityFocus=1

  • Fixed issue that computeIIS does not show the output of the initial model solve

  • Fixed bug in the LP file reader for general constraint attributes

  • Fixed bug with using multiple MIP starts in a Compute Server session

  • Fixed numerical issue for binary MIQP models that are linearized, which can lead to wrong answers

  • Fixed rounding of incumbent objective values in log output

  • Fixed numerical issue in presolve with variables with small positive lower bounds appearing in quadratic terms

  • Fixed an infinite loop in primal simplex when a primal start vector is provided and partial pricing is used

  • Fixed a bug that the MIPSOL callback is not called for one of the solutions found

  • Fixed numerical issue that lead to not cutting off a solution even though a lazy constraint was added in the callback

  • Fixed bug in dual presolve reduction that very rarely cuts off all optimal solution

  • Fixed segmentation fault in RINS heuristic for models with SOS constraints

  • Fixed bug in PWL simplex that results in an “Invalid piece-wise linear objective” error

  • Fixed bug that strong branching is not checking the time limit often enough

  • Fixed issue with using a wrong basis for concurrent LP solve with warm-start basis

  • Fixed issue with a heuristic call on a non-convex MIQCP leading to an Error 10005

  • Fixed issue with being unable to get the dual ray for a local node for unbounded non-convex MIQCPs

  • Fixed bug with error messages being lost in some APIs when using a callback