Recent Bug Fixes by Version
Below is a summary of the bug fixes made in the releases starting with version 6.5.
Gurobi Optimizer v12.0.0 and later
The information about fixed issue in Gurobi versions 12.0 and later is available on the new Gurobi Documentation site.
If you have any questions, please submit a Gurobi support ticket. To download the latest version of Gurobi visit our Downloads Center.
Previous Gurobi Optimizer Versions:
Menu
Gurobi Optimizer v11.0.3
Engine Bug Fixes:
- Fixed numerical issue with an underflow in lifting during presolve
- Fixed issue in tuning tool with objective scaling
- Fixed bug with querying constraint names from Compute Server if names are really long
- Fixed numeric error during conversion of QCPs into standard form
- Fixed numerical issue in singular basis handling of simplex for free variables
- Fixed uninitialized memory read in heuristics when crushing solutions through presolve
- Fixed numerical issue in simplex when applying very small perturbations
- Fixed logging issue with missing header line if simplex solve is resumed
Features:
- Made gurobipy compatible with numpy 2.0
- Decreased memory footprint when adding many objective vectors for multi-objective models in a single model update pass
Gurobi Optimizer v11.0.2
Engine Bug Fixes:
- Fixed incorrect result after using GRBconverttofixed
- Fixed segmentation fault in barrier ordering for huge models
- Fixed numerical issue with logistic function constraints that lead to wrong infeasibility claim
- Fixed segmentation fault when linearization of Q objective leads to more than 2 billion terms
- Fixed segmentation fault on Windows with Compute Server and piecewise linear objectives during model creation
- Fixed a numerical issue in QP simplex
- Fixed bug with using a wrong solution as forced MIP start for multi-objective models that leads to invalid solutions
- Fixed bug with ModelSense attribute returning garbage after using concurrent LP with SolutionTarget=1
- Fixed segmentation fault with using concurrent environments on Windows
- Fixed wrong solution issue when crossover is skipped for barrier inside concurrent LP with SolutionTarget=1
- Fixed a numerical issue in cover cut lifting that can lead to cutting off an optimal solution
- Fixed segmentation fault with the combination of SolutionTarget=1 and PreDual=1
- Fixed integer overflow in barrier nested dissection ordering that can lead to a segmentation fault
- Fixed bug with reporting a wrong best bound in NoRel heuristic log for maximization problems
- Fixed potential data race condition when multiple Gurobi environments are created from parallel threads
- Fixed issue in gurobipy that setting string-valued attributes fails on 0-dimensional MVar objects
- Fixed potential wrong answer bug in presolve with non-linear constraints and biconnected components
- Fixed performance bug with symmetry computation on models with dense quadratic objectives
- Fixed bug with overshooting the time limit in MIP IIS
- Fixed bug with getting a big violation after symmetry unfolding or uncrushing simplex solution for SolutionTarget=1
- Improved numerics in IIS calculation to reduce chances for producing an IIS that is not irreducible
- Fixed segmentation fault for super long variable names in MPS reader
- Fixed potential segmentation fault in strong branching when LP relaxation was dualized
- Fixed sporadic declaration of optimality of massively sub optimal solution on models with lazy constraints
- Fixed potential nondeterminism in spatial branching for non-convex MINLPs or MIQCPs
- Fixed numerical issue in Euclidean algorithm based presolve reduction
- Fixed bug with sending corrupted data to Cluster Manager on arm64 chips in batch mode
Compute Server and Cluster Manager:
- Fixed access to filtering options in the Cluster Manager node dashboard
- Improved handling of large data file for batch submission with the Cluster Manager
Gurobi Optimizer v11.0.1
Engine Bug Fixes:
- Improved numerics in presolve propagation on variables that appear nonlinear terms
- Fixed segmentation fault in LP presolve aggregator
- Fixed rare wrong answer bug with using a wrong cutoff value in presolve
- Fixed numerical issue in in parallel rows reduction that can lead to wrong infeasibility claims
- Fixed bug in dual presolve with fixing unbounded variables to an infinite value
- Fixed numerics in domain propagation of node presolve to avoid wrong answers
- Fixed numerical issue in presolve with fixing variables when using NumericFocus=2 or 3
- Fixed bug with the objective constant being missing in the presolved model obtained my model.presolve()
- Fixed segmentation fault in presolve probing
- Fixed sign issue with calculating unbounded rays for free variables
- Fixed rare bug in simplex with free variables dropping from basis
- Fixed bug in work tracking that can lead to excessive spin time in concurrent simplex
- Fixed performance issue when lazy constraints are involved
- Fixed bug with bogus declaration of infeasibility
- Fixed numerical issue with scaling if lazy constraints are involved
- Fixed bug with NodeLimit=0 not being respected correctly
- Fixed very rare bug with potentially getting non-deterministic behavior in parallel MIP solves
- Fixed numerical issue in a heuristic that can lead to solutions with big violations
- Fixed uninitialized memory read caused by compiler bug on ARM linux64
- Fixed segmentation fault when copying a model with recording into a new environment that has no recording
- Fixed segmentation fault with very long file names used for reading or writing model files
- Fixed bug with reading solution attribute files for Compute Server
- Fixed rare bug in presolve for quadratic constraints
- Fixed very rare sign issue in quadratic constraint to SOC conversion
- Fixed incorrect bound flip in QP simplex that could lead to wrong answers
- Fixed uninitialized memory access in MIQCP presolve
- Fixed bogus declaration of infeasibility or unboundedness in MISOCP presolve
- Fixed segmentation fault when re-solving QPs using warm starts
- Fixed error message regarding wrong sorting of breakpoints in PWL constraints
- Fixed sign bug in translating MIN constraints that can lead to wrong answers
- Fixed numerical issues with sin() and cos() nonlinear functions of global MINLP feature
- Fixed bug in propagating nonlinear constraints of global MINLP feature
- Fixed bug in handling POW constraint of global MINLP feature that could lead to wrong answers
- Fixed bug in propagating nonlinear constraints in global MINLP feature that could lead to solutions with big violations
- Fixed segmentation fault in global MINLP feature after linearizing a quadratic objective
- Fixed segmentation fault with grbtune on Windows
- Fixed automatic time limit computation for distributed tuning
- Fixed small performance issue in the tuner with switching too late to tuning the run time instead of the gap
- Fixed bug with the tuning tool ignoring constraint attributes for the tuning
- Fixed bug with disregarding fixed parameter setting in remote tuning
Features
- Pass feasibility tolerance to sub-MIP’s for heuristics to improve likelihood to get – solution that meet tolerances
- “grb_rsw –version” now prints full version information
- Improved dynamic handling of workers in tuning tool
- Allow any type of model attribute file to be passed to the tuner via grbtune
Compute Server and Cluster Manager:
- Fixed the display of the swagger page of the compute server that was not loading
- Fixed usage of commas in the LDAP configuration (Bind DN)
- Fixed broken link to the EULA in the compute server
Gurobi Optimizer v11.0.0
Engine Bug Fixes:
- Fixed logging from remote worker in Cluster Manager batch mode
- Return error when referencing a constraint in a Column object that is not a linear constraint
- Fixed numerical issue with small variable lower bound and variable upper bound constraints introduced to translate an SOS constraint
- Fixed numerical issues in node presolve that could lead to wrong answers
- Fixed non-deterministic behavior for MIP models without objective function caused by a heuristic running in parallel to the root node
- Fixed wrong answer issue with discarding a slightly violated solution but still pruning the search tree
- Fixed corner case that could lead to wrong declaration of infeasibility for models with piece-wise linear objective function
- Fixed issue in piece-wise linear primal simplex algorithm that can lead to wrong answers
- Fixed wrong answer issue for models that have multiple components after the root cut loop in which a component can be completely fixed
- Fixed bug with user callback returning an error would not terminate the optimization
- Fixed wrong conclusion of unboundedness for MIQCPs
- Fixed infinite loop in simplex in a specific case of a bad basis for numerically unstable problems
- Fixed numerical issue in knapsack cover cut separator that can lead to wrong answers
- Fixed bug in bound propagation of logistic general function constraint
- Fixed numerical issue for very big objective values in barrier SOCP solver that could lead to wrong answers for MIQCPs
- Fixed issue with semi variables with negative lower bounds that appear in general constraints
- Fixed performance issue with probing when presolve can significantly reduce the model size
- Fixed numerical issue in McCormick relaxation for bilinear constraints when coefficients become very small
- Fixed numerical issue in constraint strengthening when very big values are involved
- Fixed issue with incompatible dual node presolve reductions that lead to wrong answers
- Fixed numerical issue with an underflow in node presolve domain propagation that can lead to wrong answers
- Use presos1bigm parameter instead of fixed constant in SOS translations of MIQCPs to avoid numerical issue
- Fixed wrong declaration of convexity for piece-wise linear objectives that leads to wrong answers
- Fixed numerical issue with QP simplex returning wrong objective after running into numerical issue and restarting with different method
- Fixed numerical issue in cut lifting that could produce wrong cuts
- Fixed possible infinite loop in MIQCP solving
- Fixed segmentation fault when interrupting and resuming an LP solve that decided to use the explicit dual problem
- Fixed issue that distributed MIP on multi-objective MIP used one less worker than available
- Fixed possible segmentation fault in dependent row presolve reduction
- Fixed potential segmentation fault for PreQLinearize=2 for quadratic constraints
- Fixed very rare performance issue in LP sifting algorithm
Compute Server and Cluster Manager:
- Fixed bug that thread limit installed on Compute Server was sometimes not respected for
short periods of time
Examples:
- Fixed bug in the gc_pwl_func examples that misses to set FuncPieces to 1
Gurobi Optimizer v10.0.3
Bug fixes:
- 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
Gurobi Optimizer v10.0.2
Bug fixes:
- 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
Features:
- Print warning when running IIS on models with general function constraints
Gurobi Optimizer v10.0.1
Bug Fixes
- 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()
Features
- Added Conda package for Python 3.11
Gurobi Optimizer v10.0
Bug Fixes
- 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
Gurobi Optimizer v9.5.2
Bug Fixes
- Fixed parsing of grbcluster command line to submit a batch using files from the file repository
- Fixed display of MIPGap in the cluster manager chart
- Fixed parsing of grbcluster command line to submit a batch using files from the file repository
- Fixed segmentation fault for multi-objective models with a single objective and quadratic constraints
- Fixed very rare segmentation fault that can arise when solving MIQCPs
- Fixed a performance bug in the NoRel heuristic
- Fixed issue with not calling the polling callback on models that decompose into independent components
- Fixed bug with ignoring the WorkLimit parameter set for multi-objective environments
- Fixed bug with a multi-objective optimization returning an error 10005: Requested data not available
- Fixed bug with a multi-objective optimization returning an internal error 20000
- Fixed a numerical issue with linearizing a quadratic objective function
- Fixed bug with returning and displaying a wrong complementarity violation attribute when column scaling is in play
- Fixed wrong calculation of the dual solution in barrier with finite upper variable bounds that appears often when the homogeneous algorithm is used
- Fixed bug with a missing solution in the solution pool when MIP cleanup is applied
- Fixed issue with scaling linear constraints with infinite right-hand side
- Fixed very rare segmentation fault that is related to storing uncrushed MIP solutions to the original user model
- Fixed bug with the BarIterCount attribute being zero in a concurrent LP solve
- Fixed bug with Compute Server when URLs in HTTP requests are turned into lower case by the user’s IT infrastructure
- Fixed regression with Compute Server not anymore producing a server log file when logging on the client side is disabled
- Fixed rare bug with returning a wrong answer for some symmetric LPs when barrier is used without crossover
- Fixed rare bug with returning a wrong answer in presolve for some MIQPs that decompose into independent components
- Fixed rare bug with returning a wrong answer for non-convex models due to a wrong domain propagation
- Fixed bug with producing infeasible solutions for models with semi-continuous variables
- Fixed numerical issue that leads to declaring a convex piece-wise linear objective as non-convex
- Fixed performance bug in the LP-based MIR cut separator
- Fixed performance bug in Compute Server message handling that can lead to network connection errors due to a timeout
- Fixed bug with network timeout errors for Compute Server solves on very big models
- Fixed bug in IIS algorithm with IISMethod set to 3 that sometimes leads to not being able to access the IISConstr attribute
- Fixed performance degradation for models with pure binary SOS1 constraints
- Fixed issue with automatic model update when writing solution attributes to a JSON file
- Fixed bug in gurobipy with not using the constraint name when calling Model.addConstr() with a bool and a string as positional arguments
- Fixed bug with the proceed() callback call not working properly inside the NoRel heuristic when applied to a multi-objective model
Features
- Terminate early if the MemLimit parameter is set and the memory bound for barrier calculated after the ordering step already exceeds the memory limit
- Improved logging in concurrent LP when one of the solvers returned with an error
Gurobi Optimizer v9.5.1
Bug Fixes
- Fixed bug in lift-and-project cuts that could lead to wrong answers
- Also disable cuts from parallel root cut loop if “Cuts” parameter is set to 0
- Fixed bug in tuner where a parameter setting is discarded too early when tuning for the maximum gap
- Do not print parameter changes on the worker environment if the OutputFlag is 0
- Fixed possible crash introduced in 9.5.0 when setting parameters after unsetting a callback in OO APIs
- Fixed issue in setup.py to correctly error out for Python 3.6 and older (which are unsupported in 9.5 and later)
- Fixed bogus best bound information in log file on some MIQP models with bad numerics
- Fixed segmentation fault introduced in 9.5.0 with warm start basis that has a non-basic slack with infinite right hand side
- Fixed big memory overhead with tuning multi-objective models with many variables and many sparse objectives
- Fixed issue when tuning for maximum gap and the baseline run did not find any solution
- Fixed memory leak in partition heuristic
- Fixed performance bug in product detection
- Fixed segmentation fault in a heuristic when SOS constraints are involved
- Fixed segmentation fault in simplex when dealing with warm starts and model changes
- Fixed wrong answer issue with passing a negative Q diagonal of a binary variable to QP simplex
- Fixed segmentation fault in greedy heuristic
- Correctly error out in distributed MIP if model contains Euclidean norm constraints but no other Q constraints
- Fixed uncrush bug for Euclidean norm and 1-norm constraints
- Fixed issue on Windows that locale changes can lead to cutting off values of double parameters when enviroments are set up in parallel
- Fixed wrong answer bug with MIQPs and MIQCPs coming from the parallel root cut loop
- Fixed a performance bug that prevented application of perspective strengthening in MIQPs and MIQCPs
- Fixed segmentation fault in simplex algorithm involving bad numerics and free superbasic variables
- Fixed possible segmentation fault due to bad numerics in MIQP and MIQCP presolve
- Added missing dispatch of += operator of MLinExpr for Var objects
- Added missing dispatch of += operator of MQuadExpr for Var and LinExpr objects
- Fixed bug with summing MQuadExpr expressions hanging in an infinite loop
- Added missing dependency to Linux conda package that caused issues with license check in certain miniconda installations
- Fixed bug when saving the LDAP settings from the Cluster Manager
Features
- Added Conda packages for Python 3.9 and 3.10
- Added value 2 for “Aggregate” parameter to allow for more aggressive aggregation
- Allow to use Web License Service in containers that run more recent Linux versions
- Extended pip license bundled with gurobipy wheels to be valid for 2 years
- Added support for Amazon Linux2
- Added experimental support for ARM64 Linux
Gurobi Optimizer v9.5.0
Bug Fixes
- Fixed bug with duplicate solutions in solution pool with general constraints
- Fixed performance bug in a heuristic applied before the root LP solve
- Fixed wrong answer for non-convex MIQCPs
- Fixed issue with double namespaces in gurobipy
- Remove bad behaving `gurobi.py` and `gurobi.bat` from conda installation on Windows
- Fixed Compute Server data throughput degradation on Windows after libcurl update
- Fixed bug accepting solution with huge violation on quadratic constraints
- Fixed performance bug in RLT cut separation
- Removed wrong log output for MinRel heuristic claiming it found a solution even though it violates lazy constraints
- Fixed bug changing the user locale and not resetting it to its original value
- Fixed segmentation fault when using Matlab with Compute Server
- Fixed issue that calling terminate() is ignored during IIS computation
- Fixed wrong answer on models with lazy constraints and presolve being turned off
- Return an error instead of producing segmentation fault when user changes attributes and calls updatemodel() from a callback, which is not allowed
- Fixed bug with wrong constraint names in gurobipy’s printQuality() if most violated constraint is not a linear constraint
- Fixed wrong presolve reduction with biconnected components for models with SOS, quadratic, or general constraints
- Fixed segmentation fault in presolve component solves if model has a piecewise linear objective
- Fixed error with retrieving attribute in asynchronous optimization
- Fixed issue with the order of variables in MPS file writing for quadratic objectives
- Fixed unknown attribute or parameter errors if non-standard locale is used
- Fixed numerical issue in presolve reduction that can lead to wrong answers in rare situations
- Fixed bug that GRBcopymodel() did not copy variable tags
- Fixed some consistency issues in gurobipy with logging when LogToConsole and OutputFlag parameters are used
- Fixed bug that the IIS model computed by computeIIS() would still contain the objective constant
- Fixed numerical issue in scaling bilinear terms for non-convex MIQCPs
- Fixed performance issue in a presolve reduction that tries to cancel non-zero coefficients
- Fixed segmentation fault for manually unloading the Gurobi shared library
- Fixed potential uninitialized memory read in NoRel heuristic
- Added missing implicit updatemodel() call when writing MPS or LP files
- Fixed segmentation fault when querying FarkasDual when solved with primal simplex
- Fixed bug with uncrushing solution for semi-continuous and semi-integer variables
- Fixed wrong result code of GRB_INTERRUPTED when we should return GRB_TIME_LIMIT
- Fixed logging issue for concurrent MIP with multi-objective MIP models
- Fixed issue with case sensitive user names when connecting to a Cluster Manager
- Fixed segmentation fault in presolve for MIQPs with more than 1 billion quadratic objective terms
- Fixed presolve reduction for models with binary variables in quadratic constraints that could cause wrong answers
- Fixed memory leak in gurobipy’s cbLazy()
- Free the environment in the C++ API in case the license is not valid
- Fixed logging issue with continuing optimization after an interrupt if LazyConstraints=1 is set
- Fixed wrong conclusion about unboundedness for non-convex MIQCP
- Fixed very rare segmentation fault with parallel root cut loop
- Fixed numerical issue in propagation that resulted in PoolSearchMode=2 with MIPFOCUS=3 not finding all solutions
- Fixed bug in OO APIs with Model.cbGetNodeRel() returning values even if no relaxation solution is available
- Fixed bug with tuner not respecting a fixed NoRel parameter
- Fixed segmentation fault when building a model with ranged rows that have an infinite rhs
- Fixed segmentation fault in barrier crossover when the initial basis factorization exceeds 2 billion non-zeros
- Fixed gurobipy’s default CSIdleTimeout value for Compute Server
- Fixed invalid rejection of general constraints with duplicate operands
- Fixed enumeration of solutions with Poolsearchmode=2 on models with free general integer variables
- Fixed potentially infinite loop on LPs with a piece-wise linear objective
- Fixed segmentation fault in NoRel heuristic
- Fixed issue with computeIIS() discarding user-specified attributes
- Fixed issue that log messages with CrossoverBasis=1 were not sent to the callback
- Fixed error when applying concurrent MIP to a purely continuous non-convex QP or QCP
- Fixed error in Compute Server communication for models that contain tiny quadratic objective coefficients
- Fixed segmentation fault in presolve for quadratic models with a very special structure
- Fixed bug that MIPGap parameter was not obeyed when solving models with disconnected components
- Fixed wrong reported optimal objective value when initial heuristics find an optimal solution and presolve then proves optimality
- Fixed bug in gurobipy’s default environment that calling Model.resetParams() would lead to resetting the LogFile parameter and thus closing the log file
- Fixed bug that time limit was not respected when processing MIP starts
- Fixed access to Cluster Manager that may be blocked due to wrong mime type of css files
- Fixed log rotation when Cluster Maanger or Compute Server started as a service
- Fixed wrong Compute Server node type when using a valid license without Compute Server enabled
- Fixed grbcluster batch command that was crashing with some parameters
Gurobi Optimizer v9.1.2
Bug Fixes
- Fixed rare issue with multi-objective MIPs that get turned into LPs in presolve
- Fixed bug with reading coefficients with multiple sign symbols in quadratic terms in LP file format
- Fixed numerical issue in parallel row presolve with combining two inequalities into an equation
- Fixed standard deviation output in tuning tool
- Also call message callback for fingerprint information if OutputFlag is set to 0
- Fixed interplay of lazy constraints and bilinear constraints
- Fixed bug in SOCP disaggregation that can lead to wrong answers for models with quadratic constraints
- Fixed querying the runtime from the callback during the first few callback invocations
- Fixed segmentation fault in symmetry detection for models with huge coefficients
- Fixed an issue with __pwl() statements in LP file reader
- Fixed numerical issue in BQP cut separator with variables that have almost fixed domain
- Fixed segmentation fault in symmetry detection for models with >2 billion non-zeros
- Fixed bug with reporting a wrong dual bound if the model became infeasible after finding an optimal solution
- Fixed issue with losing user callback solution in certain rare situations
- Fixed segmentation fault in dependent row presolve reduction for large models
- Fixed bug with getting an INTERRUPTED error from parallel root cut loop on quadratic models that are at the border of convexity
- Fixed confusing error message when dividing a LinExpr object by a constant 0.0 in gurobipy
- Fixed single use licensing on newer Linux kernels
- Fixed MPS reader and writer regarding objective constants
- Fixed fingerprint calculation to include LP warm start information and to exclude variable tags
- Fixed missing objective log output for some solutions in solution pool
- Fixed a very rare segmentation fault in MIP for models that have an SOS2-like structure
- Fixed wrong answer bug when running barrier on a QP with presolve disabled
- Fixed segmentation fault when solving non-convex continuous model
- Fixed handling of variables without constraints in NoRel heuristic applied to MIQPs
- Fixed error 10008 in distributed MIP
- Fixed a wrong answer for the dual solution of SOCPs
- Fixed segmentation fault in barrier algorithm for models with more than 2 billion non-zeros
- Fixed segmentation fault in heuristics when PoolGap parameter is set
- Fixed issue with postprocessing barrier solution when Predual=1 is set
- Fixed numerical issue in cut separation that may lead to wrong answers
- Fixed names of non-linear constraints in output of printQuality()
- Fixed rare case of a wrong answer for the last scenario in a multi-scenario model
- Fixed numerical issue in presolve that could lead to a wrong answer
- Fixed race condition between the worker registration and the first command when the compute server is overloaded
Gurobi Optimizer v9.1.1
Bug Fixes
- Fixed attribute type for “Fingerprint” attribute in Java, C++, and .NET
- Fixed a numerical issue in a knapsack presolve reduction
- Fixed issue with IIS algorithm using too many threads
- Fixed wrong sign for Farkas dual values for variables with infinite lower bounds
- Fixed numerical issue in presolve coefficient strengthening
- Fixed issue with losing binary status of a fixed variable when writing to an mps file
- Fixed numerical issue in a dual presolve reduction
- Fixed segmentation fault when using pre-specified user cuts in some situations
- Fixed wrong answer when using pre-specified user cuts with >= sense
- Fixed handling of user cuts with equality sense
- Allow the use of a “pip install” trial license within Docker
- Fixed performance bottleneck in Compute Server model updates with general constraints
- Fixed segmentation fault when environment creation is used incorrectly by the user and the error code is not handled properly
- Fixed wrong default value of the “Lazy” attribute in attribute files
- Fixed incorrect presolve fixing for pure fixed charge network models
- Only use single-threaded BLAS on Mac to avoid overshooting the thread limit
- Fixed numerical issue for outer approximation cuts for quadratic constraints
- Fixed wrong answer for non-convex MIQCPs when sparsifying Q in objective
- Upgrade to curl 7.74.0 to address a network performance issue on Windows
Gurobi Optimizer v9.1.0
Bug Fixes
- Fixed issue with empty error messages from within callback in Python
- Fixed numerical issue in cut lifting
- Added missing Visual C++ runtime dependency for Python on Windows
- Fixed issue with resetting runtime attribute to zero on model updates
- Fixed potential segmentation fault when running out of memory
- Fixed issue in gurobipy with MLinExpr objects used for objective functions of multi-objective models
- Fixed numerical issue in clique based presolve reduction that lead to wrong claim of infeasibility
- Fixed issue with cbStopOneMultiObj() not working correctly on multi-objective models solved with distributed MIP
- Fixed potential segmentation fault when calling cbStopOneMultiobj() after a SIGINT has been received
- Fixed rare performance issue in a primal heuristic that may lead to a long time without display output
- Fixed numerical issue in cut scaling that very rarely lead to not calling the callback to allow for lazy constraint generation for a solution
- Fixed performance issue in flow path cut separator for models with very special structure
- Fixed the use of feasRelax() on multi-objective models
- Fixed incorrect handling of variables with infinite lower bound and finite upper bound for QP simplex
- Fixed wrong answer bug due to a bad symmetry reduction on models with quadratic or SOS constraints
- Fixed performance issue and not checking the time limit while lifting binary variables into cuts
- Fixed issue in IIS computation where hitting the time limit on the initial solve reports an error result
- Fixed numerical issue in a knapsack based cut strengthening routine that may lead to wrong answers
- Fixed issue in gurobipy with using a singleton MVar as objective
- Fixed numerical issue in presolve implied bounds reduction
- Fixed segmentation fault due to numerical issue in crossover for handling of dual super basic variables in a singular basis
- Fixed performance issue with sub-MIP cuts taking very long on MIQPs
- Fixed issue with temporarily using more threads than allowed by the “Threads” parameter
- Fixed issue with “gurobi_cl –tokens” for single-use licenses on Windows
- Fixed issue with keeping internal bilinear constraint representation in model produced by presolve method
- Fixed issue with MIP cleanup on models with semi-continuous or semi-integer variables
- Fixed issue with getting a Q_NOT_PSD error for MIP starts applied to non-convex models
- Fixed issue with querying OBJVAL attribute for unbounded models if a feasible solution is available
- Fixed issue with returning error 10017 for an MIQCP that is presolved to an MILP and solved with distributed MIP
- Fixed wrong answer due to applying incompatible symmetry and disconnected components reductions at the same time
- Fixed rare uninitialized memory read in presolve for non-convex quadratic objective function
- Fixed issue in primal simplex ratio test that can lead to wrong conclusion of infeasibility
- Fixed issue that caused two worker processes to run simultaneously on the Compute Server for distributed MIP
- Fixed issue with getting an unbounded ray from a simplex solve
- Fixed issue with querying char attributes in gurobipy via model.getAttr()
- Fixed potential uninitialized memory read when setting MIP start via Start attribute on Compute Server
Gurobi Optimizer v9.0.3
Bug Fixes
- Fixed bug in presolve with merging small cliques that can lead to a wrong answer
- Changed gurobipy argument name of addMConstrs() from “names” to “name” to match documentation
- Fixed a performance issue with an infinite loop in a heuristic due to numerical issues
- Fixed a small memory leak for multi-scenario models
- Fixed LP iteration count attribute values for multi-objective model solves
- Fixed issue in gurobipy with wrong result when adding two MLinExpr expressions
- Fixed bug with querying attributes of a multi-scenario model from Compute Server
- Fixed issue with wrong MIP solution status if a parallel thread at the root node proves infeasibility of the model
- Fixed OverflowError in gurobipy when adding many variables with addVars()
- Fixed segmentation fault when using multiple environments on Windows with a Compute Server or Instant Cloud application
- Fixed rare segmentation fault in a set partitioning heuristic
- Fixed the handling of the “ImproveStartTime” parameter for multi-objective models
- Fixed wrong answer due to bad presolve reduction for non-convex MIQCPs with quadratic equations
- Fixed segmentation fault when using user cuts in certain situations
- Fixed segmentation fault related to semi-continuous variables
- Fixed extensions in library names in the R source package on Mac
- Fixed translation of one particular form of the addGenConstrIndicator() function in gurobipy when a linear expression with a non-zero constant term is involved
- Fixed wrong answer for non-convex MIQCPs due to an invalid dual reduction on the McCormick constraints
- Fixed performance issue in gurobipy with Compute Server when printing a set of variables if no feasible solution exists
- Fixed performance issue in symmetry computation
- Fixed issue with not stopping immediately if cbStopOneMultiObj() is called from the callback for a multi-objective solve that is currently performing symmetry detection
- Fixed segmentation fault that arises from a numerical issue in presolve for MIQPs
- Fixed issue with not printing the problem size for concurrent MIP > Fixed issue with writing a solution file based on the “SolFiles” parameter if the user callback returned an error
- Added missing support of scalar division for the MLinExpr object of gurobipy
- Fixed bug with accepting a solution with big constraint violation that came from a certain heuristic
- Fixed bug with returning the scaled solution from barrier, if the barrier solve is interrupted prematurely
- Fixed segmentation fault in presolve for non-convex MIQPs
- Enable work-around for a long running model.free() call via Compute Server that would terminate the connection due to a time out
- Fixed wrong fingerprint value when writing to mps files due to handling of IEEE -0.0 (negative zero) values
- Fixed wrong answer coming from relax-and-lift cuts
- Fixed issue with duplicate variable indices in the linear constraint of an indicator constraint
- Fixed wrong answers due to invalid symmetry detection for models with SOS constraints
- Fixed segmentation fault with solving a model in batch mode that has no name
- Fixed wrong answer in non-convex MIQCPs due to a wrong local update of the McCormick constraints
- Fixed numerical issue in presolve for models with SOS constraints and big-M coefficients
- Fixed performance issue in the LP file reader when huge files are being read
- Fixed wrong answer for multi-scenario models that decompose into multiple large components
Gurobi Optimizer v9.0.2
Bug Fixes
- Fixed issue with concurrent batch upload in Cluster Manager (9.0.2a)
- Fixed issue with infinite dives on bilinear and poolsearchmode
- Fixed performance issue with running a heuristic in parallel to the root cut loop
- Fixed bug in IIS for SOS variables with negative upper bounds
- Fixed python 3.8 issue on Windows with DLL load path
- Fixed a wrong translation of quadratic constraints into second order cones
- Fixed numerical issue with QC cuts and huge primal solution values
- Fixed numerical issue for convex MIQCPs if LP relaxation is unstable
- Fixed bug with a corner case in presolve when detecting piece-wise linear structures
- Fixed rare segmentation fault when root LP solve runs into numerical issues
- Fixed bug for a special case of QC cuts that could lead to wrong answers
- Fixed performance issue in presolve reduction to substitute sub-expressions
- Reduced memory consumption during conversion of QCPs or MIQCPs into SOCP form
- Fixed segmentation fault for a very rare case in which the environment creation runs out of memory
- Fixed issue with recording asynchronous solves
- Fixed wrong behaviour when querying certain attributes in some gurobipy classes
- Fixed performance issue with memory management for general constraint translation on Windows
- Fixed issue with the global dual bound for models that have disconnected components
- Fixed performance issue with memory management for non-zero cancellation on Windows
- Fixed issue with applying sifting for barrier crossover in current LP
- Fixed bug in propagating quadratic constraints that can lead to wrong answers
- Fixed issue with empty names in gurobipy’s addVars() method
- Fixed issue when a sub-MIP heuristic produces a non-convex continuous model for non-convex MIQCPs
- Improved cycling detection in QP simplex
- Fixed a presolve reduction for integer knapsacks on models with at most 3 variables
- Accept empty structs in MATLAB API
- Fixed assertion in Python setup on Windows
Gurobi Optimizer v9.0.1
Bug Fixes
- Fixed numerical issue in presolve with fixing variables for singleton rows
- Fixed issue in MPS reader with variables with infeasible domains
- Fixed issue with inconsistent gurobipy data structures after a feasRelaxS() call
- Fixed issue with not calling update() in OO APIs before calling feasRelax()
- Fixed issue with BestBdStop parameter not working correctly with MIP starts
- Fixed handling of semi-continuous variables inside the fixed model
- Fixed issue with ILP files not written if Compute Server is used
- Fixed issue with a symmetry presolve reduction that can lead to an infeasible solution
- Fixed issue with overshooting time limit during barrier factorization
- Fixed issue with setting attributes in gurobipy using ndarrays
- Fixed a non-determinism caused by network cut separation
- Fixed wrong answer issue caused by a presolve reduction on general constraints
- Fixed issue with propagating quadratic constraints, which can cause a wrong answer
- Fixed numerical issues in the disconnected component solver
- Fixed issue with deleting variables or constraints after having set the “Tag” attribute
- Fixed issue with a scipy.sparse matrix containing explicit zeros leading to data loss if used in setMObjective()
- Fixed issue with changing the “QCName” attribute causing the solution status of the model to be reset
- Fixed issue with getting presolved model on Compute Server, if generating presolved model takes more than 20 seconds
- Fixed issue with calling getVarByName() or getConstrByName() after having modified names
- Fixed issue with getting relaxation value for an MVar object in a gurobipy callback
- Enforce the THREADLIMIT parameter of Compute Server, such that larger THREAD parameter values are capped
- Fixed wrong answer caused by disconnected component presolver in combination with SOS constraints
- Fixed segmentation fault if threading callbacks are used in combination with MKL
- Fixed wrong answer for a trivial quadratic constraint infeasibility if presolve is disabled
- Fixed segmentation fault when the total number of non-zeros in the separated cuts exceeds 2 billion
- Fixed missing Python 3.8 in Windows installer
- Fixed issue with setting real-valued parameters on Compute Server, if a locale is used that has a floating point number representation which differs from the “C” locale
- Fixed wrong answer caused by a numerical issue in the dual bound update of a heuristic
- Fixed issue with using a TempConstr as dict key in gurobipy
- Fixed wrong answer for non-convex MIQCPs due to invalid reduced cost fixing
- Fixed issue with grbtune not working correctly with a token license and a token server password
- Improved numerical robustness when disaggregating quadratic constraints
- Fixed writing of “SolFiles” when non-default variable names are used with Compute Server
- Fixed bug in BQP cut separator that could cause wrong answers
- Fixed wrong answer caused by a symmetry presolve reduction
- Improved logging in crossover regarding super basics and infeasibility
- Added missing warning message that simplex is used instead of barrier for root solve of non-convex QP
- Improved barrier performance on AMD Ryzen and EPYC processors
Gurobi Optimizer v9.0.0
Bug Fixes
- Fixed issue with BestObjStop and BestBdStop in concurrent environments for maximization models
- Fixed segmentation fault in multi-objective solves for MIP models with special constraints, such as general constraints
- Fixed rare issue with scaling in PWL simplex
- Fixed issue with using basis file with Compute Server
- Fixed bug that prevented concurrent MIP to stop if a user objective limit or a solution limit has been reached
- Fixed rare wrong answer due to presolve
- Added missing constants to Python API
- Added missing constants to .NET API
- Fixed wrong answer issue for models that have multiple components
- Fixed bug in implied integer detection that may lead to infeasible solutions
- Fixed issue with running the tuner using Compute Server
- Fixed bug that prevented default settings to use Concurrent LP for the root solve in MIP on Windows
- Fixed bug with linearizing quadratic constraints
- Fixed issue with dualizing a QP
- Fixed numerical issue in cover cut separation when tiny coefficients are involved
- Fixed issue in the tuner when an optimization aborts due to numerical reasons
- Fixed issue with missing variable names when adding variables to a Compute Server model after an mps file has been read
- Fixed numerical issue in presolve for aggregating integer variables with big coefficients
- Fixed issue with HOSTID detection on Mac
- Fixed performance issue in MIP IIS code when LP is already infeasible
- Fixed internal naming when combining GRBloadmodel with GRBaddvars/GRBaddconstrs
- Fixed possible memory leak with multiple partial MIP starts
- Added back missing warning “Warning: parameter changes on this environment will not affect existing models.”
- Fixed segmentation fault on general constraint model with Presolve=0
- Fixed issue with gurobi_cl –tokens
- Fixed issue in presolve for models with more than 2 billion non-zeros
- Fixed issue with Java linearize() creating feasibility model instead of linearized model
- Fixed issue with problem being declared infeasible during presolving
- Fixed numerical issue with fixing variables in presolve to very large values
- Fixed infinite loop with lazy constraints when LP relaxation is unbounded
- Fixed issue with returning wrong error code for operating system file I/O methods
- Fixed wrong log output “Ordering time: 0.00s” despite long ordering phase
- Fixed bug with parsing “ResultFile” parameter of Gurobi command line solver
- Fixed issue in presolve with piece-wise linear objectives and big bounds
- Fixed double log output with Python API
- Fixed invalid read for empty quadratic constraints
- Fixed performance bug with sub-expression presolve
- Fixed numerical issue in presolve with big coefficients
- Fixed bug with linearization of quadratic maximization objectives with off-diagonal terms
- Fixed bug with missing objective constant when copying models with piece-wise linear objective
- Fixed issue with wrong MIP start solution values for models with piece-wise linear objective
- Fixed calculation of objective value of pool solutions for models with quadratic or piece-wise linear objective
- Fixed segmentation fault for running a certain heuristic on models with more than 2 billion non-zeros
- Fixed issue with symmetry detection not respecting the time limit
- Fixed bug with zlib compression in Compute Server if data size exceeds 2 billion bytes
- Fixed – and * operators for GRBQuadExpr objects in .NET API
- Fixed numerical issue in presolve leading to an error 10003 for models with general constraints
- Limit memory growth in zero-half and mod-k cut separators
- Return error if end piece of piece-wise linear objective is invalid
- Fixed numerical issue leading to a wrong answer for an MIQP
- Fixed segmentation fault in LP file reader for reading indicator constraints
- Call polling callback from mutli-objective model more often to avoid long delays
- Fixed numerical issue with using big finite bounds in aggregator of presolve
- Fixed bug with using BestObjStop, BestBdStop, or Cutoff for maximization objectives in multi-objective environments
- Fixed bug with using concurrent settings in a Compute Server solve
- Fixed very rare issue with wrongly concluding optimality for unbounded LP with empty column
- Fixed segmentation fault while solving multi-objective models with a MIP start
- Fixed issue with returning network error instead of JOB_REJECTED after CSQueueTimeout is reached
- Fixed issue that Compute Server didn’t work correctly for models with more 2 billion nonzeros
- Fixed segmentation fault in Python API when environment is freed before model, e.g., due to garbage collection
- Fixed subtle issue with ratio test of piece-wise linear simplex algorithm that may lead to a wrong answer
- Call polling callback during sub-MIP heuristics to avoid long delays
- Fixed numerical issue in GCD calculation that may lead to wrong answer
- Fixed performance issue with using Compute Server for models with many general constraints
- Fixed issue with setting the “ComputeServer” and “TokenServer” parameters as command line options of the Gurobi command line solver
- Fixed bug with using GRBoptimizeasync() for Compute Server
- Fixed issue with calling the MIPSOL callback multiple times for the same solution
- Added workaround for a bug in Java 8 JDK that causes crash for models with a large number of nonzeros in constraints
- Fixed performance issue with automatic threads selection on machines with 17 to 31 cores and hyper-threading
- Fixed various issues with reading *.bas files manually generated by user
- Upgraded to a newer MKL, which fixes the SELinux security text due to a TEXTREL section in the library
- Fixed segmentation fault in handling cycling of QP simplex
- Fixed issue with presolve introducing duplicate indices into SOS2 constraints
- Fixed bug with the fixed model of a model with a non-convex piece-wise linear objective containing non-fixed binary variables
- Fixed numerical issues with handling objective that may lead to wrong answers
- Fixed numerical issue in conflict analysis that may lead to wrong answers
- Fixed bug with querying number of cores on Windows for machines with more than 64 logical processors
- Fixed client/server failure when model update takes too long
- Fixed issue when a compute server node joins a cluster just after leaving it
- Fixed issue causing a compute server to remain in draining mode
Gurobi Optimizer v8.1.1
Bug Fixes
- Fixed bug returning error 10005 in a rare case for multi-objective models on Compute Server.
- Fixed bug with Compute Server on multi-objective MIP models that change to multi-objective LP after presolve.
- Fixed segmentation fault of Compute Server worker due to issue with variable names.
- Fixed wrong model generation on Compute Server with Indicator Constraints in MPS files.
- Fixed bug with empty MST files if problem is not updated before adding MIP starts on Compute Server.
- Fixed segmentation fault when writing unavailable model data (e.g., MIP start if none exists) using Compute Server.
- Fixed bug with a wrong answer due to a presolve reduction.
- Fixed bug with uninitialized memory read in presolve.
- Fixed bug in PSD adjustment for solving QPs with barrier without presolve.
- Fixed segmentation fault in an MIQCP presolve reduction.
- Fixed segmentation fault during QP presolve.
- Fixed bug in a presolve reduction that would cause an infeasible model to become feasible.
- Fixed bug with wrong counting of eliminated columns in a presolve reduction.
- Fixed bug with wrong objective value if a multi-objective MIP reduces to an LP.
- Fixed segmentation fault with using callbacks for a multi-objective model.
- Fixed bug with lazy constraints in multi-objective models.
- Fixed error for querying the solution of an empty multi-objective model.
- Fixed bug with infeasible quadratic constraint leading to incorrect conic reformulation.
- Fixed bug for non-PSD problems that disaggregate into multiple components.
- Fixed segmentation fault in handling QP simplex cycling.
- Fixed wrong answer for an MIQCP if the initial LP relaxation is unbounded.
- Fixed wrong answer due to inconsistency in SOS feasibility tolerance usage for SOS models that decompose into smaller pieces.
- Fixed issue about the fixed model still having non-convex piece-wise linear objective.
- Fixed wrong infeasible result on a model with piece-wise linear objective.
- Fixed bug in the Gomory cut separator for a rare case.
- Fixed bug with the solver appearing to hang in the middle of a MIP solve.
- Fixed segmentation fault in a heuristic for models with only empty rows.
- Fixed integer overflow issues for models with very large numbers of rows or columns.
- Fixed wrong answer in MIP model due to incorrect simplex infeasibility status in phase I.
- Fixed bug with lazy constraints.
- Fixed tuning tool running on local machine with multiple models.
- Fixed bug with distributed tuning aborting with ‘Non-PSD error is encountered’ on MIQPs or MIQCPs.
- Fixed segmentation fault when calling GRBaddconstrs() with RBeg[0] > 0.
- Fixed bug with Python 3 where model attribute -completion prints garbage.
- Fixed issue with name allocations causing huge overhead with Matlab R2018b.
- Fixed issue with combining distributed solves with concurrent solves.
- Fixed distributed concurrent MIP.
- Fixed bug with recording and replaying for huge models.
- Fixed issue with updating MIP starts in recording.
- Fixed license transfer message and processing with grbgetkey.
- Fixed cluster node state processing when a node could incorrectly become DEGRADED or FAILED.
- Fixed bug in Python API where Cloud solve does not output minimal log when opening the connection.
Gurobi Optimizer v8.1.0
Bug Fixes
- Fixed issue in presolve on models that contain a piece-wise linear structure.
- Fixed numerical issue in the clean-up of MIP solutions.
- Fixed potential segmentation fault in heuristic if QCP relaxation is used for an MIQCP.
- Fixed grbgetkey writing wrong line to license file.
- Fixed bug with memory management of row names.
- Fixed bug with lazy constraints added via callback.
- Fixed issue with bound flipping in piece-wise linear simplex algorithm.
- Fixed wrong answer from piece-wise linear dual simplex algorithm.
- Fixed segmentation fault on piece-wise linear model if presolve is turned off.
- Fixed tuning on multi-objective models that cannot be solved to optimality.
- Fixed bug when adding new variables after having called setObjectiveN().
- Fixed issue with wrong optimal value when objective constant is modified after having solved the model.
- Fixed issue with resetting and then setting parameters in concurrent environments with Compute Server.
- Fixed segmentation fault with adding cuts or lazy constraints from within the callback on multi-objective models.
- Fixed bug with lazy constraints from callback being ignored for a solution that is found by a trivial heuristic for a multi-objective callback.
- Fixed bug with zero-length cuts added in callback.
- Fixed segmentation fault when writing models with lazy constraints to mps file.
- Fixed performance issue in probing with variables of infinite domain size.
- Removed wrong and confusing additional LP presolve output in log file.
- Fixed very rare wrong answer bug due to a missing clean-up in presolve.
- Fixed issue with empty log files if Concurrent MIP is used with Concurrent environments.
- Fixed issue with setting parameters in multi-objective environments on Compute Server.
- Fixed very rare hang in QP simplex for numerically troublesome models.
- Fixed wrong answer due to numerical issues if problem decomposes into multiple smaller sub-problems.
- Fixed segmentation fault in a heuristic for MIQP models.
- Fixed crash when calling GRBterminate() at the same time as other API routines when Compute Server is used.
- Make license check thread safe.
- Fixed a numerical issue in quadratic constraint propagation.
- Fixed numerical issue with small coefficients in knapsack presolve reduction.
- Fixed segfault when querying the presolved model of an LP with piece-wise linear objective.
- Fixed very small memory leak when reading variable hint files.
- Fixed issue with executing user callback concurrently from within partition heuristic.
- Fixed issue with uncrushing solution through parallel column reduction if one is integer and the other is continuous.
- Fixed small memory leak in MPS reader.
- Fixed small memory leak in barrier dense column handling.
- Fixed uninitialized memory read in decomposition code for MIPs.
- Fixed ERROR 10005 for applying barrier without presolve on LPs with piece-wise linear objective.
- Fixed bug with cutting off optimal solution due to cutoff bound calculation for MIP models with very large objective coefficients.
- Fixed bug with wrong slack signs after QP simplex was applied.
- Fixed issues with creating many connections to Compute Server in short time.
- Fixed rare bug in uncrushing a solution for a certain presolve reduction.
- Fixed potential segfault when running gurobi_cl with a gurobi.env that contains a line with “ResultFile”.
Gurobi Optimizer v8.0.1
Bug Fixes
- Fixed final cut count provided by Compute Server.
- Fixed performance bug in Gomory Cuts for cases with many fractional variables.
- Fixed bug with empty quadratic constraint when presolve removes all columns.
- Fixed issues with using non-default Python on macOS.
- Fixed some inconsistencies in Python parameter help texts.
- Fixed an issue in presolve for models with piece-wise-linear structure.
- Fixed bug with rejecting ‘inf’ values in Python API.
- Fixed issue with model::printAttr in Python API.
- Throw error instead of ignoring variables in LP format files that have the same name as one of the LP format keywords.
- Fixed issues with the Python logger module.
- Fixed segmentation fault with MIQCPs.
- Fixed issue with not providing dual ray even if InfUnbdInfo parameter is set.
- Fixed issues with three or more identical break-points in piece-wise-linear objective function definition.
- Fixed distributed tuning without a Compute Server.
- Fixed SolutionCount attribute for continuous models.
- Fixed double log line output with Python and Compute Server.
- Fixed segmentation fault due to interplay of user cutting planes from callback and domain propagation at nodes.
- Fixed tiny memory leaks in Java API.
- Fixed an issue with getting QCP duals on AIX.
- Fixed issues with threading callback.
- Fixed API version display in replay.
- Fixed bug with the “gurobi_cl –group” command.
- Fixed bug with ServerTimeout not being passed to Compute Server.
- Fixed inconsistency with token license server and “ServerTimeout” parameter.
- Fixed bug with BestObjStop and maximization objective sense.
- Fixed bug with Compute Server producing empty files when exporting a large model to disk.
- Fixed wrong answer bug with symmetry reductions.
- Fixed issues with tune() and computeIIS() functions in various APIs if update() has not been called before.
- Fixed issue with disconnected component presolve reduction and piece-wise linear objectives.
- Partly addressed bug with inconsistent final objective value for MIQPs by giving user additional control to the diagonal adjustment using the PSDTol parameter.
- Fixed performance bug for models with very long constraints that lead to many implications.
- Fixed bug in presolve substitution that may lead to wrong answers.
- Fixed numerical issue in dual presolve reduction that converts continuous variables to binaries.
- Fixed potential wrong answers due to objective propagation at the nodes.
- Fixed uncrush issue for barrier QCP solves that leads to “Requested data not available” error if presolve removed all columns.
- Fixed numerical issue with MIQCP reduction that leads to coefficient cancellation.
- Fixed numerical issue in domination presolve when this leads to tiny coefficients.
- Fixed bug with not catching Ctrl-C in Python for tune().
- Fixed wrong termination of distributed MIP due to issue in crushing solutions.
- Fixed grbgetkey that was saving the license file in a wrong default location on linux systems.
- Fixed self-signed certificate generation that could not be used from Windows clients.
- Fixed handling of unicode in hostname.
- Fixed access to grb_rs Swagger documentation on some platforms.
- Fixed issue that prevented grb_rs service restart on Windows after a reboot.
- Fixed issue that prevented client to stop polling when a job in queue was aborted.
Gurobi Optimizer v8.0.0
Bug Fixes
- Fixed an issue with CURL producing a segmentation fault when multiple cloud environments are created in parallel.
- Fixed inconsistent solution count if model is solved in presolve and a MIP start is used.
- Fixed a numerical issue in simplex that could lead to wrong answers for MIP.
- Added missing documentation for error code 40001.
- Fixed segmentation fault in Java when calling optimizeasync() with a callback.
- Fixed an issue with reusing an old solution as a MIP start of a modified model.
- Fixed an issue with MultiObjPre=2 declaring a multi-objective model infeasible.
- Fixed an issue with cut management for cuts added via the callback.
- Fixed a segmentation fault with writing an *.ilp file for an infeasible multi-objective model.
- Fixed a segmentation fault with querying Farkas info for an infeasible model.
- Fixed a small memory leak due to locale settings on Windows.
- Fixed a bug with symmetry handling on problems with multiple components.
- Fixed an issue with lineariizing MIQP models that may lead to wrong answers for MIQPs.
- Fixed a segmentation fault with calling SetPWLObj without update().
- Fixed floating point exception in presolve for Euclidean bound strengthening if very large bounds for integer variables are involved.
- Fixed issue with reduced cost propagation cutting off optimal solution if bound strengthening was applied after the LP solve.
- Fixed issue with discarding primary objective function for multiple-objective models if update() is not called after increasing model.numobj.
- Fixed a segmentation fault with concurrent MIP and MIP starts.
- Fixed issues in MPS reader if lazy constraints and quadratic or indicator constraints are in the model.
- Fixed wrong answer for decomposable models due to contradictory bounds from dual bound strengthening.
- Fixed performance issue with AddTerms() in .NET API.
- Fixed issue with handling free super-basic variables in primal simplex.
- Fixed numerical issue in presolve when using tiny activities for coefficient reduction.
- Do not dualize the LP model if dual presolve reductions are turned off.
- Fixed a bug in a dual reduction of branching.
- Fixed an issue with using MIP starts for multi-objective models.
- Fixed bug with losing the lazy attribute of constraints when copying a model.
- Fixed bug with the tuner ignoring the lazy attribute of constraints.
- Fixed issues with a multi-objective model that only contains a single objective.
- Fixed the transformation of certain types of indicator constraints, which could have lead to wrong answers.
- Fixed an infinite loop in the *.lp file reader for erroneous files with empty constraints.
- Fixed a segmentation fault if gurobi_read() in the MATLAB API is called without arguments.
- Fixed a segmentation fault for MIQCP models that are on the boundary of PSDness.
- Fixed a bug with cleaning up the solution of a model that contains quadratic constraints and a piecewise linear objective.
- Fixed problem with scaling in a multi-objective setting, when the primary model reduces to an LP, while the secondary model is a MIP.
- Fixed an issue in the IIS code where a minimal IIS is declared to be not minimal.
- Throw an error when reading NaN values from an *.lp or *.mps file.
- Fixed a segmentation fault in the *.lp file reader for multi-objective models.
- Fixed bug that GRBfeasrelax() and GRBfeasibility() did not remove a piecewise linear objective.
- Throw an exception when setObjectiveN() is used with a quadratic term in Python.
- Fixed a bug in the aggregator that may lead to a wrong answer.
- Fixed a bug with ignoring GRBterminate() calls from a multi-objective callback if individual environments for the objectives are used
- Fixed a bug in presolve that may lead to infeasible solutions being reported as feasible in the presolved model.
- Fixed a bug in probing where two contradictory constraints on unbounded variables lead to a chain of bound improvements that yield bounds that are too large for floating point representation.
- Fixed an uninitialized memory read in node probing for SOS constraints that may lead to wrong answers.
- Fixed a very rare bug in the semi-sparse LU factorization of the simplex algorithm.
- Fixed a bug in the presolved model returned my model.presolve() with unsupported cone constraints by converting them into quadratic constraints.
- Fixed the segfault with mac64 Gurobi package for Anaconda 5.x python 3.6 version
Gurobi Optimizer v7.5.2
Bug Fixes
- Fixed unknown attribute error for a multi-objective model, if a solution violates by more than tolerance.
- Fixed segfault for reading model in MATLAB and using Compute Server.
- Fixed a token server license bug, token not released, when MATLAB returns an error.
- Fixed a bug in the disconnected component code, if BestObjStop is specified.
- Fixed a bug in crossover basis code, ignoring time limit.
- Fixed a bug in managing cut table.
- Fixed a bug for parameter IgnoreNames.
- Fixed a documentation issue for NodeMethod.
- Fixed a wrong behavior for tuning on multi-objective models.
- Fixed a callback bug in setting CutOff in the disconnected component code.
- Fixed a bug writing lazy constraints in LP and MPS formats.
- Fixed a bug incorrectly requiring to match Server attribute in capitalization.
- Fixed a bug in creating GRBenv, if it runs out of memory.
- Fixed a wrong answer bug for piecewise linear variables with negative infinite lower bound.
- Fixed wrong FILEVERSION in gurobi75.dll.
- Fixed a bug returning interrupt incorrectly for models with lazy constraints.
- Fixed an issue in the installer for Mac.
- Fixed a bug returning a solution with undefined values, when a MIP start with undefined values is provided.
- Fixed a documentation issue about multi-objective behavior.
- Fixed a bug with different objective value, after solution is uncrushed, for models with general constraints.
- Fixed a bug, where multi-objective env doesn’t work for Java API.
- Fixed a numeric issue, which may cause hang in QP simplex and MIQP.
- Fixed a license issue in R API.
- Fixed an issue with the tuner trying strange values for the StartNodeLimit parameter.
- Fixed an issue, where Gurobi doesn’t work for MATLAB R2017a or newer versions on Mac.
- Fixed an issue in the Python API with passing a list as names to the m.addVars() method.
- Fixed a bug not handling solutions cut off by lazy constraints correctly.
- Fixed a numeric issue in presolve aggregation.
- Fixed a bug, where IIS doesn’t converge.
- In addition, 7.5.2 also includes the following enhancements:
- Supports problem-based optimization, a new Optimization ToolBox feature of MATLAB R2017b.
- Allows users to combine MultiObjPre > 0 and Presolve = 0.
- Allows use of const char *name in C API for GRBsetobjectiven.
- Improves various parts of the documentation.
Gurobi Optimizer v7.5.1
Bug Fixes
- Fixed bug where a compute server client hangs or issues network error after server has been running for a while.
- Fixed log bug for models with disconnected components.
- Fixed inconsistent solution count when MIP Start is used and the model is solved by presolve.
- Fixed deadlock in the unusual situation of unprocessed failed nodes.
- Fixed a few callback issues.
Gurobi Optimizer v7.5.0
Bug Fixes
- Fixed a few issues in Python API related to addVars, attributes and tuning log.
- Fixed numerical issues in inverse modular presolve reduction, barrier for nodes.
- Fixed potential divide-by-zero in some reductions of conflict analysis.
- Added missing PSD check for quadratic models if presolve is off.
- Fixed check for SolutionLimit parameter in certain situations.
- Fixed error code if X attribute is queried for infeasible model.
- Fixed bug with wrong objective values in barrier log and callback for maximization models.
- Fixed log output about presolve reductions when root LP is dualized.
- Fixed bug with wrong objective sign for simplex callback during crossover for maximization models.
- Fixed infeasible/unbounded status when LP is dualized.
- Fixed bug with updating QP warmstart basis with UpdateMode 1.
- Fixed Visual Studio 2015 project template files.
- Fixed bug with ignoring objective constant in MATLAB when model is read using gurobi_read.
- Fixed bug with maximization multi-objectives.
- Fixed bug with keeping fractional bounds even if presolve finds a variable to be integral.
- Fixed a bug with MIP starts and semi-integer or semi-continuous variables.
- Fixed IIS computation for multi-objective models.
- Fixed infinite loop when cutoff and MIPGap=0 are set.
- Fixed bug with losing general constraint names if one without a name is added.
- Fixed shared library installer issue on latest Mac OS.
- Fixed bug with losing solutions of last solve in multi-objective optimization if interrupted.
- Fixed bug with concurrent LP changing original user model with piece-wise linear objective.
- Fixed issue with QCP model becoming non-PSD inside IIS algorithm.
- Fixed bug in IIS where Gurobi does not relax fixed binary variables.
- Fixed wrong answers for a few rare cases, like combinations of quadratic, general and SOS constraints and piece-wise linear objective, having lazy constraints, bugs in uncommon presolve reductions.
- Fixed a few rare segmentation faults, with very long problem name or NodeFileDir string, in sequential MIP solves, when simplex switches to quad precision, when combining lazy constraints and SearchMode > 0, when merging parallel rows for multi-objectives, when running into numeric trouble in “DegenMoves” for SOS models, having both piece-wise linear objective and general constraints.
- Fixed bug handling error cases in simplex, like out of memory.
- Fixed bug with solutions that violate integrality in MIQP and MIQCP.
- Fixed bug where GRBresetparams was not recorded in the recording file.
- Fixed very rare case of a non-deterministic behavior in simplex.
- Fixed bug when using a user cutoff value for maximization problems.
- Fixed bug with declaring model infeasible if user cutoff is set slightly above optimal value.
- Fixed bug with reading large recording files on Windows.
- Fixed bug with calling the callback on a disconnected component.
Gurobi Optimizer v7.0.2
Bug Fixes
- Fixed potential issue in simplex with switching from quad back to double precision.
- Fixed crash for very large models in crossover basis construction due to integer overflow.
- Fixed log output of multi-objective model solves on compute server.
- Fixed potential very long delay in presolve.
- Fixed an issue with local bound changes derived by orbital probing.
- Fixed bug with SOS constraints and symmetry substitution.
- Fixed check for that piece-wise linear obectives cannot be used within multi-objective models.
- Fixed bug with pending changes to Q objective not being discarded if Q is deleted.
- Fixed potential infinite loop for disconnected component solves if SubMIPNodes is set to 0.
- Fixed performance issue with setting parameters in Python.
- Fixed very rare segmentation fault in simplex when numerical issues are encountered for a mip model.
- Fixed bug in C++ API getQCRow() method.
- Fixed an issue with concurrent LP applied to model with piece-wise linear objective.
- Fixed bug in presolve that may have introduced infeasible solutions.
- Fixed problem with dir(o) in Python 3.5.
- Fixed very rare wrong answer issue with barrier applied to piece-wise linear objective models.
- Don’t terminate a running token server if it is unable to read the license file.
- Fixed “RuntimeError: maximum recursion depth exceeded” for addVars() in Python.
- Fixed gap computation for near zero objective values.
- Fixed bug where fixed binary variables were not included in the returned IIS.
- Fixed issue that in rare cases the dual bound and incumbent solution is not displayed in node log.
- Fixed several documentation issues in C++, Java or Python documentation, about general constraints, multi-objective, etc.
- Improved numerics in presolve, cut separation and conflict analysis.
- Improved error messages for cloud solves.
- Improved handling of SSL certificates on Linux for cloud connections and include SSL certificate for cloud solves in distribution.
- Improved error messages for querying multi-objective attributes.
- Improved token server error handling when the OS limit on the number of open file descriptors is reached.
- Improved warning messages in LP file reader.
- Added IISMethod=3 parameter setting.
- Added option to turn on CURL verbose mode via environment variable.
- Allow to exchange the .NET assembly with a newer minor or technical Gurobi version without the need to recompile all dependent assemblies.
- Do not include infinite right-hand-side values in model statistics report.
- Return error if attributes are queried for multi-objective models that are unavailable in the multi-objective context.
- Use default weight of 1 for all objectives in multi-objective optimization.
Gurobi Optimizer v7.0.1
Bug Fixes
- Fixed an unusual error when reading LP file with SOS constraints.
- Fixed a namespace pollution issue in Python library.
- Fixed a recording issue for GRBwrite().
- Fixed model update issues for multi-objectives and for range constraints.
- Fixed a bug in translating “And” constraints with fixed variables.
- Fixed a message issue on multi-objective models for using compute server.
- Fixed a tuplelist serialization issue in Python library.
- Fixed a non-overlapped singleton symmetry bug.
- Fixed a concurrent MIP log issue, every node instead of every 5 seconds by default.
- Fixed potential crash in Windows token server client.
- Fixed a token server issue where interrupting a client could lead to a token being lost.
Gurobi Optimizer v7.0.0
Bug Fixes
- Fixed handling lower bounds for semi-variables that are less than zero.
- Fixed handling of semi-variables with empty semi-domain.
- Fixed possible crash for SOCP models.
- Fixed some issues with compute server and recording feature on 32 bit systems.
- Fixed SARHSLow and SARHSUp statistics for equations.
- Fixed minor issues in MIP solution clean-up.
- Fixed a memory leak in API replay.
- Fixed “Runtime” attribute for concurrent LP.
- Fixed a bug in strong branching.
- Fixed bug with UpdateMode=1 and ranged rows.
- Fixed bug in .NET SetObjective() method.
- Fixed crash with piece-wise linear simplex on unbounded models.
- Fixed usage of “ResultFile=*.ilp” for infeasible models.
- Fixed issue with adding ranged constraints and new variables without intermediate update() call in OO APIs.
- Fixed issue with writing numbers to *.mps and *.lp files if user uses a non-C LOCALE setting.
- Fixed issue with more than 2 billion non-zeros in MATLAB API.,
- Fixed bug with non-deterministic node counts on small knapsack models.
- Fixed issue with spaces in file names on Linux.
- Fixed issue in presolve for quadratic constraints with linear terms.
- Fixed bug that could lead to wrong answers in very rare situations.
- Fixed a bug in constraint strengthening.
- Fixed bug in crushing solutions that could lead to rejection of a feasible user solution from a callback.
- Fixed bug in MinRel heuristic that could lead to early termination for models with disconnected components.
- Fixed an issue with multiple Gurobi versions installed on Windows that lead to always starting the version that was installed last.
- Fixed potential buffer overflows for very long error messages (e.g. due to very long variable names).
- Fixed querying “Xn” attribute multiple times when “SolutionNumber” parameter is modified between the calls.
- Fixed bug with adding quadratic or SOS constraints and removing variables without intermediate update() call.
- Fixed an issue with the IIS algorithm on models that contain only empty SOS constraints.
- Fixed potential crash in barrier for models with more than 2 billion non-zeros running on 32 bit systems.
- Fixed bug in heuristics running on the original model when the model contains semi-continuous or semi-integer variables.
- Fixed potential non-deterministic behavior for parallel solves of unbounded models that contain SOS constraints.
- Do not generate the default “gurobi.log” file if gurobi_cl is used with a custom “LogFile=…” parameter setting.
- Fixed a bug with presolve turning a PSD Q matrix into non-PSD if variables get fixed that are member of an SOS constraint.
- Fixed bug with MIP Starts for MIQCP models.
- Fixed potential wrong answer, crash or hang in QP simplex for numerically bad situations.
- Fixed very unlikely issue where simplex could declare a zero-objective model to be unbounded.
- Fixed issue with delayed MATLAB logging.
- Fixed issue when running the tuning tool on a pure LP model with maximization objective sense.
Gurobi Optimizer v6.5.2
Bug Fixes
- Fixed bug with adding ranged rows and then adding new variables without calling update() in between.
- Fixed interplay of UpdateMode=1 parameter with compute server and record/replay feature.
- Fixed potential segfault with adding cuts.
- Fixed bug with warm-starting a modified QP with presolve disabled.
- Fixed bug with having multiple environments or models in replay feature.
- Fixed numeric issue with tightening an infinite bound to a finite but very big bound in presolve.
- Fixed problems with MIP starts for semi-continuous models.
- Fixed bug with deleting an environment pointing to a compute server in Python.
- Fixed bug with linearizing quadratic terms in MIQPs involving integer variables.
- Fixed non-determinism in root node parallelism.
- Fixed bug with maximizing QPs.
- Fixed issue with querying quadratic constraints that do not have linear terms.
- Fixed presolve bug with fixed semi-continuous or semi-integer variables.
- Fixed wrong infeasible/unbounded status if model is dualized (PreDual=1).
- Fixed issue with end of replay file in Python.
- Fixed issue on AIX where querying processor count could leave a pipe open.
- Fixed issue with writing to an existing 7z file.
- Fixed valgrind issue for a client that connects to a compute server.
- Fixed bug with lost solution in distributed MIP.
- Fixed crash in Python when passing strings as numbers.
- Fixed issues originating from parallel garbage collection in Java and .NET.
- Fixed small memory leak when writing variable hints to a *.hnt file.
- Fixed a replay/compute server bug for models with range rows.
- Fixed bug in Java, C++, and .NET with adding an expression to itself.
- Fixed bug with the remove() method of quadratic expressions in C++, Java, .NET, and Python, which did not remove the given variable from the linear part of the expression.
- Fixed bug with models having more than 2 billion non-zeros when using a token server or a compute server license.
- Fixed bug when querying the objective constant on models with piece-wise linear objective terms.
- Fixed memory issue and segfault for models that contain continuous variable aggregation possibilities.
- Fixed bug with distributed MIP giving an error 10005 for infeasible models.
- Fixed bug with modifying bounds after having solved a piece-wise linear model.
- Fixed bug with overshooting time limit in presolve for models that lead to many substitutions.
- Fixed wrong answer with MIQCP models that have an unbounded root relaxation when using outer approximation.
- Fixed potential segfault in out-of-memory situations.
Gurobi Optimizer v6.5.1
Bug Fixes
- Fixed minor bug with long user names in licensing.
- Fixed issue with NULL arguments to attribute and parameter query methods of compute server.
- Fixed issue with querying variables and constraints from compute server.
- Exit with SUBOPTIMAL status from barrier instead of getting into a seemingly infinite loop in barrier for some numerical issues.
- Fixed bug where barrier could exit due to numerical issues and leave a permuted user model behind.
- Minor fix in distributed MIP for switching from racing ramp-up to parallel search phase.
- Record basis and PStart/DStart change in recording file.
- Fixed wrong answer bug due to disconnected component solves and implied bound cuts.
- Fixed bug with wrong declaration of SUBOPTIMAL for MIQCPs.
- Fixed problem with printing an empty tuplelist in Python API.
- Abort earlier if QP simplex runs into numerical issues.
- Use hard-coded path to libaes65.so on Mac to fix bug in newer MacOS versions.
- Fixed bug with accepting infeasible MIQCP solutions from fix-and-dive heuristic.
- Only remove zeros and tiny coefficients from internal copy of MIQCPs instead of modifying user model.
- Fixed bug in SARHSLow and SARHSUp computation for equations.
- Make TuneOutput=3 display solve logs in Python.
- Change default value for BarIterLimit to 1000 to fix a seemingly infinite loop.
- Fixed license manager issue on Windows.
- Fixed an integer overflow in presolve for very large models.
- Fixed issue with overwriting record file on Windows.
- Fixed segfault when replaying recorded file with UpdateMode=1.
- Fixed license manager issue on AIX.
- Output “model solved by another algorithm” instead of “Time limit exceeded” when barrier is interrupted by simplex in concurrent LP.
- Do not assign license token to malformed token requests – fixes issues with port scanners.
- Do not fix penalty variables in presolve if dual reductions are turned off.
- Fixed problem with expr.remove() in Python.
- Fixed problem with facility.py example.
- Add support for simple_triplet_matrix in row-major order in R interface.
- Move Record parameter to integer parameter enum in .NET interface.
- Fixed potential issue for models with PWL objectives and variables with -infinity lower bounds.
- Return AttributeError instead of GurobiError in Python interface when user requests a non-existent attribute.
- Extend licensing to support new Linux network interface naming convention.
- Modify barrier progress check.
- Fix potential problem when using UpdateMode=1 and setObjective() in the object-oriented interfaces.
- Fix a potential segfault for unbounded models with PWL objectives
Gurobi Optimizer v6.5.0
Bug Fixes
- Fixed an issue on Mac OS X 10.11 (El Capitan) where System Integrity Protection caused the Python interface not to load.
- Fixed a bug in the Python interface, where LogToConsole=0 would not disable some output.
- Added missing DistributedMIPJobs parameter to Java and C++ interfaces.
- Fixed an integer overflow on models with a large number of implied bounds.
- Fixed a segfault on QCP models when use the parameter setting PreDual=2.
- Fixed an issue that can occur when modifying indefinite QCP models to be positive semi-definite.
- Fixed an issue with lazy constraints on models with a few variables.