≡ Menu

First Look – Gurobi Optimization


Gurobi is the latest entrant to the mainstream optimization engine market (IBM/ILOG CPLEX and FICO Dash being the two main players with CPLEX having by far the largest market share). Gurobi was founded by Zonghau Gu, Ed Rothberg and Bob Bixby in 2008. The three of them were instrumental in the development of  CPLEX, the established player in the optimization market, and have PhD backgrounds in Operations Research, Computer Science and Industrial Engineering. They released a limited release in 2009 with first commercial version later that year and have shipped a new release every 6 months or so as part of a defined roadmap leading to version 4 in November 2010.

The company is focused on three core things:

  • Delivering the best math programming solvers
    And providing the best support for people who know how to do math programming – support is as important to them as the product itself
  • Being a flexible partner in terms of licensing and pricing
    For instance allowing consultants to transfer licenses to their customers when the modeling is done and publishing a straightforward price list
  • Being a technology leader in math programming technology

Their objective was not just to build a better algorithm, it was more important to build a better, more transparent optimization software business model. In particular, they wanted to make it reasonable to use optimization in more projects by reducing the cost so that optimization is not only something usable for very large projects.

(As an aside this is a serious issue across the decisioning technology landscape. Pricing models for rules, optimization and analytics have developed a focus on large, high value projects. Now companies have become “believers” and want to make business rules, analytics, optimization part of every project but the pricing models don’t scale down to these smaller projects. Some adopt open source options, some reluctantly write code. But the market needs to adapt and offer pricing models that work even for these smaller projects.)

Anyway, the Gurobi product set consists of Solvers with all the standard features. One for Mixed-Integer Programming – deterministic, parallel, supports multi-core machines and quadratic programming – and a set for Linear and Quadratic Programming – dual and primal simplex, parallel barrier. In addition there is a set of APIs (command-line, Python interactive, C/C++/Java/.Net/Python callable libraries). Interestingly they also have a cloud offering on Amazon EC2 that offers the full development libraries. This allows you, for instance, to start with a trial license to develop the application and then move the model to the cloud to run in a very large memory machine. After that you could move it to your own server, keep using the cloud etc.

They have a wide range of partners –like Frontline Solvers (Excel interface) and the Microsoft Solver Foundation, Matlab and Python interfaces both commercial and non-commercial, as well as the modeling language vendors (AMPL, GAMS, Maximal, and Paragon). Between the October 2009 release and the end of 2010 they sold to about 150 commercial companies as well as about 25 academic sales (in addition to the academic program). They have more customers in electrical power than anything else followed by other energy areas, mining and banking as well as a wide range of other industries. Example references include ABB, Reservoir Labs, Biarri and others.

One of their motivations is trying to broaden the reach of optimization. As a result they have done a number of interesting things:

  • They made multi-core parallelism standard at no charge before anyone else
  • They offer free-trial licenses with automated download and license generation (500 variable by 500 constraint size limit is the only restriction) – check out http://gurobi.com/html/freetrial.html to request an account and download it yourself.
  • They have an academic program free for single user licenses with a very automated download and an automated verification based on you logging in through a university network. This has resulted in 5,700 licenses with 60% outside the US and 50% outside the traditional Operations Research community – mirroring a general shift to having people without Operations Research PhDs build these models.
  • Gurobi cloud – pay as you go optimization.

The core products have evolved steadily with each release improving performance while also broadening the platform and API support. Version 4.0 finished adding to the core programming approaches and is being followed by a version 4.5 with a target of April 2010 that is focused on performance.  Version 5.0 will include second-order cone programming (convex, quadratic constraints).

Gurobi does not have its own IDE or modeling language – it’s a set of programming APIs usable from whatever programming language you are using. Essentially it can be edited and used as part of a programming environment like VisualStudio or Eclipse or Excel. If you want to use MatLab (because you are an engineer who already uses it) you can access Gurobi from there, if you write Java then you can call it from there. Traditional optimization modeling languages, they say, are aimed more at the Operations Research community and as the reach of optimization extends beyond this community to people with more comfort with standard programming languages, using those languages directly becomes an attractive alternative..

One of their key differentiators, finally, is performance. For the Mittelmann LP test (a standard set maintained by an academic) they mark their performance at 10-30% higher than CPLEX. Milttleman also has some MILP and MIQP tests where they have performance between 10% an 30% better on optimality, and more than twice as fast on some other tests. They don’t outperform on Infeasibility but are still working on the performance there. The harder the problem, they say, the better their performance and the bigger the gap. Details can be found on Mittlemann’s site. At the end of the day one of their key strengths they say is the speed to get to a first feasible solution.

Optimization is the third key decisioning technology – along with business rules and predictive analytics – and it is great to see a steady stream of innovation from a challenger like Gurobi despite the strength of the established players.