SLEQP is a software package for large-scale nonlinear optimization. It is designed to find (local) solutions of mathematical optimization problems of the form
min f(x)
x ∈ ℝⁿ
s.t. l ≤ c(x) ≤ u
x_l ≤ x ≤ x_u
where f: ℝⁿ --> ℝ
is the optimization objective, and c: ℝⁿ --> ℝᵐ
are optimization constraints.
The vectors l, u ∈ ℝᵐ
denote the lower and upper bounds on the
nonlinear constraints, while the vectors x_l, x_u ∈ ℝⁿ
are bounds on
the variables. The functions f(x)
and c(x)
can be nonlinear and
nonconvex, but should be twice continuously differentiable.
Details regarding this implementation may be found in the accompanying article
Hansknecht, C., & Kirches, C. (2023). SLEQP: An open-source package for nonlinear programming. Proceedings in Applied Mathematics and Mechanics, 00, e202300241. https://doi.org/10.1002/pamm.202300241
For the solution of the linear programming problem, one of the following linear programming libraries is required:
For factorizations, one of the following factorization libraries is required:
Additional dependencies:
- trlib for nonconvex trust region QP solving
Optional dependencies for the python bindings:
- Python itself, including
python-build
Optional dependencies for the mex bindings:
Optional dependencies for the AMPL bindings:
- The AMPL solver library ASL
Optional dependencies for the unit tests:
In order to compile this package, use the following sequence of commands:
mkdir build && cd build
cmake .. <OPTIONS>
make
[make build_tests && make test]
Use the following options to customize the build process:
SLEQP_ENABLE_UNIT_TESTS
: Enables the unit tests (default:On
)SLEQP_ENABLE_CUTEST
: Enables the CUTest suite (default:Off
)SLEQP_ENABLE_PYTHON
: Enables the build of the python bindings (default :On
)SLEQP_LPS
: Set to specify a linear programming librarySLEQP_FACT
: Set to specify a factorization librarySLEQP_ENABLE_MATLAB_MEX
: Enables the build of mex bindings using MATLAB (default :Off
)SLEQP_ENABLE_OCTAVE_MEX
: Enables the build of mex bindings using Octave (default :Off
)SLEQP_ENABLE_AMPL
: Enables the build of the AMPL interface (default:Off
)
- Byrd, Richard H., et al. "An algorithm for nonlinear optimization using linear programming and equality constrained subproblems." Mathematical Programming 100.1 (2003): 27-48.
- Lenders, Felix, Christian Kirches, and Andreas Potschka. "trlib: A vector-free implementation of the GLTR method for iterative solution of the trust region problem." Optimization Methods and Software 33.3 (2018): 420-449.