[Coin-ipopt] How to use subroutine EV_HLV(...)
Andreas Waechter
andreasw at watson.ibm.com
Thu Jul 28 11:05:11 EDT 2005
Hi Danh,
> 1. What is different between EV_H(...) and EV_HLV(...) ? Could I save
> memory when I used EV_HLV(..)?
You need to provide the subroutine EV_HLV only in special circumstances.
I assume that you are using the full-space version of the Ipopt (default),
in which case you really don't need to write that subroutine - just give
Ipopt the dummy stub that comes with the distribution.
EV_HLV is only needed if you work in the reduced space and if you select
certain combinations of options for computing the exact reduced Hessian
explicitly.
> 2. Could you explain to me how to use subroutine EV_HLV(...)?
>
> I have the problem of very large Hessian matrix. Here is a small example of
> my Hessian:
>
> H1
> H2 0
> H3
> .
> H= .
> 0 .
> H16
>
>
> where: Hi (which is one of H1,H2,...H16) are matrices of 6x6. They have a
> similar form except their values.
>
> Now, if I use subroutine EV_HLV(...) like this, is its definition like this
> correct? (Suppose that algorithm parameters are changed as Ipopt manual)
>
>
> subroutine EV_HLV(...)
> ....
> do i=1,16
> calculate Hi =hi(X) (to get 6x6 matrix)
> do j=1,6
> calculate indice of k-th variable
> VOUT(k)=VOUT(k) + Hi*VIN(k)
> end do
> end do
> end
>
> Are dimension of VOUT and VIN 6x16 =96 in my example ?
Yes, that would be the dimension. And your psydo code is probably
correct, if VOUT(k) and Hi are meant to be blockas of vectors and
matrices.
But, again, I doubt that you would need to bother with this.
Hope this helps,
Andreas
More information about the Coin-ipopt
mailing list