What is JuMP?
JuMP is a modeling language and collection of supporting packages for mathematical optimization in Julia.
JuMP makes it easy to formulate and solve a range of problem classes, including linear programs, integer programs, conic programs, semidefinite programs, and constrained nonlinear programs.
You can use it to route school buses, schedule trains, plan power grid expansion, or even optimize milk output.
Resources for getting started
- Decide if you should use JuMP by reading Should I use JuMP?
- Install JuMP and Julia by reading the Installation Guide
- Learn Julia by reading Getting started with Julia
- Solve your first JuMP model by reading Getting started with JuMP
- Get help by joining the community forum to search for answers to commonly asked questions.
There is a growing collection of third-party materials about JuMP. This includes the book, Julia Programming for Operations Research, which covers a variety of topics on optimization, with an emphasis on solving practical problems using JuMP and Julia.
Here are some things you can do to become more involved in the JuMP community:
- Help answer questions on the community forum
- Star and watch the repository
- Read the contributing guide
- Read about our governance structure
- Join the developer chatroom
- Attend upcoming events
The JuMP ecosystem includes Convex.jl, an algebraic modeling language for convex optimization based on the concept of Disciplined Convex Programming.
Outside of the JuMP organization:
- JuliaSmoothOptimizers provides a collection of tools primarily designed for developing solvers for smooth nonlinear optimization.
- JuliaNLSolvers offers implementations in Julia of standard standard optimization algorithms for unconstrained or box-constrained problems such as BFGS, Nelder-Mead, conjugate gradient, etc.
- JuliaHub lists 100+ optimization packages in Julia!
JuMP is a Sponsored Project of NumFOCUS, a 501(c)(3) nonprofit charity in the United States. NumFOCUS provides JuMP with fiscal, legal, and administrative support to help ensure the health and sustainability of the project. Visit numfocus.org for more information.
You can support JuMP by donating.
Donations to JuMP are managed by NumFOCUS. For donors in the United States, your gift is tax-deductible to the extent provided by law. As with any donation, you should consult with your tax adviser about your particular tax situation.
JuMP’s largest expense is the annual JuMP-dev workshop. Donations will help us provide travel support for JuMP-dev attendees and take advantage of other opportunities that arise to support JuMP development.