<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
<div style="orphans: 2; widows: 2;" class="">
<div style="margin: 0px; line-height: normal;" class="">
<div style="margin: 0px; line-height: normal;" class="">
<div style="orphans: auto; widows: auto;" class="">Dear all, </div>
<div style="orphans: auto; widows: auto;" class="">I have been trying to use ipopt for an optimization problem with both equality and inequality constraints, but the code is extremely slow and does not converge. I have read this post <span style="orphans: 2; widows: 2;" class=""><a href="https://list.coin-or.org/pipermail/ipopt/2011-February/002340.html" class="">https://list.coin-or.org/pipermail/ipopt/2011-February/002340.html</a></span> but
 the proposed solutions do not work in my case.  </div>
<div style="orphans: auto; widows: auto;" class=""><br class="">
</div>
<div style="orphans: auto; widows: auto;" class="">I have implemented the exact same problem with Ipopt and Nlopt (<a href="http://ab-initio.mit.edu/wiki/index.php/NLopt" class="">http://ab-initio.mit.edu/wiki/index.php/NLopt</a>): For a small number of variables,
 Ipopt converges in a reasonable time, while Nlopt is much faster and also converges. Both return very similar values of the objective function f(x), but very different values of the optimizer x. Also, Nlopt terminates with error code -4: 'Halted because roundoff
 errors limited progress. (In this case, the optimization still typically returns a useful result.)’, see
<a href="http://ab-initio.mit.edu/wiki/index.php/NLopt_Reference#Error_codes_.28negative_return_values.29" class="">
http://ab-initio.mit.edu/wiki/index.php/NLopt_Reference#Error_codes_.28negative_return_values.29</a> . </div>
<div style="orphans: auto; widows: auto;" class=""><br class="">
</div>
<div style="orphans: auto; widows: auto;" class="">For a larger number of variables, Nlopt gives the same error message, while Ipopt keeps running and is very slow. Please find enclosed the output of the first few optimization steps: </div>
<div style="orphans: auto; widows: auto;" class=""><br class="">
</div>
<div style="orphans: auto; widows: auto;" class="">******************************************************************************</div>
<div style="orphans: auto; widows: auto;" class="">This program contains Ipopt, a library for large-scale nonlinear optimization.</div>
<div style="orphans: auto; widows: auto;" class=""> Ipopt is released as open source code under the Eclipse Public License (EPL).</div>
<div style="orphans: auto; widows: auto;" class="">         For more information visit
<a href="http://projects.coin-or.org/Ipopt" class="">http://projects.coin-or.org/Ipopt</a></div>
<div style="orphans: auto; widows: auto;" class="">******************************************************************************</div>
<div style="orphans: auto; widows: auto;" class=""><br class="">
</div>
<div style="orphans: auto; widows: auto;" class="">This is Ipopt version 3.12.8, running with linear solver ma27.</div>
<div style="orphans: auto; widows: auto;" class=""><br class="">
</div>
<div style="orphans: auto; widows: auto;" class="">Number of nonzeros in equality constraint Jacobian...:      800</div>
<div style="orphans: auto; widows: auto;" class="">Number of nonzeros in inequality constraint Jacobian.:    13200</div>
<div style="orphans: auto; widows: auto;" class="">Number of nonzeros in Lagrangian Hessian.............:        0</div>
<div style="orphans: auto; widows: auto;" class=""><br class="">
</div>
<div style="orphans: auto; widows: auto;" class="">Total number of variables............................:      400</div>
<div style="orphans: auto; widows: auto;" class="">                     variables with only lower bounds:      400</div>
<div style="orphans: auto; widows: auto;" class="">                variables with lower and upper bounds:        0</div>
<div style="orphans: auto; widows: auto;" class="">                     variables with only upper bounds:        0</div>
<div style="orphans: auto; widows: auto;" class="">Total number of equality constraints.................:        2</div>
<div style="orphans: auto; widows: auto;" class="">Total number of inequality constraints...............:      432</div>
<div style="orphans: auto; widows: auto;" class="">        inequality constraints with only lower bounds:        0</div>
<div style="orphans: auto; widows: auto;" class="">   inequality constraints with lower and upper bounds:        0</div>
<div style="orphans: auto; widows: auto;" class="">        inequality constraints with only upper bounds:      432</div>
<div style="orphans: auto; widows: auto;" class=""><br class="">
</div>
<div style="orphans: auto; widows: auto;" class="">iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls</div>
<div style="orphans: auto; widows: auto;" class="">   0  5.8573432e-01 3.55e+01 1.00e+00  -1.0 0.00e+00    -  0.00e+00 0.00e+00   0</div>
<div style="orphans: auto; widows: auto;" class="">   1  5.8667165e+00 8.10e+00 2.26e+01  -1.0 1.55e+01    -  4.33e-02 1.00e+00f  1</div>
<div style="orphans: auto; widows: auto;" class="">   2  5.8735122e+00 8.02e+00 2.24e+01  -1.0 3.19e+01    -  1.30e-01 1.02e-02h  1</div>
<div style="orphans: auto; widows: auto;" class="">   3  6.5049917e+00 4.44e+00 1.03e+01  -1.0 5.17e+01    -  4.75e-01 5.29e-01f  1</div>
<div style="orphans: auto; widows: auto;" class="">   4  6.7514177e+00 3.54e+00 8.06e+00  -1.0 3.94e+01    -  4.15e-01 2.12e-01f  1</div>
<div style="orphans: auto; widows: auto;" class="">   5  7.1210292e+00 2.40e+00 7.43e+00  -1.0 2.76e+01    -  7.30e-01 3.34e-01f  1</div>
<div style="orphans: auto; widows: auto;" class="">   6  7.9960946e+00 3.57e-02 6.89e-02  -1.0 1.60e+01    -  1.00e+00 1.00e+00f  1</div>
<div style="orphans: auto; widows: auto;" class="">   7  7.9830592e+00 1.49e-05 4.44e-03  -1.7 1.01e+00    -  1.00e+00 1.00e+00h  1</div>
<div style="orphans: auto; widows: auto;" class="">   8  7.9829901e+00 2.69e-08 6.90e-05  -3.8 2.66e-01    -  9.84e-01 1.00e+00h  1</div>
<div style="orphans: auto; widows: auto;" class="">   9  7.9758753e+00 5.48e-04 7.65e-03  -5.7 2.24e+01    -  1.09e-01 1.00e+00f  1</div>
<div style="orphans: auto; widows: auto;" class="">iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls</div>
<div style="orphans: auto; widows: auto;" class="">  10  7.9654460e+00 1.25e-03 4.39e-03  -5.7 2.20e+01    -  3.39e-01 1.00e+00h  1</div>
<div style="orphans: auto; widows: auto;" class="">  11  7.9650046e+00 7.57e-08 8.18e-05  -5.7 1.71e-03    -  1.00e+00 1.00e+00h  1</div>
<div style="orphans: auto; widows: auto;" class="">  12  7.9645656e+00 1.86e-06 1.22e-04  -5.7 4.99e-01    -  7.80e-01 9.60e-01f  1</div>
<div style="orphans: auto; widows: auto;" class="">  13  7.9619671e+00 5.92e-05 1.60e-04  -5.7 9.25e+01    -  3.52e-02 2.33e-02f  1</div>
<div style="orphans: auto; widows: auto;" class="">  14  7.9602161e+00 9.25e-05 1.84e-04  -5.7 8.94e+01    -  1.08e-01 1.79e-02f  1</div>
<div style="orphans: auto; widows: auto;" class="">  15  7.9490928e+00 2.01e-03 5.78e-04  -5.7 8.53e+01    -  3.00e-01 1.28e-01f  1</div>
<div style="orphans: auto; widows: auto;" class="">  16  7.9484272e+00 1.30e-07 2.00e-01  -5.7 1.99e-01    -  1.00e+00 1.00e+00f  1</div>
<div style="orphans: auto; widows: auto;" class="">  17  7.9457169e+00 1.68e-04 1.70e-01  -5.7 7.55e+01    -  1.50e-01 4.02e-02f  1</div>
<div style="orphans: auto; widows: auto;" class="">  18  7.9329163e+00 4.45e-03 8.87e-02  -5.7 7.74e+01    -  4.74e-01 1.82e-01f  1</div>
<div style="orphans: auto; widows: auto;" class="">  19  7.9167068e+00 1.11e-02 7.65e-02  -5.7 8.62e+01    -  1.36e-01 1.57e-01f  1</div>
<div style="orphans: auto; widows: auto;" class=""><br class="">
</div>
<div style="orphans: auto; widows: auto;" class=""><br class="">
</div>
<div style="orphans: auto; widows: auto;" class="">and of the ‘last ones’ </div>
<div style="orphans: auto; widows: auto;" class=""><br class="">
</div>
<div style="orphans: auto; widows: auto;" class="">iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls</div>
<div style="orphans: auto; widows: auto;" class="">307850  7.6043552e+00 1.22e-12 1.29e-04  -5.7 1.29e-04    -  1.00e+00 1.00e+00h  1</div>
<div style="orphans: auto; widows: auto;" class="">307851  7.6043549e+00 1.20e-12 1.29e-04  -5.7 1.29e-04    -  1.00e+00 1.00e+00h  1</div>
<div style="orphans: auto; widows: auto;" class="">307852  7.6043546e+00 1.23e-12 1.29e-04  -5.7 1.29e-04    -  1.00e+00 1.00e+00h  1</div>
<div style="orphans: auto; widows: auto;" class="">307853  7.6043543e+00 1.16e-12 1.29e-04  -5.7 1.29e-04    -  1.00e+00 1.00e+00h  1</div>
<div style="orphans: auto; widows: auto;" class="">307854  7.6043540e+00 1.23e-12 1.29e-04  -5.7 1.29e-04    -  1.00e+00 1.00e+00h  1</div>
<div style="orphans: auto; widows: auto;" class="">307855  7.6043538e+00 1.19e-12 1.29e-04  -5.7 1.29e-04    -  1.00e+00 1.00e+00h  1</div>
<div style="orphans: auto; widows: auto;" class="">307856  7.6043535e+00 1.18e-12 1.29e-04  -5.7 1.29e-04    -  1.00e+00 1.00e+00h  1</div>
<div style="orphans: auto; widows: auto;" class="">307857  7.6043532e+00 1.20e-12 1.29e-04  -5.7 1.29e-04    -  1.00e+00 1.00e+00h  1</div>
<div style="orphans: auto; widows: auto;" class="">307858  7.6043529e+00 1.21e-12 1.29e-04  -5.7 1.29e-04    -  1.00e+00 1.00e+00h  1</div>
<div style="orphans: auto; widows: auto;" class="">307859  7.6043527e+00 1.21e-12 1.29e-04  -5.7 1.29e-04    -  1.00e+00 1.00e+00h  1</div>
<div style="orphans: auto; widows: auto;" class="">iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls</div>
<div style="orphans: auto; widows: auto;" class="">307860  7.6043524e+00 1.21e-12 1.29e-04  -5.7 1.29e-04    -  1.00e+00 1.00e+00h  1</div>
<div style="orphans: auto; widows: auto;" class="">307861  7.6043521e+00 1.18e-12 1.29e-04  -5.7 1.29e-04    -  1.00e+00 1.00e+00h  1</div>
<div style="orphans: auto; widows: auto;" class="">307862  7.6043518e+00 1.18e-12 1.29e-04  -5.7 1.29e-04    -  1.00e+00 1.00e+00h  1</div>
<div style="orphans: auto; widows: auto;" class="">307863  7.6043515e+00 1.22e-12 1.29e-04  -5.7 1.29e-04    -  1.00e+00 1.00e+00h  1</div>
<div style="orphans: auto; widows: auto;" class="">307864  7.6043513e+00 1.22e-12 1.29e-04  -5.7 1.29e-04    -  1.00e+00 1.00e+00h  1</div>
<div style="orphans: auto; widows: auto;" class="">307865  7.6043510e+00 1.18e-12 1.29e-04  -5.7 1.29e-04    -  1.00e+00 1.00e+00h  1</div>
<div style="orphans: auto; widows: auto;" class="">307866  7.6043507e+00 1.23e-12 1.29e-04  -5.7 1.29e-04    -  1.00e+00 1.00e+00h  1</div>
<div style="orphans: auto; widows: auto;" class="">307867  7.6043504e+00 1.15e-12 1.29e-04  -5.7 1.29e-04    -  1.00e+00 1.00e+00h  1</div>
<div style="orphans: auto; widows: auto;" class="">307868  7.6043502e+00 1.26e-12 1.29e-04  -5.7 1.29e-04    -  1.00e+00 1.00e+00h  1</div>
<div style="orphans: auto; widows: auto;" class="">307869  7.6043499e+00 1.13e-12 1.29e-04  -5.7 1.29e-04    -  1.00e+00 1.00e+00h  1</div>
<div style="orphans: auto; widows: auto;" class=""><br class="">
</div>
<div style="orphans: auto; widows: auto;" class="">Also, here is the content of the .opt file</div>
<div style="orphans: auto; widows: auto;" class=""><br class="">
</div>
<div style="orphans: auto; widows: auto;" class="">hessian_approximation limited-memory</div>
<div style="orphans: auto; widows: auto;" class=""><br class="">
</div>
<div style="orphans: auto; widows: auto;" class="">Do you have any idea of how to fix this? </div>
<div style="orphans: auto; widows: auto;" class=""><br class="">
</div>
<div style="orphans: auto; widows: auto;" class="">Thank you</div>
<div style="orphans: auto; widows: auto;" class="">Best,</div>
<div style="orphans: auto; widows: auto;" class="">Michele </div>
<div style="font-weight: bold;" class=""><br class="">
</div>
</div>
</div>
</div>
</body>
</html>