<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi,<div>&nbsp;if the hessian matrix have too much non-zero elements for being considered a sparse one, you might try using the BFGS approximation. That said, it will also slow the optimization process down, but maybe less than using a full exact hessian?&nbsp;<div><br><div><div>Le 14 févr. 2013 à 23:44, Xin Zhao a écrit :</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr">Thanks, Stefan.<div><br></div><div style="">I've tried to set such a number of nonzero elements that every potential nonzero entry can be included, but the performance became unacceptable.&nbsp;</div><div style="">

<br></div><div style="">Is there any option to change the sparsity structure at each iteration to work this out?&nbsp;</div><div style="">Or maybe, it is even slower than setting a large number of nonzero entries to change the sparsity structure at each iteration?</div>

<div style=""><br></div><div style=""><br></div><div style="">Best,</div><div style="">Xin&nbsp;</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Feb 15, 2013 at 1:17 AM, Stefan Vigerske <span dir="ltr">&lt;<a href="mailto:stefan@math.hu-berlin.de" target="_blank">stefan@math.hu-berlin.de</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<div class="im"><br>
<br>
On 02/14/2013 10:48 PM, Xin Zhao wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
So basically I wanna to know:<br>
<br>
At each iteration,<br>
<br>
1. Can we change the sparsity structure of Hessian?<br>
</blockquote>
<br></div>
No. During initialization, you should specify a sparsity structure that is valid during the whole solution process. You may then have to put 0 values into the hessian from time to time.<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
2. eval_h are called with const Ipopt::Number* x = NULL first or<br>
Ipopt::Index iRow = NULL first.<br>
</blockquote>
<br></div>
At the beginning, Ipopt calls eval_h with x = NULL to get the sparsity structure. Later, it calls with x != NULL to get the values w.r.t. the initially specified sparsity structure.<br>
<br>
Same for the jacobian.<br>
<br>
Stefan<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">
<br>
<br>
Thanks.<br>
<br>
<br>
Best,<br>
Xin<br>
<br>
<br>
On Thu, Feb 14, 2013 at 11:20 PM, Xin Zhao &lt;<a href="mailto:sean.null@gmail.com" target="_blank">sean.null@gmail.com</a>&gt; wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Dear all,<br>
<br>
Would anyone like to explain me some details on the sequence how eval_h<br>
and eval_jac_g are called?<br>
<br>
At each iteration, are eval_h and eval_jac_g called first with values =<br>
NULL or not?<br>
<br>
For my case, the sparsity structure of eval_h and eval_jac_g depends on<br>
the variables x. So it matters<br>
how eval_h and eval_jac_g are called first. Or maybe there is another<br>
workout?<br>
<br>
Thanks.<br>
<br>
<br>
Best,<br>
Xin<br>
<br>
</blockquote>
<br>
<br>
<br></div>
______________________________<u></u>_________________<br>
Ipopt mailing list<br>
<a href="mailto:Ipopt@list.coin-or.org" target="_blank">Ipopt@list.coin-or.org</a><br>
<a href="http://list.coin-or.org/mailman/listinfo/ipopt" target="_blank">http://list.coin-or.org/<u></u>mailman/listinfo/ipopt</a><br>
<br>
</blockquote>
<br>
</blockquote></div><br></div>
_______________________________________________<br>Ipopt mailing list<br><a href="mailto:Ipopt@list.coin-or.org">Ipopt@list.coin-or.org</a><br>http://list.coin-or.org/mailman/listinfo/ipopt<br></blockquote></div><br><div apple-content-edited="true">
<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Sylvain Auliac</div><div>Laboratoire Jacques-Louis Lions</div><div>Université Pierre et Marie Curie</div><div>mail: <a href="mailto:auliac@ann.jussieu.fr">auliac@ann.jussieu.fr</a></div><div>tel :&nbsp;01 44 27 71 70</div><div><br></div></div></span><br class="Apple-interchange-newline"></span><br class="Apple-interchange-newline">
</div>
<br></div></div></body></html>