Skip to main content
Log in

JuMP 1.0: recent improvements to a modeling language for mathematical optimization

  • Short communication
  • Published:
Mathematical Programming Computation Aims and scope Submit manuscript

Abstract

JuMP is an algebraic modeling language embedded in the Julia programming language. JuMP allows users to model optimization problems of a variety of kinds, including linear programming, integer programming, conic optimization, semidefinite programming, and nonlinear programming, and handles the low-level details of communicating with solvers. After nearly 10 years in development, JuMP 1.0 was released in March, 2022. In this short communication, we highlight the improvements to JuMP from recent releases up to and including 1.0.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Data availability statement

All data analyzed during this study are publicly available. URLs are included in this published article.

Code Availability

All software written by the authors for this article is open source. All third-party software used in this article is open source, with the exception of Gurobi, which is commercial software available for academic use. Specific references are included in this published article.

Notes

  1. This is after accounting for the fact that Jusevičius et al. [9] include compilation latency for JuMP and tested the time taken to write a JuMP model to file instead of the time taken for the solver to start performing useful work.

  2. https://github.com/trulsf/UnitJuMP.jl

References

  1. Bezanson, J., Edelman, A., Karpinski, S., Shah, V.B.: Julia: a fresh approach to numerical computing. SIAM Rev. 59(1), 65–98 (2017)

    Article  MathSciNet  MATH  Google Scholar 

  2. Bynum, M.L., Hackebeil, G.A., Hart, W.E., Laird, C.D., Nicholson, B.L., Siirola, J.D., Watson, J.P., Woodruff, D.L.: Pyomo—Optimization Modeling in Python, vol. 67. Springer, Berlin (2021)

    Book  MATH  Google Scholar 

  3. Coffrin, C., Bent, R., Sundar, K., Ng, Y., Lubin, M.: PowerModels.jl: an open-source framework for exploring power flow formulations. In: 2018 Power Systems Computation Conference (PSCC), pp. 1–8. IEEE (2018)

  4. Dias Garcia, J., Bodin, G., Street, A.: BilevelJuMP.jl: Modeling and Solving Bilevel Optimization in Julia. arXiv preprint (2022). https://doi.org/10.48550/arXiv.2205.02307

  5. Dowson, O., Kapelevich, L.: SDDP.jl: a julia package for stochastic dual dynamic programming. INFORMS J. Comput. 33(1), 27–33 (2021)

    Article  MathSciNet  MATH  Google Scholar 

  6. Dunning, I., Huchette, J., Lubin, M.: JuMP: a modeling language for mathematical optimization. SIAM Rev. 59(2), 295–320 (2017)

    Article  MathSciNet  MATH  Google Scholar 

  7. Gurobi Optimization, LLC: Gurobi optimizer reference manual (2023). https://www.gurobi.com

  8. Huangfu, Q., Hall, J.A.J.: Parallelizing the dual revised simplex method. Math. Program. Comput. 10(1), 119–142 (2018)

    Article  MathSciNet  MATH  Google Scholar 

  9. Jusevičius, V., Oberdieck, R., Paulavičius, R.: Experimental analysis of algebraic modelling languages for mathematical optimization. Informatica 32(2), 283–304 (2021)

    Article  Google Scholar 

  10. Legat, B., Dowson, O., Dias Garcia, J., Lubin, M.: MathOptInterface: a data structure for mathematical optimization problems. INFORMS J. Comput. 34(2), 672–689 (2021)

    Article  MathSciNet  MATH  Google Scholar 

  11. Pulsipher, J.L., Zhang, W., Hongisto, T.J., Zavala, V.M.: A unifying modeling abstraction for infinite-dimensional optimization. Comput. Chem. Eng. 156, 107567 (2022)

    Article  Google Scholar 

  12. Wächter, A., Biegler, L.T.: On the implementation of an interior-point filter line-search algorithm for large-scale nonlinear programming. Math. Program. 106(1), 25–57 (2006)

    Article  MathSciNet  MATH  Google Scholar 

Download references

Acknowledgements

JuMP and MathOptInterface are open-source projects that are made possible by volunteer contributors. We thank everyone who has been part of the JuMP community during the last 10 years. Special thanks are due to the list of over 300 people who contributed code to JuMP and related projects, which is available at https://jump.dev/blog/1.0.0-release/.

Funding

O. Dowson and B. Legat acknowledge funding from NSF under grant OAC-1835443 for work that directly contributed to the JuMP 1.0 release.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Oscar Dowson.

Ethics declarations

Conflict of interest

The authors declare that they have no conflict of interest.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Lubin, M., Dowson, O., Garcia, J.D. et al. JuMP 1.0: recent improvements to a modeling language for mathematical optimization. Math. Prog. Comp. 15, 581–589 (2023). https://doi.org/10.1007/s12532-023-00239-3

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s12532-023-00239-3

Keywords

Mathematics Subject Classification

Navigation