Optimization packages for the Julia language.
"Julia is a highlevel, highperformance dynamic programming language for technical computing". It is free (open source) and supports Windows, OSX, and Linux. It has a familiar syntax, works well with external libraries, is fast, and has advanced language features like metaprogramming that enable interesting possibilities for optimization software.
Case study: "Computing in Operations Research using Julia". INFORMS Journal on Computing. [PDF].
JuliaOpt is an organization that brings together packages written in Julia that are related to optimization. All JuliaOpt packages should be highquality, documented, tested, support the main operating systems, and interact with each other.
Pkg.add
command from inside Julia:
julia> Pkg.update() # Get latest package info
julia> Pkg.add("Optim")
julia> Pkg.add("JuMP")
julia> Pkg.add("Cbc") # and so on
We have a collection of JuliaOpt examples in the form of Jupyter/IJulia notebooks, including:
The source for these notebooks is available here.JuliaOpt's packages can be loosely grouped into two sets. The first set are standalone Julia packages:
The second set comprises modeling languages (red), external solver interfaces (purple), and an abstraction layer over the solvers (green), primarily for constrained optimization:
JuliaOpt provides wrappers for a wide variety of solvers. The following table summarizes the capabilities of each solver, and also shows the problem forms supported by the two modeling languages.
Modeling Tool  LP  MILP  SOCP  MISOCP  SDP  NLP  MINLP  Other  

Key:


JuMP  ✔  ✔  ✔  ✔  ✔  ✔  ✔  
Convex.jl  ✔  ✔  ✔  ✔  ✔  
Solver  LP  MILP  SOCP  MISOCP  SDP  NLP  MINLP  Other  
Bonmin (via AmplNLWriter.jl)  ✔  ✔  ✔  ✔  
Cbc (.jl)  ✔  ✔  
Clp (.jl)  ✔  
Couenne (via AmplNLWriter.jl)  ✔  ✔  ✔  ✔  
CPLEX (.jl)  ✔  ✔  ✔  ✔  IP Callbacks  
ECOS (.jl)  ✔  ✔  
GLPK (.jl)  ✔  ✔  IP Callbacks  
Gurobi (.jl)  ✔  ✔  ✔  ✔  IP Callbacks  
Ipopt (.jl)  ✔  ✔  
Artelys Knitro (.jl)  ✔  ✔  ✔  ✔  
Mosek (.jl)  ✔  ✔  ✔  ✔  ✔  ✔1  
NLopt (.jl)  ✔  
SCS (.jl)  ✔  ✔  ✔ 