JuMP
{{Short description|Programming language}}
{{infobox programming language
| name = JuMP
| logo = Jump-logo-with-text-and-metadata.svg
| released = {{start date and age|2013}}
| developers = {{plainlist|
- Miles Lubin
- Benoît Legat
- Joaquim Dias Garcia
- Joey Huchette
- Oscar Dowson
}}
| latest_release_version = 1.24.0
| latest_release_date = {{start date and age|2025|02|04}}
| programming language = Julia
| influenced =
| operating_system = Cross-platform: Linux, Mac OS X and Windows
| license = Mozilla MPL{{nbhyph}}2.0 (JuMP), MIT (supporting packages)
| website = {{URL|https://jump.dev}}
}}
JuMP is an algebraic modeling language and a collection of supporting packages for mathematical optimization embedded in the Julia programming language.
{{cite journal
| last1 = Dunning | first1 = Iain
| last2 = Huchette | first2 = Joey
| last3 = Lubin | first3 = Miles
| title = JuMP: a modeling language for mathematical optimization
| date = 2017
| journal = SIAM Review
| volume = 59
| issue = 2
| pages = 295–320
| doi = 10.1137/15M1020575
| issn = 0036-1445
| url = https://mlubin.github.io/pdf/jump-sirev.pdf
| access-date = 2022-07-25
}}
{{cite journal
| last1 = Lubin | first1 = Miles
| last2 = Dowson | first2 = Oscar
| last3 = Dias Garcia | first3 = Joaquim
| last4 = Huchette | first4 = Joey
| last5 = Legat | first5 = Benoît
| last6 = Vielma | first6 = Juan Pablo
| title = JuMP 1.0: Recent improvements to a modeling language for mathematical optimization
| date = 2023
| journal = Mathematical Programming Computation
| volume = 15
| issue = 3
| pages = 581–589
| doi = 10.1007/s12532-023-00239-3
| arxiv = 2206.03866
}}
JuMP is used by companies, government agencies, academic institutions, software projects, and individuals to formulate and submit optimization problems to third{{nbhyph}}party solvers. JuMP has been specifically applied to problems in the field of operations research.
{{cite book
| last1 = Kwon | first1 = Changhyun
| title = Julia programming for operations research
| edition = 2nd
| date = March 2019
| publisher = (Independently published)
| isbn = 978-1798205471
}} Paperback edition.
Features
JuMP is a Julia package and domain-specific language that provides an API and syntax for declaring and solving optimization problems. Specialized syntax for declaring decision variables, adding constraints, and setting objective functions is facilitated by Julia's syntactic macros and metaprogramming features. JuMP supports linear programming, mixed integer programming, semidefinite programming, conic optimization, nonlinear programming, and other classes of optimization problems. JuMP provides access to over 50 solvers, including state-of-the-art commercial and open-source solvers.
{{cite web
| title = Supported solvers
| work = JuMP community
| url = https://jump.dev/JuMP.jl/stable/installation/#Supported-solvers
| access-date = 2024-10-09
}}
History
JuMP was first developed by Miles Lubin, Iain Dunning, and Joey Huchette while they were students at the Massachusetts Institute of Technology. Today, JuMP's core developers are Miles Lubin, Benoît Legat, Joaquim Dias Garcia, Joey Huchette, and Oscar Dowson. Miles Lubin additionally holds the title of BDFL.
{{cite web
| title = Governance Structure
| work = JuMP community
| url = https://jump.dev/pages/governance/
| access-date = 2022-07-30
}}
JuMP is a sponsored project of NumFOCUS.
{{cite web
| title = JuMP
| work = NumFOCUS
| url = https://numfocus.org/project/jump
| access-date = 2022-07-30
}}
Recognition
JuMP and its authors have been acknowledged by the 2015 COIN-OR Cup, the 2016 INFORMS Computing Society Prize, and the Mathematical Optimization Society's 2021 Beale{{nnbsp}}{{ndash}}{{nnbsp}}Orchard{{nbhyph}}Hays Prize.
{{cite web
| title = 2021 Beale — Orchard-Hays Prize Citation
| work = Mathematical Optimization Society
| url = http://www.mathopt.org/?nav=boh_2021
| access-date = 2022-07-30
}}
{{cite web
| title = COIN-OR Cup 2015 Winners
| work = COIN-OR
| url = https://www.coin-or.org/coinCup/coinCup2015Winner.html
| access-date = 2022-07-30
}}
{{cite web
| title = ICS Prize 2012-2016
| work = INFORMS Computing Society
| url = https://connect.informs.org/computing/awards/ics-prize/ics-prize-2012-2016
| access-date = 2022-07-30
}}
See also
- HiGHS optimization solver
- List of free and open-source optimization solvers
- Mathematical optimization
- PuLP {{ndash}} a similar project for Python
- Pyomo {{ndash}} Python packages for formulating optimization problems
References
{{reflist|30em}}
External links
- [https://jump.dev/JuMP.jl/stable/ JuMP documentation]
- [https://github.com/jump-dev/JuMP.jl JuMP repository]
{{Mathematical optimization software}}
{{Computer modeling}}
{{FOSS}}
Category:Computational science