An intuitive modeling interface for infinite-dimensional optimization problems.
182 Stars
Updated Last
1 Year Ago
Started In
August 2019


A JuMP extension for expressing and solving infinite-dimensional optimization problems. Such areas include stochastic programming, dynamic programming, space-time optimization, and more. InfiniteOpt serves as an easy-to-use modeling interface for these advanced problem types that can be used by those with little to no background in these areas. It also it contains a wealth of capabilities making it a powerful and convenient tool for advanced users.

🎉 v0.5 introduces general nonlinear modeling!: See the documentation for details.

📣 v0.5.1 now requires Julia 1.6 or newer

Current Version:

Documentation Build Status Citation
Build Status DOI
Build Status

It builds upon JuMP to add support for many complex modeling objects which include:

  • Infinite parameters (e.g., time, space, uncertainty, etc.)
  • Finite parameters (similar to ParameterJuMP)
  • Infinite variables (decision functions) (e.g., y(t, x))
  • Derivatives (e.g., ∂y(t, x)/∂t)
  • Measures (e.g., ∫y(t,x)dt, 𝔼[y(ξ)])
  • 1st class nonlinear modeling

The unifying modeling abstraction behind InfiniteOpt captures a wide spectrum of disciplines which include dynamic, PDE, stochastic, and semi-infinite optimization. Moreover, we facilitate transferring techniques between these to synthesize new optimization paradigms!


Comments, suggestions and improvements are welcome and appreciated.


InfiniteOpt is licensed under the MIT "Expat" license.


InfiniteOpt.jl is a registered Julia package and can be installed by entering the following in the REPL.

julia> ]

(v1.8) pkg> add InfiniteOpt


Please visit our documentation pages to learn more. These pages are quite extensive and feature overviews, guides, manuals, tutorials, examples, and more!


For additional help please visit and post in our discussion forum.



If you use InfiniteOpt.jl in your research, we would greatly appreciate your citing it.

      title = {A unifying modeling abstraction for infinite-dimensional optimization},
      journal = {Computers & Chemical Engineering},
      volume = {156},
      year = {2022},
      issn = {0098-1354},
      doi = {},
      url = {},
      author = {Joshua L. Pulsipher and Weiqi Zhang and Tyler J. Hongisto and Victor M. Zavala},

A pre-print version is freely available though arXiv.

Project Status

The package is tested against Julia 1.6 and 1.8 on Linux, Mac, and Windows.


InfiniteOpt is being actively developed and suggestions or other forms of contribution are encouraged. There are many ways to contribute to this package. For more information please visit CONTRIBUTING.