You’ll find instructions for setting up your Gurobi license in this document, as well as a list of supported platforms, and Release Notes and guidelines for converting existing Gurobi code to run with this new version. Once you have finished browsing this document, you should refer to the Detailed Release Notes, the Quick Start Guide, the Example Tour, the Reference Manual, or the Remote Services Reference Manual to get started using the Gurobi Optimizer.

Obtaining Your License

Gurobi Optimizer 9.5 uses the same licenses as versions 9.0 and 9.1, so if you already have a Gurobi 9 license, there’s no need to obtain a new one. Otherwise, you will need to visit the Gurobi License Center. If you are a commercial user under maintenance, you should see your Gurobi 9 license under Current Gurobi Licenses. If you would like to request a free academic license, you can do so from the Free Academic License page. Once you have a license on the Gurobi web site, you will need to follow the instructions for installing a license in the Quick Start Guide.

Supported Platforms for Version 9.5

Platform Operating System Compiler Notes
Windows 64-bit (win64) Windows 10, 11, Windows Server 2012 R2, 2016, 2019, 2022 Visual Studio 2017 Use gurobi_c++md2017.lib (e.g.) for C++
Windows 10, 11, Windows Server 2012 R2, 2016, 2019, 2022 Visual Studio 2019 Use gurobi_c++md2019.lib (e.g.) for C++
Linux® x86-64 64-bit (linux64) Red Hat® Enterprise Linux 7 (and the corresponding CentOS distribution), 8 GCC >= 4.8 Use libgurobi_g++5.2.a for newer C++ compilers
SUSE® Enterprise Linux 12, 15
Ubuntu® 18.04, 20.04
Amazon Linux 2
macOS 64-bit universal2 (macos_universal2) 10.15 (Catalina), 11 (Big Sur), 12 (Monterey) Xcode 12/13
AIX® 64-bit (power64) AIX 7.1, 7.2, 7.3 XL C/C++ 9 Due to limited Python support on AIX, this port does not include the Interactive Shell or the Python libraries.

Note that the previous mac64 port has been replaced by the new macos_universal2 port, which supports both Intel and Apple processors.

Additional Supported Platform Information

Gurobi 9.5 supports the following language/platform versions:

Language Version
Python 2.7, 3.7, 3.8, 3.9, 3.10
MATLAB R2019a-R2022a
R 4.2
JDK 8, 11, 17
.NET Core 3.1, 6.0

Release Notes for Version 9.5

In addition to performance enhancements, Gurobi 9.5 adds the following new features:

  • Norm General Constraint: Our existing general constraint feature allows you to add common higher-level constraints using a convenient shorthand. This release includes a new vector norm constraint, which allows you to set one decision variable in your optimization model equal to the norm of a list of decision variables. A number of norms are supported: the 0-norm, 1-norm, 2-norm, and the infinity-norm. See the general constraint discussion in the Reference Manual for more information.
  • NLP Heuristic for Non-Convex Quadratic Models: We have added a non-linear barrier solver for quickly finding feasible solutions to non-convex quadratic models. This is controlled with the new NLPHeur parameter.
  • Work Metric: We now include a deterministic work measure. The new Work attribute allows you to query the amount of work performed in an Optimize call, the new WorkLimit parameter allows you to terminate optimization when the specified work limit has been exceeded, and the new CB_WORK callback value allows you to track this new work metric from a callback.
  • Memory Limit: The new MemLimit parameter allows you to terminate optimization when the memory used by the optimization exceeds the specified value.
  • New Cut Type – Lift-and-Project Cuts: This release includes a new cut type, lift-and-project cuts. The new LiftProjectCuts parameter provides some control over the generation of these cuts.
  • Force Constraints Into or Out of an IIS: You now have more control over the Irreducible Infeasible Subsystem (IIS) algorithm. Specifically, you
    can indicate that certain constraints or bounds should be forced into the IIS, even if the resulting subsystem is not
    minimal. Similarly, you can exclude constraints or bounds from the IIS. This is controlled with the following new attributes:
    IISLBForce,
    IISUBForce,
    IISConstrForce,
    IISSOSForce,
    IISQConstrForce, and
    IISGenConstrForce.
  • IIS Callbacks: New IIS callbacks allow you to programatically track the progress of the IIS algorithm.
  • SOS Encoding Options: SOS constraints can now be formulated in multiple different ways internally, which can sometimes give better performance.
    This is controlled with the new PreSOS1Encoding and
    PreSOS2Encoding parameters.
  • New Callback for Exiting the NoRel Heuristic: The new Proceed callback method allows you to smoothly transition from the NoRel heuristic to the standard MIP search.
  • Lazy Constraints in the NoRel Heuristic: Lazy constraints are now supported in the NoRel heuristic. You will receive solution callbacks and be given the opportunity to cut off those solutions with lazy constraints.
  • New Simplex Warm Start Options: Several new options are available for starting simplex from a previous solution. Options are chosen using the new LPWarmStart parameter.
  • Writing Dualized Models: The new .DUA and .DLP file formats allow you to write the dual formulation of an LP problem.
  • Tuning Tool Enhancements: We added a number of additional controls to our tuning tool, including
    control over termination (TuneTargetMIPGap and
    TuneTargetTime), and control over how runtimes from multiple trials
    are aggregated (TuneMetric).
  • New Parameters and Attributes: In addition to the attributes and parameters directly tied to the new features above, there are three additional new attributes:
    • MaxVio New attribute that gives the maximum (unscaled) constraint violation for the computed solution.
    • ConcurrentWinMethod New attribute that indicates which algorithm prevailed in a concurrent LP solve.
    • PoolIgnore New attribute to select variables that should be ignored when checking whether two solutions differ in the solution pool.

Code Conversion from Version 9.1

If you use Python matrix variable objects (MVar) or matrix constraint objects (MConstr), indexing has changed slightly. When accessing a single element, Gurobi 9.5 will now return the corresponding variable or constraint object rather than
an array of shape (1,). See the section on Indexing of MVar and MConstr objects in the detailed release notes for details.

Beyond this, programs that were originally written for version 9.1 of the Gurobi Optimizer generally won’t require any code changes to use version 9.5. If you’d like to use the new features, some code changes are required. We have deprecated some methods, which may require you to make changes to your code in a future version. Details are available in the detailed release notes.

License Agreement

Note that this software is covered by the Gurobi End User License Agreement. By completing the Gurobi installation process and using the software, you are accepting the terms of this agreement.

Thank you for using Gurobi products!