HQP is a solver for nonlinearly constrained large-scale optimization. It is intended for problems with sufficient regular sparsity structure. Such optimization problems arise e.g. from the numerical treatment of optimal control problems. External interfaces allow the formulation of optimization problems based on widely used model formats.
HQP (Huge Quadratic Programming) consists of mainly two parts: the actual HQP optimizer and the front-end Omuses. Both parts are designed as framework in the programming language C++.
The actual HQP optimizer treats nonlinearly constrained problems with a sequential quadratic programming (SQP) algorithm. An interior-point method is applied to the solution of convex quadratic subproblems.
The implementation is based on sparse matrix codes of the Meschach library for matrix computations in C. The matrix library was extended with additional routines for the analysis and direct solution of sparse equation systems.
The tool command language Tcl is used for selecting solver modules, configuring parameters and for controlling the execution.
The front-end Omuses provides additional support for the efficient problem formulation. This is possible thanks to the availability of great software packages that have been integrated with Omuses.
ADOL-C is exploited for the automatic differentiation and structural analysis of model equations.
Furthermore Omuses provides numerical solvers for differential equations defining constraints in dynamic optimization problems. Besides own implementations (Dopri5, Euler, GRK4, IMP, OdeTs, SDIRK, RK4), the following additional software packages are currently integrated:
Please note that the integrated software packages underly copyright restrictions of their respective authors. That is why the DASPK software is not included, though an interface is provided. HQP is available under the GNU Library (or Lesser) General Public License.
Optimization problems can be formulated natively in C/C++. The following interfaces exist (sorted from high-level to low-level):
Besides this source code documentation, there finds:
R. Franke: Omuses — a tool for the optimization of multistage systems, and HQP — a solver for sparse nonlinear optimization. Technical Report. TU Ilmenau, 1998.
HQP is hosted at GitHub.
This software is free according to the conditions of the GNU LIBRARY GENERAL PUBLIC LICENSE, Version 2 (see COPYING.LIB).