Gurobi.jl

116 views
Skip to first unread message

Dahua

unread,
Mar 9, 2013, 1:01:31 PM3/9/13
to juli...@googlegroups.com
Gurobi is my favorite LP/QP/MILP solver. 

In various benchmarks, it is comparable to CPLEX and is often substantially faster than open-source solvers. In many of the problems that I have been working on, it is orders of magnitude faster than GLPK and MATLAB's solver and produces solutions of higher quality/reliability.

I created a Julia package Gurobi.jl (https://github.com/lindahua/Gurobi.jl), which ports this solver to Julia.
The package currently supports LP, QP, MILP, and MIQP.

While Gurobi's commercial license is very expensive ($12000 for a single machine single user), academic users can get academic licenses (full functional) for free.

Alessandro "Jake" Andrioni

unread,
Mar 9, 2013, 1:19:49 PM3/9/13
to juli...@googlegroups.com
Does it have any kind of API compatibility with the GLPK package? It'd
be nice to have to be able to change between them seamlessly for
linear programming problems.

Dahua

unread,
Mar 9, 2013, 1:36:21 PM3/9/13
to juli...@googlegroups.com, jake...@gmail.com
I looked a the GPLK package. The interface seems to be a reflection of the low-level GLPK library.
There is also a CLP.jl package for LP. The interface is quite different.

So, it is difficult to comp up with a compatible interface at current point, unless we all agree on a standardized interface.

Dahua

unread,
Mar 9, 2013, 1:41:18 PM3/9/13
to juli...@googlegroups.com, jake...@gmail.com
lain Dunning has MathProg.jl, which tries to provide a consistent and higher level interface.

Maybe you can use MathProj.jl. I will request to add Gurobi backend to that package. 

Miles Lubin

unread,
Mar 9, 2013, 6:57:52 PM3/9/13
to juli...@googlegroups.com
Very cool. The philosophy so far with the GLPK and CLP interfaces has been to expose the low-level interface as directly as possible (including naming conventions) and provide on top of that a simple high-level linprog or mixintprog function. Carlo and I have talked about standardizing the linprog interface and even providing a solver-independent low-level interface, but it hasn't happened yet. This could help push us in that direction.

It should be relatively straightforward to make this work with MathProg as well. We will need something like issue 2444 to handle the optional dependency.

Steven G. Johnson

unread,
Mar 9, 2013, 9:31:11 PM3/9/13
to juli...@googlegroups.com
You might look at the CVX package for inspiration on general ways to formulate convex optimization problems (transparently hooking into different solvers underneath).
Reply all
Reply to author
Forward
0 new messages