<meta http-equiv="content-type" content="text/html; charset=utf-8">Some more ideas:<div><br></div><div>- scaling is probably the single most important thing to look into. make sure that - if possible - all gradients and hessian values are in a common range of say 0.01 ... 100</div>
<div>- Are any of your constraints linearly dependent (or may become linearly dependent at the solution)? </div><br><div class="gmail_quote">On Fri, Feb 25, 2011 at 4:23 PM, Uwe Nowak <span dir="ltr">&lt;<a href="mailto:uwe.nowak@itwm.fraunhofer.de">uwe.nowak@itwm.fraunhofer.de</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Hello!<br>
<br>
It is my own implementation (C++ interface).<br>
<br>
The derivative checker did not complain (for smaller instances) and<br>
several unit tests (for toy examples) worked successfully. However of<br>
course there might be some hidden bugs I did not find.<br>
<br>
Best Regards,<br>
Uwe<br>
<br>
<br>
Am 25.02.2011 16:11, schrieb Ashutosh Mahajan:<br>
<div><div></div><div class="h5">&gt; How do you input your problem: AMPL or your own interface? Slow convergence is<br>
&gt; sometimes a sign of incorrectly evaluated hessian.<br>
&gt;<br>
&gt; --<br>
&gt; regards<br>
&gt; Ashutosh Mahajan<br>
&gt; <a href="http://coral.ie.lehigh.edu/~asm4" target="_blank">http://coral.ie.lehigh.edu/~asm4</a><br>
&gt;<br>
&gt; On Fri, Feb 25, 2011 at 01:52:51PM +0100, Uwe Nowak wrote:<br>
&gt;&gt; Hello!<br>
&gt;&gt;<br>
&gt;&gt; I am trying to solve some circle packing related problems with IPOPT.<br>
&gt;&gt; For small to medium size problems (up to 400 Circles) everything works<br>
&gt;&gt; fine and reasonable fast. However for larger problems the Algorithm does<br>
&gt;&gt; not converge..<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;&gt; This is Ipopt version 3.9.2, running with linear solver ma27.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Number of nonzeros in equality constraint Jacobian...:        0<br>
&gt;&gt;&gt; Number of nonzeros in inequality constraint Jacobian.:  1426360<br>
&gt;&gt;&gt; Number of nonzeros in Lagrangian Hessian.............:   733017<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Total number of variables............................:     2535<br>
&gt;&gt;&gt;                       variables with only lower bounds:        0<br>
&gt;&gt;&gt;                  variables with lower and upper bounds:        0<br>
&gt;&gt;&gt;                       variables with only upper bounds:        0<br>
&gt;&gt;&gt; Total number of equality constraints.................:        0<br>
&gt;&gt;&gt; Total number of inequality constraints...............:   356590<br>
&gt;&gt;&gt;          inequality constraints with only lower bounds:   356590<br>
&gt;&gt;&gt;     inequality constraints with lower and upper bounds:        0<br>
&gt;&gt;&gt;          inequality constraints with only upper bounds:        0<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls<br>
&gt;&gt;&gt;     0  1.7720393e+06 1.99e-01 6.18e+00  -1.0 0.00e+00    -  0.00e+00 0.00e+00   0<br>
&gt;&gt;&gt;     1  1.7719897e+06 1.90e-03 1.97e-01  -1.0 1.99e-01   0.0 9.90e-01 9.90e-01f  1<br>
&gt;&gt;&gt;     2  1.7719792e+06 8.17e-07 4.14e-01  -1.0 9.04e-02  -0.5 9.91e-01 1.00e+00f  1<br>
&gt;&gt;&gt;     3  1.7719639e+06 1.63e-07 1.90e-02  -1.0 1.74e-01  -1.0 1.00e+00 1.00e+00f  1<br>
&gt;&gt;&gt;     4  1.7719359e+06 1.46e-06 1.15e-02  -2.5 3.34e-01  -1.4 1.00e+00 1.00e+00f  1<br>
&gt;&gt;&gt;     5  1.7718661e+06 1.31e-05 4.24e-02  -3.8 2.42e+00  -1.9 1.00e+00 1.00e+00f  1<br>
&gt;&gt;&gt;     6  1.7718414e+06 1.85e-06 7.36e-03  -3.8 2.30e-01  -1.5 1.00e+00 1.00e+00f  1<br>
&gt;&gt;&gt;     7  1.7717680e+06 1.66e-05 5.97e-03  -3.8 5.44e-01  -2.0 1.00e+00 1.00e+00f  1<br>
&gt;&gt;&gt;     8  1.7717406e+06 2.34e-06 5.97e-03  -3.8 2.04e-01  -1.5 1.00e+00 1.00e+00f  1<br>
&gt;&gt;&gt;     9  1.7716585e+06 2.10e-05 5.97e-03  -3.8 6.12e-01  -2.0 1.00e+00 1.00e+00f  1<br>
&gt;&gt;&gt; iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls<br>
&gt;&gt;&gt;    10  1.7716278e+06 2.96e-06 5.97e-03  -3.8 2.29e-01  -1.6 1.00e+00 1.00e+00f  1<br>
&gt;&gt;&gt;    11  1.7715352e+06 2.66e-05 7.90e-03  -3.8 1.10e+00  -2.1 1.00e+00 1.00e+00f  1<br>
&gt;&gt;&gt;    12  1.7712588e+06 2.39e-04 1.40e-02  -3.8 2.06e+00  -2.5 1.00e+00 1.00e+00f  1<br>
&gt;&gt;&gt;    13  1.7704321e+06 2.15e-03 5.96e-03  -3.8 6.18e+00  -3.0 1.00e+00 1.00e+00f  1<br>
&gt;&gt;&gt;    14  1.7679654e+06 1.92e-02 5.94e-03  -3.8 1.85e+01  -3.5 1.00e+00 1.00e+00f  1<br>
&gt;&gt;&gt;    15  1.7606816e+06 1.70e-01 7.13e-03  -3.8 5.49e+01  -4.0 1.00e+00 1.00e+00f  1<br>
&gt;&gt;&gt;    16  1.7398125e+06 1.45e+00 5.77e-02  -3.8 1.59e+02  -4.4 1.00e+00 1.00e+00f  1<br>
&gt;&gt;&gt;    17  1.6839562e+06 2.44e-01 4.15e-01  -3.8 4.34e+02  -4.9 1.00e+00 1.00e+00F  1<br>
&gt;&gt;&gt;    18  1.6647120e+06 1.52e+00 5.50e-02  -3.8 1.52e+02  -4.5 1.00e+00 1.00e+00f  1<br>
&gt;&gt;&gt;    19  1.6134541e+06 2.81e-01 3.22e-01  -3.8 4.06e+02  -5.0 1.00e+00 1.00e+00F  1<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Then many hours later...<br>
&gt;&gt;<br>
&gt;&gt;&gt; iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls<br>
&gt;&gt;&gt; 8270  3.4629818e+05 3.73e-04 3.03e-01  -5.7 3.05e+00  -5.1 3.40e-01 1.28e-02h  1<br>
&gt;&gt;&gt; 8271  3.4629149e+05 2.48e-04 2.48e-01  -5.7 1.14e+00  -4.7 7.40e-01 3.48e-01h  1<br>
&gt;&gt;&gt; 8272  3.4627186e+05 3.18e-04 1.68e-01  -5.7 3.48e+00  -5.2 3.53e-01 3.38e-01h  1<br>
&gt;&gt;&gt; 8273  3.4627111e+05 3.06e-04 1.62e-01  -5.7 1.29e+00  -4.8 3.95e-02 3.56e-02h  1<br>
&gt;&gt;&gt; 8274  3.4626946e+05 3.00e-04 3.55e-01  -5.7 4.43e+00  -5.2 3.53e-01 2.57e-02h  1<br>
&gt;&gt;&gt; 8275  3.4626407e+05 2.44e-04 2.17e-01  -5.7 1.45e+00  -4.8 1.64e-01 2.25e-01h  1<br>
&gt;&gt;&gt; 8276  3.4626263e+05 2.40e-04 3.19e-01  -5.7 5.92e+00  -5.3 1.53e-01 2.01e-02h  1<br>
&gt;&gt;&gt; 8277  3.4625715e+05 2.04e-04 1.82e-01  -5.7 1.64e+00  -4.9 4.42e-02 2.05e-01h  1<br>
&gt;&gt;&gt; 8278  3.4624521e+05 2.74e-04 1.60e-01  -5.7 7.71e+00  -5.3 1.65e-01 1.47e-01h  1<br>
&gt;&gt;&gt; 8279  3.4624204e+05 2.54e-04 3.19e-01  -5.7 2.29e+00  -4.9 3.28e-01 1.05e-01h  1<br>
&gt;&gt;&gt; iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls<br>
&gt;&gt;&gt; 8280  3.4621935e+05 3.81e-04 1.10e-01  -5.7 5.50e+00  -5.4 3.91e-02 2.53e-01h  1<br>
&gt;&gt;&gt; 8281  3.4621741e+05 3.61e-04 3.22e-01  -5.7 2.06e+00  -5.0 3.66e-01 5.74e-02h  1<br>
&gt;&gt;&gt; 8282  3.4621398e+05 3.54e-04 3.55e-01  -5.7 6.18e+00  -5.4 1.30e-01 3.39e-02h  1<br>
&gt;&gt;&gt; 8283  3.4620558e+05 3.05e-04 2.46e-01  -5.7 2.32e+00  -5.0 1.74e-01 2.22e-01h  1<br>
&gt;&gt;&gt; 8284  3.4620029e+05 3.03e-04 2.70e-01  -5.7 6.95e+00  -5.5 2.38e-01 4.65e-02h  1<br>
&gt;&gt;&gt; 8285  3.4619775e+05 2.88e-04 3.07e-01  -5.7 2.61e+00  -5.1 2.54e-01 5.98e-02h  1<br>
&gt;&gt;&gt; 8286  3.4618951e+05 2.97e-04 3.08e-01  -5.7 7.80e+00  -5.5 8.89e-02 6.48e-02h  1<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; I read the 90-minutes-introduction to IPOPT and the implementation<br>
&gt;&gt; paper. However I do not really have a feeling, why the algorithm is<br>
&gt;&gt; converging that slow.<br>
&gt;&gt;<br>
&gt;&gt; this run is started with the options<br>
&gt;&gt; tol 0.01<br>
&gt;&gt; acceptable_tol 0.05<br>
&gt;&gt; max_iter 200000<br>
&gt;&gt;<br>
&gt;&gt; So by default it should by<br>
&gt;&gt; dual_inf_tol = 1<br>
&gt;&gt; constr_viol_tol = 1e-4<br>
&gt;&gt; compl_inf_tol = 1e-4<br>
&gt;&gt;<br>
&gt;&gt; I see, that dual feasibility is stisfied but primal feasibility is not.<br>
&gt;&gt; I do not know, where to read the compl_inf value in the current<br>
&gt;&gt; iteration. Further I do not know, if the primal and dual step sizes are<br>
&gt;&gt; &quot;small&quot;...<br>
&gt;&gt;<br>
&gt;&gt; Has anybody some suggestions, why the algorithm is converging that slow?<br>
&gt;&gt;<br>
&gt;&gt; Thank you,<br>
&gt;&gt; Uwe<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; Ipopt mailing list<br>
&gt;&gt; <a href="mailto:Ipopt@list.coin-or.org">Ipopt@list.coin-or.org</a><br>
&gt;&gt; <a href="http://list.coin-or.org/mailman/listinfo/ipopt" target="_blank">http://list.coin-or.org/mailman/listinfo/ipopt</a><br>
<br>
<br>
</div></div>--<br>
<font color="#888888">Uwe Nowak<br>
Fraunhofer-Institut für Techno- und Wirtschaftsmathematik<br>
Abteilung Optimierung<br>
Fraunhofer-Platz 1<br>
D-67663 Kaiserslautern<br>
Telefon:  +49(0)631/31600-4458<br>
E-Mail:   <a href="mailto:uwe.nowak@itwm.fraunhofer.de">uwe.nowak@itwm.fraunhofer.de</a><br>
Internet: <a href="http://www.itwm.fraunhofer.de" target="_blank">www.itwm.fraunhofer.de</a><br>
</font><div><div></div><div class="h5"><br>
_______________________________________________<br>
Ipopt mailing list<br>
<a href="mailto:Ipopt@list.coin-or.org">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>
</div></div></blockquote></div><br>