||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
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
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
- 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
- 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
- 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
- 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
- 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
- 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.
- 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.
- 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
- 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
- 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
- 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".
- 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.
- 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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.