JuliaOpt Optimization packages for the Julia language

What is Julia?

Julia is a high-level, high-performance 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.

What is JuliaOpt?

JuliaOpt is an organization that brings together packages written in Julia that are related to optimization. All JuliaOpt packages should be high-quality, documented, tested, support the main operating systems, and interact with each other.

Overview of Packages

JuMPConvex.jlMathProgBase.jlCbc.jlClp.jlCPLEX.jlECOS.jlGLPK.jlGurobi.jlIpopt.jlKNITRO.jlMosek.jlNLopt.jlSCS.jlXpress.jl Optim.jlLsqFit.jlCoinOptServices.jlAmplNLWriter.jl

JuliaOpt’s packages can be loosely grouped into two sets. The first set are standalone Julia packages:

  • Optim.jl: Implementations in Julia of standard optimization algorithms for unconstrained or box-constrained problems such as BFGS, Nelder-Mead, conjugate gradient, etc. (documentation/code)

  • LsqFit.jl: Least-squares non-linear curve fitting in Julia. (documentation/code)

The second set comprises modeling languages (red), external solver interfaces (purple), and an abstraction layer over the solvers (green), primarily for constrained optimization:

  • JuMP: An algebraic modeling language for linear, quadratic, and nonlinear constrained optimization problems embedded in Julia. Generates models as quick as commercial modeling tools and supports advanced features like solver callbacks. (documentation, code)

  • Convex.jl: An algebraic modeling language for disciplined convex programming embedded in Julia. (documentation, code)

  • MathProgBase - A standardized interface implemented by all solvers that allows code to remain solver-agnostic. Used by JuMP and Convex.jl, but can be called by user code directly if a user doesn’t want to go through a modeling language, but wishes to remain solver-independent. (documentation, code)

Solvers

JuliaOpt provides wrappers for a wide variety of solvers. The following table summarizes the forms supported by the modeling languages and solvers. Note that the capabilities marked in the table represent those of the Julia package, not necessarily the capabilities of the solver itself.

 Linear /
Quadratic
ConvexNonconvexIntegerLicense
Modeling ToolConicSmooth
Key: License:
  • Open = Open Source
  • Comm. = Commercial
  • a = Commercial, but provides free academic license
JuMPOpen
Convex.jl  Open
Solver 
CDD(.jl)    Open
Clp(.jl)    Open
Cbc(.jl)   Open
GLPK(.jl)   cbOpen
CSDP(.jl)   Open
ECOS(.jl)   Open
SCS(.jl)   Open
CPLEX(.jl)  cbComm.a
Gurobi(.jl)  cbComm.a
FICO Xpress(.jl)  Comm.a
Mosek(.jl) Comm.a
NLopt(.jl)   Open
Ipopt(.jl)  Open
Bonmin(via AmplNLWriter.jl) Open
Couenne(via AmplNLWriter.jl) Open
Artelys Knitro(.jl) Comm.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值