<div dir="ltr">Thank you all.<div><br></div><div><br></div><div>I am trying to do it the following way:</div><div>When changing the sparsity structure, I return false in eval_* function and restart the Ipopt.</div><div><br>


</div><div>My question now would be what will happen, if false returned? Will finalize_solution be called so that I can identify the status and copy the data?</div><div><br></div><div>Best,</div><div>
Xin</div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Feb 15, 2013 at 12:20 PM, Sylvain Auliac <span dir="ltr">&lt;<a href="mailto:auliac@ann.jussieu.fr" target="_blank">auliac@ann.jussieu.fr</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">Hi,<div> 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? <div>

<br><div><div>Le 14 févr. 2013 à 23:44, Xin Zhao a écrit :</div><div><div class="h5"><br><blockquote type="cite"><div dir="ltr">Thanks, Stefan.<div><br></div><div>I&#39;ve tried to set such a number of nonzero elements that every potential nonzero entry can be included, but the performance became unacceptable. </div>

<div>

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



<div><br></div><div><br></div><div>Best,</div><div>Xin </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><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><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>
<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" 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/mailman/listinfo/ipopt</a><br>

</blockquote></div></div></div><span class="HOEnZb"><font color="#888888"><br><div>
<span style="text-indent:0px;letter-spacing:normal;font-variant:normal;text-align:auto;font-style:normal;font-weight:normal;line-height:normal;border-collapse:separate;text-transform:none;font-size:medium;white-space:normal;font-family:Helvetica;word-spacing:0px"><span style="text-indent:0px;letter-spacing:normal;font-variant:normal;font-style:normal;font-weight:normal;line-height:normal;border-collapse:separate;text-transform:none;font-size:medium;white-space:normal;font-family:Helvetica;word-spacing:0px"><div style="word-wrap:break-word">

<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" target="_blank">auliac@ann.jussieu.fr</a></div><div>tel : 01 44 27 71 70</div>

<div><br></div></div></span><br></span><br>
</div>
<br></font></span></div></div></div></blockquote></div><br></div>