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
f: ℝⁿ --> ℝ is the optimization objective, and
c: ℝⁿ --> ℝᵐ are optimization constraints.
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
c(x) can be nonlinear and nonconvex, but should be twice continuously differentiable.
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:
- trlib for nonconvex trust region QP solving
Optional dependencies for the python bindings:
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:
SLEQP_ENABLE_CUTEST: Enables the CUTest suite (default:
SLEQP_ENABLE_PYTHON: Enables the build of the python bindings (default :
SLEQP_LPS: Set to specify a linear programming library
SLEQP_FACT: Set to specify a factorization library
SLEQP_ENABLE_MATLAB_MEX: Enables the build of mex bindings using MATLAB (default :
SLEQP_ENABLE_OCTAVE_MEX: Enables the build of mex bindings using Octave (default :
SLEQP_ENABLE_AMPL: Enables the build of the AMPL interface (default:
- 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.