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