This page lists a summary of enhancements for prior versions of Gurobi. Please contact us if you'd like to discuss your specific needs, get help upgrading, or have questions to help you get the most of the lastest version of the Gurobi Optimizer.
If you would like to see a new feature or have us enhance an existing features we'd love to hear from you.
The Gurobi Optimizer 7.0 extends our tradition of providing significant performance enhancements with each new release. The overall performance improvements from v6.5 on models that take more than one second to solve include:
Our Python modeling interface has been greatly enhanced. We provide new methods and classes that further simplify the task of translating mathematical models into efficient implementations.
You can now associate multiple, independent optimization objectives with your model, and then perform either blended or lexicographic optimization on the resulting multi-objective model.
You can now obtain more than just one optimal solution to your MIP model. Specifically, you can now request the N best solutions, or N solutions that are less than a specified gap from the optimal solution.
You can now enter several commonly occurring types of constraints without having to translate them into linear constraints yourself. Specifically, you can now add the following constraint types:
In previous releases, the tuning tool would always try to find settings that minimize the optimality gap. You can use the new TuneCriterion parameter to search for settings that produce the best lower bound, upper bound, or gap.
With the addition of Python 3.5 support on the Mac, Gurobi Optimizer v7.0 now supports all of the most popular Python platforms. You can also now use Gurobi with the Anaconda Python 3.5 distribution for the Mac, with its large number of pre-built libraries to support full application development and included Jupyter Notebook development environment.
In addition to the above enhancements, we've also responded to requests for the following features:
Gurobi 6.5 extends our growing tradition of providing significant performance enhancements with each new release. The performance highlights of this release include:
While we're seeing improvements on the majority of models in our test sets, results on your models may vary. We are happy to help you benchmark your models with Gurobi 6.5. Simply email us at support@gurobi.com.
Our new release allows you to record the sequence of Gurobi commands issued by your program to a file and play them back later. This feature makes it much easier to debug performance issues, to identify leaks of Gurobi environments or models, or to relay the exact sequence of commands your program issued to Gurobi technical support (in case you run into an issue that is difficult to reproduce).
If you have a guess at a high quality solution for a MIP model (for example, from solving a related model), our new variable hint feature allows you to pass that guess to Gurobi. This information is used in the Gurobi heuristics and in branching to guide the search for a new solution. Providing a good guess will often produce a high quality solution much faster.
Gurobi 6.5 provides a new setting that allows you to avoid most calls to the update command, which can simplify your program. In particular, this new lazy update mode allows you to use new variables and constraints immediately, rather than having to wait until after you've called update.
In addition to the above enhancements, we've also responded to requests for the following features:
With version 6.5, Gurobi continues to show its commitment to providing the best solvers, features, and support to help OR professionals succeed with optimization.
Consistent with Gurobi’s history of pushing solver performance levels forward, Gurobi 6.0 offers a broad range of performance improvements:
Obviously, each model is unique so your results may be better or worse than those shown above. We are happy to benchmark your model(s) using Gurobi 6.0.
Gurobi users can now harness the power of multiple independent machines to solve a MIP model in parallel. You simply provide a list of machines that can be used as distributed workers, and Gurobi automatically distributes the work among the available machines. This new distributed MIP solver complements our existing distributed concurrent MIP solver and our distributed tuning tool.
With Gurobi 6.0, you can now explicitly model piecewise-linear objective functions. Piecewise-linear objectives are handled directly by the simplex algorithm, so if you have a continuous model with a convex, piecewise-linear objective, you should see a significant performance boost from using this feature.
In addition to the above enhancements, we've also responded to requests for the following features:
With version 6.0, Gurobi continues to show its commitment to providing the best solvers, features, and support to help OR professionals succeed with optimization.
Consistent with our history of providing continual improvement with each version, we're proud to announce that our new 5.6 release brings significant improvements for both LP and MIP models. Performance testing using our test library, consisting of literally thousands of models, shows significant improvements when measured over a broad range of models in our test set (models that require more than one second to solve), and even larger improvements for harder models (those that require more than 100 seconds to solve):
Obviously, performance improvements will vary across models, with some showing less improvement than the increases listed above and others showing more. Please see our 5.6 Performance Benchmark deck for more details.
As always, we are happy to assist you in obtaining the best possible results from this latest release of Gurobi.
In version 5.5, we introduced a new automatic parameter tuning tool to help users make more effective parameter choices with less effort. With 5.6 we are extending that capability to allow users to explore tuning options for a model not just on one machine, but on as many machines as they have available. This enables a dramatic increase in the amount of tuning exploration possible within a limited amount of time.
What's more, our tuning tool places no limit on the number of machines you can use. You just need one licensed Gurobi Compute Server (which could be a Gurobi Cloud system). Once you have this, you can enlist as many additional machines as you like to help with the distributed tuning task. You can learn more about how this is easily set up on our Distributed Optimization page.
Our new distributed concurrent optimization capability allows users to harness the power of multiple Gurobi Compute Servers to solve a single MIP model more quickly. Each machine works independently, trying different settings in order to introduce additional diversity into the MIP search. By bringing the resources of multiple machines to bear on a single model, this new feature often solves models much more quickly than a single machine alone.
You can learn more on our Distributed Optimization page.
In addition to the above enhancements, we've also responded to user requests for the following features:
With version 5.6, Gurobi continues to show its commitment to providing the best solvers, features, and support to help OR professionals succeed with optimization.
Our new Gurobi Compute Server feature provides an easier way for you to build client-server optimization applications. By transparently offloading the optimization computations from your client machines to one or more servers, this new capability allows you to make more efficient use of your compute resources.
Gurobi Compute Server provides a number of features:
You can learn more on our Gurobi Compute Server Overview page.
The Gurobi Optimizer includes dozens of parameters that can be used to fine-tune the behavior of our optimization algorithms. For many models, parameter changes can improve performance by 50% or more. To help users make more effective parameter choices, version 5.5 includes a new automatic parameter tuning tool. This tool can be used as a stand-alone executable or called directly from the Gurobi programming language APIs.
The new automatic tuning tool runs your model, gathers and analyzes performance information, and then performs a series of experiments with different parameter settings. When the tuning tool is finished, it provides several different parameter recommendations for you to try. The tuning tool includes a variety of configuration options that allow you to customize its behavior.
You can learn more by reading the Automatic Parameter Tuning section of our Reference Manual.
In addition to the above enhancements, we've also responded to user requests for the following features:
With version 5.5, Gurobi continues to show its commitment to providing the best solvers, features, and support to help OR professionals succeed with optimization.
Consistent with our history of continual performance improvements with each version, we're proud to announce the following speed enhancements in 5.1:
Obviously, performance improvements will vary across models, with some showing less improvement than the increases listed above and others showing more. As always, we are happy to assist you in obtaining the best possible results from this latest release of Gurobi.
In addition to delivering significant MIP performance improvements, we've also responded to user requests for the following features:
With version 5.1, Gurobi continues to show its commitment to providing the best solvers, features, and support to help OR professionals succeed with optimization.
Already the technology leader in LP, QP, and MIP, our new QCP and MIQCP solvers allow users to solve problems containing quadratic constraints. The new version supports second-order cones, rotated second-order cones, and more general convex quadratic constraints.
Consistent with our goal of not just offering the features you need, but also providing the best available implementations, our new QCP and MIQCP solvers both provide more than twice the performance of the leading competitor.
Providing tools that let our users work the way they want to work is important to us. As a result, with Version 5.0 we are expanding our available interfaces beyond the already strong support for C, C++, Python, Java, and .NET, to now also include full support for MATLAB and R.
This should come as great news to the rapidly increasing numbers of users building statistical computing applications in R. Also, our new MATLAB interface gives MATLAB users access to a solver that is much more versatile and higher performance than the standard MATLAB offering. While there is already a good 3rd party open source MATLAB interface available, with 5.0 we’ve built one in to help more people get started faster due to its tighter integration, availability across a wider range of platforms, and included Gurobi technical support.
Now Supports Lazy Constraints
Some problems, like the prototypical traveling salesman problem, can have a virtually limitless number of constraints. This can make modeling them very difficult, if not impossible. With Version 5.0 we’ve added strong built-in support for lazy constraints to handle this situation.
Now you can model your problem using a core set of constraints, to keep it manageable, and then during execution add additional constraints based on the set of solutions found. Consistent with how we treat all of Gurobi’s features, our lazy constraints don't require you to shut off parallelism or change the fundamental approach used to explore the search tree.
In addition to solving more problem types and enhanced support for more interfaces, Version 5.0 also includes other feature and performance enhancements:
Improved features for working with infeasible or unbounded models, including:
Additional feature and performance enhancements, including the following:
This release features enhanced Python modeling capabilities, significant improvements in primal simplex performance, improved MIP performance and robustness, and a new sifting algorithm for LP models that have many more variables than constraints. This update includes:
The Gurobi Optimizer 4.5 continues to outperform other optimization solvers on important industry benchmarks. Gurobi consistently solves optimization models faster than either CPLEX or XPRESS, whether using 1, 4, or 12 processing cores. In some benchmarks, Gurobi mean performance is more than 8 times that of the competition. In addition, when time limits are imposed on solution time, Gurobi often finds solutions where other solvers cannot. Faster solution times and greater reliability are important features in an optimization solver, leading to more useful results and increased user productivity.
Professor Hans Mittelmann of Arizona State University publishes a set of standard benchmark results for a wide range of optimization solvers and optimization problem types. On eight different benchmarks, data is provided that allows one to compare the performance of the three leading commercial optimization solvers on linear and mixed-integer programming problems. When the full spectrum of benchmarks is considered, a clear picture emerges: Gurobi Optimizer 4.5 consistently outperforms CPLEX 12.2.0.2 and XPRESS 7.2. Details on these benchmarks can be found on Professor Mittelmann's website, Benchmarks for Optimization Software.
Gurobi dominates on mixed-integer-programming (MIP) benchmarks
The Gurobi Optimizer 4.0 provides Quadratic Programming solvers, improved performance and many new features: