HOME

TheInfoList



OR:

JuMP is an
algebraic modeling language Algebraic modeling languages (AML) are high-level computer programming languages for describing and solving high complexity problems for large scale mathematical computation (i.e. large scale optimization type problems). One particular advantage of ...
and a collection of supporting packages for
mathematical optimization Mathematical optimization (alternatively spelled ''optimisation'') or mathematical programming is the selection of a best element, with regard to some criteria, from some set of available alternatives. It is generally divided into two subfiel ...
embedded in the Julia programming language. JuMP is used by companies, government agencies, academic institutions, software projects, and individuals to formulate and submit
optimization Mathematical optimization (alternatively spelled ''optimisation'') or mathematical programming is the selection of a best element, with regard to some criteria, from some set of available alternatives. It is generally divided into two subfiel ...
problems to thirdparty solvers. JuMP has been specifically applied to problems in the field of
operations research Operations research () (U.S. Air Force Specialty Code: Operations Analysis), often shortened to the initialism OR, is a branch of applied mathematics that deals with the development and application of analytical methods to improve management and ...
. 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 Linear programming (LP), also called linear optimization, is a method to achieve the best outcome (such as maximum profit or lowest cost) in a mathematical model whose requirements and objective are represented by linear function#As a polynomia ...
, 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.


History

JuMP was first developed by Miles Lubin, Iain Dunning, and Joey Huchette while they were students at the
Massachusetts Institute of Technology The Massachusetts Institute of Technology (MIT) is a Private university, private research university in Cambridge, Massachusetts, United States. Established in 1861, MIT has played a significant role in the development of many areas of moder ...
. 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. JuMP is a sponsored project of NumFOCUS.


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 BealeOrchardHays Prize.


See also

* HiGHS optimization solver * List of free and open-source optimization solvers *
Mathematical optimization Mathematical optimization (alternatively spelled ''optimisation'') or mathematical programming is the selection of a best element, with regard to some criteria, from some set of available alternatives. It is generally divided into two subfiel ...
* PuLP a similar project for Python * Pyomo Python packages for formulating optimization problems


References


External links


JuMP documentation

JuMP repository
{{FOSS Computational science Computer programming Mathematical modeling Mathematical optimization