Never mind. I think I found a bug in computing the hessian of the lagrangian.<br><br><div class="gmail_quote">On Sat, Jun 19, 2010 at 12:03 PM, MuraliR <span dir="ltr">&lt;murali@mavericks.cc&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Hello,<br>I am having trouble getting the <a href="http://www.coin-or.org/Ipopt/documentation/node28.html" target="_blank">tutorial example</a>   to work. Unfortunately, giving my code is probably not helpful as I am calling a C++ layer written on top of ipopt by someone else.<br>

<br>The problem is that ipopt reaches the max. iterations (3000) and then dumps core.<br>even though it passes the derivative checks, the objective and constraint functions return correct values, and the problem summary printed by ipopt looks right.<br>

<br>I am hoping someone can give me a pointer on what to try next.<br><br>The relevant info:<br><br>I don&#39;t have control over the initial point. The library always uses a vector of zeroes.<br> <br>Evaluating my objective and constraint functions at the known optimal point gives correct values.<br>

<br>Running with &quot;derivative_test second-order&quot; gives &quot;No errors detected by derivative checker&quot;. <br><br>initial point of [0,0,0,0] doesn&#39;t appear to be the problem (I found that a different implementation of the example works fine with that initial point)<br>

<br>The derivative checker, contrary to the doc, doesn&#39;t use a the given initial point even when it is feasible. It uses a random looking point that is the same each time I run the program, but different for the two implementations I am trying.<br>

<br>The problem summaries for the two implementation are identical.<br><br>Here are the first two iterations:<br>Non-working implementation<br><span style="font-family: courier new,monospace;">iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">   0  4.1009029e+00 3.59e+01 1.54e+00  -1.0 0.00e+00    -  0.00e+00 0.00e+00   0</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">   1  6.3736464e+00 3.43e+01 2.36e+01  -1.0 5.89e+00    -  2.19e-03 4.20e-02f  1</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">[...]</span><br><br style="font-family: courier new,monospace;"><span style="font-family: arial,helvetica,sans-serif;">Working implementation:</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">   0  4.1009029e+00 3.59e+01 1.54e+00   0.0 0.00e+00    -  0.00e+00 0.00e+00   0</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">   1  6.3052937e+00 3.43e+01 2.38e+01  -5.7 5.89e+00    -  2.16e-03 4.20e-02h  1</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">[...]</span><br style="font-family: courier new,monospace;">

<br>Thanks,<br><font color="#888888">MuraliR<br>
</font></blockquote></div><br><br clear="all"><br>-- <br>mrD<br>