[ADOL-C] Evaluating Hessian of Lagrangian
Ingrid Hallen
ingridhallen at hotmail.com
Wed Apr 10 02:22:57 EDT 2013
Aha, I see!
Thanks a lot,
Ingrid
Date: Tue, 9 Apr 2013 02:04:20 -0700
From: normvcr at telus.net
To: ingridhallen at hotmail.com
CC: adol-c at list.coin-or.org
Subject: Re: [ADOL-C] Evaluating Hessian of Lagrangian
Sorry. By the "kernel", I mean the
kernel of the Jacobian of f(x):
All u in R^n such that df/dx * u = 0
These u form the tangent space of the constraint "surface".
You could, for example, use SVD to find an orthonormal basis of
the kernel.
Cheers,
Norm
On 04/09/2013 01:11 AM, Ingrid Hallen wrote:
Ok, I think I kind of understand the idea. However,
doesn't it require
that one solves equations of the form f(x) = 0, where f define
some of the constraints, for each iterate x to identify the
kernel?
It seems related to the idea of eliminating equality constraints
(as
in e.g. p. 132 in Convex Optimization by Boyd and Vandenberge),
which, as I did not mention :), I don't want to do.
Kind regards,
Ingrid
Date: Mon, 8 Apr 2013 13:14:39 -0700
From: normvcr at telus.net
To: ingridhallen at hotmail.com
CC: adol-c at list.coin-or.org
Subject: Re: [ADOL-C] Evaluating Hessian of Lagrangian
For the second point,
specially since there are almost as many
constraints as variables, it may be worthwhile to take the
Hessian
with respect to only the directions in the kernel of the
constraints.
For example, if you are working in 20-dimensional Euclidean
space,
with 18 constraints, that leaves an essentially
2-dimensional optimization
problem, and you only really need a 2x2 Hessian, not a 20x20
Hessian.
You can choose two orthogonal directions in the kernel of
the constraints,
and construct the 2x2 Hessian of Lagrangian wrt them,
viewing this either
as directional derivatives or change of coordinates.
I don't know what amount of SW changes this would need, but
it
seems it would be generally useful.
Cheers,
Norm
On 04/08/2013 06:38 AM, Ingrid Hallen wrote:
Thanks for the suggestions!
Regarding the first, I think it might not be so efficient
for my problem, having
almost as many constraints as variables. But I might give
it a try. Perhaps
one can modify the code for sparse_hess in some clever way
...
Regarding the second I am unfortunately clueless as to how
one could
exploit that fact.
Kind regards,
Ingrid
Date: Sun, 7 Apr 2013 15:31:50
-0700
From: normvcr at telus.net
To: adol-c at list.coin-or.org
Subject: Re: [ADOL-C] Evaluating Hessian of Lagrangian
Perhaps you can trace L
as a function of both x and lambda.
Then when you need the hessian,
calculate the hessian only with respect to x.
Not sure if this is better/worse than what you
suggested.
When using the Hessian of the Lagrangian, you will
eventually be restricting
attention to the kernel of your constraints. Do you
know if this fact
would offer a simplification to how the hessian could
be computed?
Norm
On 04/05/2013 04:02 AM, Ingrid Hallen wrote:
Hi,
I'm doing non-linear optimization with IPOPT. For
this, I'm using ADOL-C
to compute the Hessian of the Lagrangian
L(x,lambda) = f(x) + sum_{i}lambda_{i}h_{i}(x),
where x are the variables, lambda the Lagrange
multipliers and
f(x) and h_{i}(x) objective and constraint
functions.
What I'm doing in my code is the following (omitting
details):
// **********************
// Trace Lagrangian function
trace_on(tag);
for(i=0;i<n;i++) {
xad[i] <<= x[i];
}
Lagrangian(xad, lambda);
Lad >>=L;
trace_off();
// Evaluate Hessian of the Lagrangian
repeat = 0;
sparse_hess(tag,n,repeat,x,&nnz,&rind,&cind,&values,&options)
// ***********************
This works fine, but is not so efficient. One reason
is that, since lambda changes,
the Lagrangian function has to be retaped every time
the Hessian is needed and so it
appears that I cannot set repeat = 1 when calling
sparse_hess.
One way to circumvent this problem could perhaps be
to trace the objective
and constraint functions individually and then
construct the Hessian of
the Lagrangian using multiple calls to sparse_hess,
but is there a
more convenient way to do it?
Sincerely,
Ingrid
_______________________________________________
ADOL-C mailing list
ADOL-C at list.coin-or.org
http://list.coin-or.org/mailman/listinfo/adol-c
_______________________________________________ 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/20130410/60a77c70/attachment.html>
More information about the ADOL-C
mailing list