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"><murali@mavericks.cc></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'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 "derivative_test second-order" gives "No errors detected by derivative checker". <br><br>initial point of [0,0,0,0] doesn'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'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>