EOptInterface.jl, or Equation-oriented Optimization Interface, is an abstraction layer for optimizing equation-oriented/acausal models built in ModelingToolkit.jl [1] using JuMP.jl [2].
| PSOR Lab | Build Status |
|---|---|
| Documentation |
|---|
decision_vars(::ModelingToolkit.System)Returns the decision variables for an optimization problem formulated from a ModelingToolkit system.
register_nlsystem(::JuMP.Model, ::ModelingToolkit.System, obj::Symbolics.Num, ineqs::Vector{Symbolics.Num})Automatically formulates algebraic JuMP constraints and objective function from
an algebraic ModelingToolkit system and user-provided constraints and objective symbolic expressions.
full_solution(::JuMP.Model, ::ModelingToolkit.System)Returns a dictionary of optimal solution values for the observed variables of an algebraic ModelingToolkit system if the JuMP model is solved.
register_odesystem(::JuMP.Model, ::ModelingToolkit.System, tspan::Tuple{Real,Real}, tstep::Real, solver::String)Automatically applies forward transcription and registers the discretized ODE ModelingToolkit system as algebraic JuMP constraints. Available integration methods: "EE" (explicit Euler), "IE" (implicit Euler).
The code for these examples can be found in the examples/ subdirectory.
An optimal reactor-separator-recycle process design problem originally presented by [3] is used to demonstrate the use of register_nlsystem to formulate and solve a reduced-space model using the deterministic global optimizer EAGO.jl [4].
A nonlinear kinetic parameter estimation problem originally described by [5] is used to demonstrate the use of register_odesystem to formulate and solve an ODE system using Ipopt [6].
- Ma, Y., Gowda, S., Anantharaman, R., Laughman, C., Shah, V., and Rackauckas, C. ModelingToolkit: A Composable Graph Transformation System For Equation-Based Modeling. (2022). DOI: 10.48550/arXiv.2103.05244)
- Lubin, M., Dowson, O., Dias Garcia, J., Huchette, J., Legat, B., and Vielma, J.P. JuMP 1.0: recent improvements to a modeling language for mathematical optimization. Mathematical Programming Computation. 15, 581-589 (2023). DOI: 10.1007/s12532-023-00239-3
- Kokossis, A.C. and Floudas, C.A. Synthesis of isothermal reactor-separator-recycle systems. Chemical Engineering Science. 46, 1361-1383 (1991). DOI: 10.1016/0009-2509(91)85063-4
- Wilhelm, M. E. and Stuber, M.D. EAGO.jl: easy advanced global optimization in Julia. Optimization Methods and Software. 37(2), 425-450 (2022). DOI: 10.1080/10556788.2020.1786566
- Taylor, J.W. Direct measurement and analysis of cyclohexadienyl oxidation. Ph.D. thesis, Massachusetts Institute of Technology. (2005). URL: http://hdl.handle.net/1721.1/33716
- Wächter, A. and Biegler, L.T. On the implementation of an interior-point filter line-search algorithm for large-scale nonlinear programming. Mathematical Programming. 106, 25-57 (2006). DOI: 10.1007/s10107-004-0559-y