[ADOL-C] Evaluating Hessian of Lagrangian
Ingrid Hallen
ingridhallen at hotmail.com
Thu May 2 09:28:52 EDT 2013
Hi,
I finally got time to start implementing the alternative method for computing the Hessian of
the Lagrangian to do some benchmarking. However, I have come across the following difficulty:
Using also the Lagrange multipliers as variables yields an Hessian of the Lagrangian in the
form of a block matrix:
H = / H_{xx} H_{xl} \
\ H_{xl} 0 /
Here H_{xx} is the Hessian wrt to the original variables x\inR^n that we are interested in. After calling
sparse_hess(tag,n,repeat,x,&nnz,&rind,&cind,&values,&options) I thought that it should be
straightforward to identify the parts of rind, cind and values pertaining to H_{xx}. For instance,
say we want to count the non-zeros in the first row of H_{xx}, nnz_xx, using the following code:
int k = 0
int nnz_xx = 0
while rind[k]==0
if cind[k]<n
nnz_xx++;
end
k++;
end
This of course only works provided the non-zeros of H_{xl} are found in the columns>n, but that
appears not to be the case.
Am I missing something really simple here, or how can I extract H_{xx}?.
Kind regards
Ingrid
From: ingridhallen at hotmail.com
To: awalther at math.uni-paderborn.de
Date: Thu, 11 Apr 2013 09:26:23 +0200
CC: adol-c at list.coin-or.org
Subject: Re: [ADOL-C] Evaluating Hessian of Lagrangian
Thanks for your reply!
I think I will do some benchmarking then, to see which
of the two approaches works best for my problem.
The approach suggested by Norm is certainly interesting,
but I think I have to little experience with optimization
to implement it successfully. At least for the moment.
Sincerely,
Ingrid
> Date: Wed, 10 Apr 2013 22:51:22 +0200
> From: awalther at math.uni-paderborn.de
> To: ingridhallen at hotmail.com
> CC: normvcr at telus.net; adol-c at list.coin-or.org
> Subject: Re: [ADOL-C] Evaluating Hessian of Lagrangian
>
> Hi
>
> sorry for entering the discussion so late but I was on travel
> the last days and most of the time offline.
>
> If you can exploit the minor size of the reduced Hessian
> the approach proposed by Norm is certainly the best way to go
> since it requires the least number of Hessian vector product
> which determines the cost of the derivative calculation.
>
> However, I am not sure whether Ipopt can really exploit this.
> Regarding the other approaches discussed so far:
>
> We made the experience that it really depends on the application
> whether
>
> * tracing the Lagrangian once with x and lambda as inputs
> and evaluating only a part of the Hessian reusing the trace
> in all iterations
>
> or
>
> * retracing the Lagrangian with x as adoubles and lambda as doubles
> in each iteration and computing then the whole Hessian
>
> performs better in terms of runtime. You could give both approaches
> a try and see what works better for you. Both approaches have their
> pros and cons with respect to efficiency.
>
> Best regards
>
> Andrea
>
> --
> Prof. Dr. Andrea Walther
> Lehrstuhl fuer Mathematik und ihre Anwendungen
> Institut fuer Mathematik
> Universitaet Paderborn
> Warburger Str. 100
> 33098 Paderborn
>
> Email: andrea.walther at uni-paderborn.de
> Phone: ++49 5251 602721
> ++49 5251 602724 (sekr.)
> Fax: ++49 5251 603728
>
> **********
>
>
>
_______________________________________________
ADOL-C mailing list
ADOL-C at list.coin-or.org
http://list.coin-or.org/mailman/listinfo/adol-c
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/adol-c/attachments/20130502/b3175a39/attachment.html>
More information about the ADOL-C
mailing list