SourceFiles.org - Use the Source, Luke
Home | Register | News | Forums | Guide | MyLinks | Bookmark

Related Sites

Latest News
  General News
  Reviews
  Press Releases
  Software
  Hardware
  Security
  Tutorials
  Off Topic


Back to files

/** @mainpage HQP: a solver for sparse nonlinear optimization

<p>

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.

<h2>Overview</h2>

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++.

<h3>HQP</h3>

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.

<p>

The implementation is based on sparse matrix codes of the <A HREF="http://www.netlib.org/c/meschach">Meschach library for matrix computations in C</A>. The matrix library was extended with additional routines for the analysis and direct solution of sparse equation systems.

<p>

The tool command language <A HREF="http://www.tcl.tk">Tcl</A> is used for selecting solver modules, configuring parameters and for controlling the execution.

<h3>Omuses</h3>

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.

<p>

<a
href="http://www.math.tu-dresden.de/wir/project/adolc/index.html">ADOL-C</a> is exploited for the automatic differentiation and structural analysis of model equations.

<p>

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: <ul>
<li>
<a href="http://www.engineering.ucsb.edu/~cse/software.html">DASPK</a>: solution of implicit and stiff differential equations. </li>
<li>
<a href="http://www.netlib.org">RKsuite</a>: solution of explicit differential equations </li>
</ul>
<p>
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.

<h2>Interfaces for formulating optimization problems</h2>

<h3>External Model Interfaces</h3>

<ul>
<li>
Prg_SFunctionOpt/Prg_SFunctionEst: pre-formulated dynamic optimization/estimation problems for a model accessible as <a href="http://www.mathworks.com">Simulink</a> S-function </li>
<li>
Prg_CUTE: implementation of interface to <a href="http://www.netlib.org/utk/misc/sw_survey/urc/html/215.1.html">CUTE</a> (Constrained and Unconstrained Testing Environment): large collection of sparse nonlinear optimization problems formulated in <a href="http://www.numerical.rl.ac.uk/lancelot/sif/sifhtml.html">SIF</a> (Standard Input Format)
</li>
</ul>

<h3>Internal Model Interfaces</h3>

Optimization problems can be formulated natively in C/C++. The following interfaces exist (sorted from high-level to low-level): <ul>
<li>
Omu_Program: dynamic optimization problems exploiting the front-end Omuses, including treatment of differential equations and automatic differentiation (see the odc subdirectory for examples). Omuses converts a dynamic optimization problem to a discrete-time optimal control problem. </li>
<li>
Hqp_Docp: discrete-time optimal control problem (DOCP) for the Hqp solver, specified as Hqp_DocpSpec (see the hqp_docp subdirectory for an example). A DOCP gets converted to a large-scale non-linear optimization problem. </li>
</li>
<li>
Hqp_SqpProgram: large-scale nonlinear optimiztion problem, as actually being treated by the HQP solver </li>
</ul>

<h2>Distribution and License</h2>

HQP is hosted at SourceForge.
<ul>
<li>
<a href="http://sourceforge.net/projects/hqp/">HQP Project Page</a>: CVS repository, Download area, etc.
</li>
</ul>
This software is free according to the conditions of the GNU LIBRARY GENERAL PUBLIC LICENSE, Version 2 (see COPYING.LIB).

<h2>References</h2>

Most interesting applications, where HQP is actually optimizing some bits of the real world, include <ul>
<li>
<a href="http://www.systemtechnik.tu-ilmenau.de/~fg_opt/mlk/mlk.html">water management in a large canal system</a> </li>
<li>
start-up of a steam generator in a coal fired power plant </li>
</ul>
Furthermore, there finds a couple of applications in research projects, including <ul>
<li>
<a href="http://www.systemtechnik.tu-ilmenau.de/~fg_opt/klaer/klaer.html">waste water treatment</a> </li>
<li>
<a href="http://www.ist.uni-stuttgart.de/~nagy/Projects.htm">batch process control</a> </li>
<li>
solar heating
</li>
</ul>

*/

/** @page structure Directory structure of HQP distribution

<p>
The HQP distribution contains the following sub-directories:

<h3>Main modules</h3>
<dl>
<dt>hqp</dt>
<dd>
The actual solver for sparse nonlinear optimization

</dd>
<dt>omu</dt>
<dd>
Front-end Omuses for treating dynamic optimization problems </dd>
</dl>

<h3>Examples</h3>
<dl>
<dt>odc</dt>
<dd>
Omuses Demo Collection (examples using the front-end Omuses) </dd>

<dt>hqp_docp</dt>
<dd>
Example for directly using the DOCP interface of HQP </dd>
</dl>

<h3>External model interfaces</h3>
<dl>
<dt>hxi</dt>
<dd>
Hqp eXternal Interfaces (currently S-function) </dd>

<dt>hqp_cute</dt>
<dd>
Files required to run HQP with CUTE
</dd>
</dl>

<h3>Additional differential equation solvers</h3> <dl>
<dt>daspk</dt>
<dd>
Place holder for DASPK differential-algebraic equation solver </dd>

<dt>rksuite</dt>
<dd>
RKsuite differential equation solvers (by R.W. Brankin et al) </dd>
</dl>

<h3>Base modules</h3>
<dl>
<dt>meschach</dt>
<dd>
Matrix library (by D.E. Steward and Z. Leyk) </dd>

<dt>adol-c</dt>
<dd>
Automatic differentiation code (by A. Griewank et al) </dd>

<dt>iftcl</dt>
<dd>
Interface wrapping Tcl (Tool Command Language; used for configuring solver options and for controlling the execution) </dd>

<dt>malloc</dt>
<dd>
GNU malloc library (HQP may be configured to use GNU malloc instead of the system malloc) </dd>
</dl>

<h3>Documentation</h3>
<dl>
<dt>doc</dt>
<dd>
Doxygen input file for generating reference documentation. Please see also the separately available <a href="ftp://ftp.systemtechnik.tu-ilmenau.de/pub/reports/omuses.ps.gz">Users Manual</a>, including explanation of simple examples. </dd>
</dl>

*/


Other Sites

Discussion Groups
  Beginners
  Distributions
  Networking / Security
  Software
  PDAs

About | FAQ | Privacy | Awards | Contact
Comments to the webmaster are welcome.
Copyright 2006 Sourcefiles.org All rights reserved.