[Coin-ipopt] Hessian Vector product

Andreas Waechter andreasw at watson.ibm.com
Mon Oct 29 19:10:21 EDT 2007


Hi Rohallah,

> I use IPOPT in a PDE constrained optimization problem (distributed parameter
> identification), i like to use second order information instead of hessian
> approximation, but direct construction of Hessian is very expensive, e.g.
> for 10^5 design variable, we should solve 10^5 additional PDE ! but
> computation of Hessian vector product is cheap, needs only solution of two
> additional PDE.

In general, you could of course use Ipopt's limited-memory Hessian 
approximation, but this might not give you performance that is robust 
enough.

You can of course compute the Hessian matrix itself by computing 
Hessian-vector products with all coordinate vectors e_i for all n columns 
of the Hessian matrix.  If you know the sparsity pattern of the Hessian 
and this one happens to be quite sparse, you might be able to get away 
with much less Hessian-vector products - a starting point for searching 
references might be papers by Trond Steihaug and Shahadat Hossain.

> I would like to know that how is difficulty of implementation of this issue
> in IPOPT and what portion of code should be modified?

This is not only an implementational issue, since the algorithm assumes 
that the step is computed from a linear system involving a matrix

/  H   A^T  \
|           |
\  A    0   /

(H: Hessian of Lagrangian,  A: Jacobian of constraints)

We assume that this is done with direct linear solver, which can provide 
information about the inertia of this matrix (number of positive and 
negative eigenvalues), which is essential for Ipopt in order to handle 
non-convex problems.

I don't see how this could be changed in a simple way so that you would 
only rely on Hessian-vector products.

There are other optimization codes (e.g., Knitro and FilterSQP) which can 
work with only Hessian-vector products.

> Also, is this issue in plan of developers (i think it considerably increase
> capability and range of application of IPOPT)?

At this point there is nothing concrete.  In the long run, we hope to have 
another algorithm implemented in the Ipopt project that can work with 
iterative linear solvers (and therefore only require Matrix-vector 
products - plus the necessity of a nice preconditioner) for computing the 
search directions, but this will not happen soon.

Sorry for the probably not very satisfying news,

Andreas



More information about the Coin-ipopt mailing list