Skip to content

Modeling language for Mathematical Programming (linear, mixed-integer, conic, nonlinear)

License

Notifications You must be signed in to change notification settings

lazycrazyowl/JuMP.jl

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JuMP

Julia for Mathematical Programming

JuMP is a domain-specific modeling language for mathematical programming embedded in Julia. It currently supports a number of open-source and commercial solvers (COIN Clp, COIN Cbc, GNU GLPK, Gurobi, MOSEK, CPLEX) via a generic solver-independent interface.

One the best features of JuMP is its speed - benchmarking has shown that it can create problems at similar speeds to special-purpose modeling languages such as AMPL while maintaining the expressiveness of a generic high-level programming language. JuMP communicates with solvers in-memory, avoiding the need to write intermediary files and enabling access to advanced features such as efficient LP re-solves and callbacks for mixed-integer programming.

JuMP has recently enabled support for nonlinear programming for functions that can be expressed in closed algebraic form. JuMP computes exact sparse second-order derivatives needed by efficient interior-point solvers. Currently, Ipopt is the only supported solver, with more coming soon.

Our documentation includes an installation guide, quick-start guide, and reference manual.

Latest Release: 0.5.5 (via Pkg.add)

Development version:

JuMP was formerly known as MathProg.jl

Installation

JuMP can be installed through the Julia package manager (version 0.2 required)

julia> Pkg.add("JuMP")

For full installation instructions, including how to install solvers, see the documentation linked above.

Supported problem classes

Mathematical programming encompasses a large variety of problem classes. We list below what is currently supported. See the documentation for more information.

Objective types

  • Linear
  • Convex Quadratic
  • Nonlinear (convex and nonconvex)

Constraint types

  • Linear
  • Convex Quadratic
  • Second-order Conic
  • Nonlinear (convex and nonconvex)

Variable types

  • Continuous
  • Integer-valued

Bug reports and support

Please report any issues via the Github issue tracker. All types of issues are welcome and encouraged; this includes bug reports, documentation typos, feature requests, etc. The julia-opt mailing list is appropriate for general discussion, including "how do I do this?" questions.

About

Modeling language for Mathematical Programming (linear, mixed-integer, conic, nonlinear)

Resources

License

Stars

Watchers

Forks

Packages

No packages published