<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Feb 16, 2013 at 12:27 AM, Stefan Vigerske <span dir="ltr"><<a href="mailto:stefan@math.hu-berlin.de" target="_blank">stefan@math.hu-berlin.de</a>></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/15/2013 09:36 PM, Xin Zhao wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Thank you all.<br>
<br>
<br>
I am trying to do it the following way:<br>
When changing the sparsity structure, I return false in eval_* function and<br>
restart the Ipopt.<br>
</blockquote>
<br></div>
Restarting an interior point solver... good luck.<div class="im"><br></div></blockquote><div style>I don't mean a warm start. Because only variables matter, I will only copy the variables. And use the variables copied as a start point and reconstruct anything else. Even in this case, does it depend on my luck?</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
My question now would be what will happen, if false returned? Will<br>
finalize_solution be called so that I can identify the status and copy the<br>
data?<br>
</blockquote>
<br></div>
Not so sure.<br>
The intermediate_callback method is meant to implement user interruption. It would be better if you can use that one.<br>
<br>
Stefan<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">
<br>
Best,<br>
Xin<br>
<br>
<br>
On Fri, Feb 15, 2013 at 12:20 PM, Sylvain Auliac <<a href="mailto:auliac@ann.jussieu.fr" target="_blank">auliac@ann.jussieu.fr</a>>wrote:<br>
<br>
</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">
Hi,<br>
if the hessian matrix have too much non-zero elements for being<br>
considered a sparse one, you might try using the BFGS approximation. That<br>
said, it will also slow the optimization process down, but maybe less than<br>
using a full exact hessian?<br>
<br>
Le 14 févr. 2013 à 23:44, Xin Zhao a écrit :<br>
<br>
Thanks, Stefan.<br>
<br>
I've tried to set such a number of nonzero elements that every potential<br>
nonzero entry can be included, but the performance became unacceptable.<br>
<br>
Is there any option to change the sparsity structure at each iteration to<br>
work this out?<br>
Or maybe, it is even slower than setting a large number of nonzero entries<br>
to change the sparsity structure at each iteration?<br>
<br>
<br>
Best,<br>
Xin<br>
<br>
<br>
On Fri, Feb 15, 2013 at 1:17 AM, Stefan Vigerske <<a href="mailto:stefan@math.hu-berlin.de" target="_blank">stefan@math.hu-berlin.de</a><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
wrote:<br>
</blockquote>
<br>
</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">
Hi,<br>
<br>
<br>
On 02/14/2013 10:48 PM, Xin Zhao wrote:<br>
<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>
<br>
</blockquote>
<br>
No. During initialization, you should specify a sparsity structure that<br>
is valid during the whole solution process. You may then have to put 0<br>
values into the hessian from time to time.<br>
<br>
<br>
2. eval_h are called with const Ipopt::Number* x = NULL first or<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Ipopt::Index iRow = NULL first.<br>
<br>
</blockquote>
<br>
At the beginning, Ipopt calls eval_h with x = NULL to get the sparsity<br>
structure. Later, it calls with x != NULL to get the values w.r.t. the<br>
initially specified sparsity structure.<br>
<br>
Same for the jacobian.<br>
<br>
Stefan<br>
<br>
<br>
</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">
<br>
Thanks.<br>
<br>
<br>
Best,<br>
Xin<br>
<br>
<br>
On Thu, Feb 14, 2013 at 11:20 PM, Xin Zhao <<a href="mailto:sean.null@gmail.com" target="_blank">sean.null@gmail.com</a>> wrote:<br>
<br>
Dear all,<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<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>
<br>
</blockquote>
<br>
<br></div></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><<a href="http://list.coin-or.org/mailman/listinfo/ipopt" target="_blank">http://<u></u>list.coin-or.org/mailman/<u></u>listinfo/ipopt</a>><br>
<br>
<br>
</blockquote>
<br>
</blockquote><div class="im">
______________________________<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>
<br>
Sylvain Auliac<br>
Laboratoire Jacques-Louis Lions<br>
Université Pierre et Marie Curie<br>
mail: <a href="mailto:auliac@ann.jussieu.fr" target="_blank">auliac@ann.jussieu.fr</a><br>
tel : 01 44 27 71 70<br>
<br>
<br>
<br>
<br>
<br>
</div></blockquote><div class="im">
<br>
<br>
<br>
______________________________<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>
</div></blockquote>
<br>
</blockquote></div><br></div></div>