<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>Hi,<br><br>I finally got time to start implementing the alternative method for computing the Hessian of<br>the Lagrangian to do some benchmarking. However, I have come across the following difficulty:<br><br>Using also the Lagrange multipliers as variables yields an Hessian of the Lagrangian in the<br>form of a block matrix: <br><br>H = / H_{xx}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; H_{xl} \<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \ H_{xl}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; 0&nbsp;&nbsp;&nbsp; /<br><br>Here H_{xx} is the Hessian wrt to the original variables x\inR^n that we are interested in. After calling<br>sparse_hess(tag,n,repeat,x,&amp;nnz,&amp;rind,&amp;cind,&amp;values,&amp;options) I thought that it should be<br>straightforward to identify the parts of rind, cind and values pertaining to H_{xx}. For instance,<br>say we want to count the non-zeros in the first row of H_{xx}, nnz_xx, using the following code:<br><br>int k = 0<br>int nnz_xx = 0<br>while rind[k]==0<br>&nbsp;&nbsp;&nbsp; if cind[k]&lt;n<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nnz_xx++;<br>&nbsp;&nbsp;&nbsp; end<br>&nbsp;&nbsp;&nbsp; k++;<br>end<br><br>This of course only works provided the non-zeros of H_{xl} are found in the columns&gt;n, but that<br>appears not to be the case.<br><br>Am I missing something really simple here, or how can I extract H_{xx}?.<br><br>Kind regards<br>Ingrid<br><br><br><br><br><div><div id="SkyDrivePlaceholder"></div><hr id="stopSpelling">From: ingridhallen@hotmail.com<br>To: awalther@math.uni-paderborn.de<br>Date: Thu, 11 Apr 2013 09:26:23 +0200<br>CC: adol-c@list.coin-or.org<br>Subject: Re: [ADOL-C] Evaluating Hessian of Lagrangian<br><br>

<style><!--
.ExternalClass .ecxhmmessage P {
padding:0px;
}

.ExternalClass body.ecxhmmessage {
font-size:12pt;
font-family:Calibri;
}

--></style>
<div dir="ltr">Thanks for your reply!<br><br>I think I will do some benchmarking then, to see which<br>of the two approaches works best for my problem.<br><br>The approach suggested by Norm is certainly interesting,<br>but I think I have to little experience with optimization<br>to implement it successfully. At least for the moment.<br><br>Sincerely,<br><br>Ingrid<br><br><br><div><div id="ecxSkyDrivePlaceholder"></div>&gt; Date: Wed, 10 Apr 2013 22:51:22 +0200<br>&gt; From: awalther@math.uni-paderborn.de<br>&gt; To: ingridhallen@hotmail.com<br>&gt; CC: normvcr@telus.net; adol-c@list.coin-or.org<br>&gt; Subject: Re: [ADOL-C] Evaluating Hessian of Lagrangian<br>&gt; <br>&gt; Hi<br>&gt; <br>&gt; sorry for entering the discussion so late but I was on travel<br>&gt; the last days and most of the time offline.<br>&gt; <br>&gt; If you can exploit the minor size of the reduced Hessian<br>&gt; the approach proposed by Norm is certainly the best way to go<br>&gt; since it requires the least number of Hessian vector product<br>&gt; which determines the cost of the derivative calculation.<br>&gt; <br>&gt; However, I am not sure whether Ipopt can really exploit this.<br>&gt; Regarding the other approaches discussed so far:<br>&gt; <br>&gt; We made the experience that it really depends on the application<br>&gt; whether<br>&gt; <br>&gt; * tracing the Lagrangian once with x and lambda as inputs<br>&gt;    and evaluating only a part of the Hessian reusing the trace<br>&gt;    in all iterations<br>&gt; <br>&gt; or<br>&gt; <br>&gt; *  retracing the Lagrangian with x as adoubles and lambda as doubles<br>&gt;     in each iteration and computing then the whole Hessian<br>&gt; <br>&gt; performs better in terms of runtime. You could give both approaches<br>&gt; a try and see what works better for you. Both approaches have their<br>&gt; pros and cons with respect to efficiency.<br>&gt; <br>&gt; Best regards<br>&gt; <br>&gt; Andrea<br>&gt; <br>&gt; -- <br>&gt; Prof. Dr. Andrea Walther<br>&gt; Lehrstuhl fuer Mathematik und ihre Anwendungen<br>&gt; Institut fuer Mathematik<br>&gt; Universitaet Paderborn<br>&gt; Warburger Str. 100<br>&gt; 33098 Paderborn<br>&gt; <br>&gt; Email: andrea.walther@uni-paderborn.de<br>&gt; Phone: ++49 5251 602721<br>&gt;         ++49 5251 602724 (sekr.)<br>&gt; Fax:   ++49 5251 603728<br>&gt; <br>&gt; **********<br>&gt; <br>&gt; <br>&gt; <br></div>                                               </div>
<br>_______________________________________________
ADOL-C mailing list
ADOL-C@list.coin-or.org
http://list.coin-or.org/mailman/listinfo/adol-c</div>                                               </div></body>
</html>