[Ipopt] Slow convergence of Ipopt
Castellana Michele
Michele.Castellana at curie.fr
Fri Aug 4 08:48:49 EDT 2017
Dear all,
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 https://list.coin-or.org/pipermail/ipopt/2011-February/002340.html but the proposed solutions do not work in my case.
I have implemented the exact same problem with Ipopt and Nlopt (http://ab-initio.mit.edu/wiki/index.php/NLopt): 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 http://ab-initio.mit.edu/wiki/index.php/NLopt_Reference#Error_codes_.28negative_return_values.29 .
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:
******************************************************************************
This program contains Ipopt, a library for large-scale nonlinear optimization.
Ipopt is released as open source code under the Eclipse Public License (EPL).
For more information visit http://projects.coin-or.org/Ipopt
******************************************************************************
This is Ipopt version 3.12.8, running with linear solver ma27.
Number of nonzeros in equality constraint Jacobian...: 800
Number of nonzeros in inequality constraint Jacobian.: 13200
Number of nonzeros in Lagrangian Hessian.............: 0
Total number of variables............................: 400
variables with only lower bounds: 400
variables with lower and upper bounds: 0
variables with only upper bounds: 0
Total number of equality constraints.................: 2
Total number of inequality constraints...............: 432
inequality constraints with only lower bounds: 0
inequality constraints with lower and upper bounds: 0
inequality constraints with only upper bounds: 432
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
0 5.8573432e-01 3.55e+01 1.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0
1 5.8667165e+00 8.10e+00 2.26e+01 -1.0 1.55e+01 - 4.33e-02 1.00e+00f 1
2 5.8735122e+00 8.02e+00 2.24e+01 -1.0 3.19e+01 - 1.30e-01 1.02e-02h 1
3 6.5049917e+00 4.44e+00 1.03e+01 -1.0 5.17e+01 - 4.75e-01 5.29e-01f 1
4 6.7514177e+00 3.54e+00 8.06e+00 -1.0 3.94e+01 - 4.15e-01 2.12e-01f 1
5 7.1210292e+00 2.40e+00 7.43e+00 -1.0 2.76e+01 - 7.30e-01 3.34e-01f 1
6 7.9960946e+00 3.57e-02 6.89e-02 -1.0 1.60e+01 - 1.00e+00 1.00e+00f 1
7 7.9830592e+00 1.49e-05 4.44e-03 -1.7 1.01e+00 - 1.00e+00 1.00e+00h 1
8 7.9829901e+00 2.69e-08 6.90e-05 -3.8 2.66e-01 - 9.84e-01 1.00e+00h 1
9 7.9758753e+00 5.48e-04 7.65e-03 -5.7 2.24e+01 - 1.09e-01 1.00e+00f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
10 7.9654460e+00 1.25e-03 4.39e-03 -5.7 2.20e+01 - 3.39e-01 1.00e+00h 1
11 7.9650046e+00 7.57e-08 8.18e-05 -5.7 1.71e-03 - 1.00e+00 1.00e+00h 1
12 7.9645656e+00 1.86e-06 1.22e-04 -5.7 4.99e-01 - 7.80e-01 9.60e-01f 1
13 7.9619671e+00 5.92e-05 1.60e-04 -5.7 9.25e+01 - 3.52e-02 2.33e-02f 1
14 7.9602161e+00 9.25e-05 1.84e-04 -5.7 8.94e+01 - 1.08e-01 1.79e-02f 1
15 7.9490928e+00 2.01e-03 5.78e-04 -5.7 8.53e+01 - 3.00e-01 1.28e-01f 1
16 7.9484272e+00 1.30e-07 2.00e-01 -5.7 1.99e-01 - 1.00e+00 1.00e+00f 1
17 7.9457169e+00 1.68e-04 1.70e-01 -5.7 7.55e+01 - 1.50e-01 4.02e-02f 1
18 7.9329163e+00 4.45e-03 8.87e-02 -5.7 7.74e+01 - 4.74e-01 1.82e-01f 1
19 7.9167068e+00 1.11e-02 7.65e-02 -5.7 8.62e+01 - 1.36e-01 1.57e-01f 1
and of the ‘last ones’
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
307850 7.6043552e+00 1.22e-12 1.29e-04 -5.7 1.29e-04 - 1.00e+00 1.00e+00h 1
307851 7.6043549e+00 1.20e-12 1.29e-04 -5.7 1.29e-04 - 1.00e+00 1.00e+00h 1
307852 7.6043546e+00 1.23e-12 1.29e-04 -5.7 1.29e-04 - 1.00e+00 1.00e+00h 1
307853 7.6043543e+00 1.16e-12 1.29e-04 -5.7 1.29e-04 - 1.00e+00 1.00e+00h 1
307854 7.6043540e+00 1.23e-12 1.29e-04 -5.7 1.29e-04 - 1.00e+00 1.00e+00h 1
307855 7.6043538e+00 1.19e-12 1.29e-04 -5.7 1.29e-04 - 1.00e+00 1.00e+00h 1
307856 7.6043535e+00 1.18e-12 1.29e-04 -5.7 1.29e-04 - 1.00e+00 1.00e+00h 1
307857 7.6043532e+00 1.20e-12 1.29e-04 -5.7 1.29e-04 - 1.00e+00 1.00e+00h 1
307858 7.6043529e+00 1.21e-12 1.29e-04 -5.7 1.29e-04 - 1.00e+00 1.00e+00h 1
307859 7.6043527e+00 1.21e-12 1.29e-04 -5.7 1.29e-04 - 1.00e+00 1.00e+00h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
307860 7.6043524e+00 1.21e-12 1.29e-04 -5.7 1.29e-04 - 1.00e+00 1.00e+00h 1
307861 7.6043521e+00 1.18e-12 1.29e-04 -5.7 1.29e-04 - 1.00e+00 1.00e+00h 1
307862 7.6043518e+00 1.18e-12 1.29e-04 -5.7 1.29e-04 - 1.00e+00 1.00e+00h 1
307863 7.6043515e+00 1.22e-12 1.29e-04 -5.7 1.29e-04 - 1.00e+00 1.00e+00h 1
307864 7.6043513e+00 1.22e-12 1.29e-04 -5.7 1.29e-04 - 1.00e+00 1.00e+00h 1
307865 7.6043510e+00 1.18e-12 1.29e-04 -5.7 1.29e-04 - 1.00e+00 1.00e+00h 1
307866 7.6043507e+00 1.23e-12 1.29e-04 -5.7 1.29e-04 - 1.00e+00 1.00e+00h 1
307867 7.6043504e+00 1.15e-12 1.29e-04 -5.7 1.29e-04 - 1.00e+00 1.00e+00h 1
307868 7.6043502e+00 1.26e-12 1.29e-04 -5.7 1.29e-04 - 1.00e+00 1.00e+00h 1
307869 7.6043499e+00 1.13e-12 1.29e-04 -5.7 1.29e-04 - 1.00e+00 1.00e+00h 1
Also, here is the content of the .opt file
hessian_approximation limited-memory
Do you have any idea of how to fix this?
Thank you
Best,
Michele
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/ipopt/attachments/20170804/66875428/attachment-0001.html>
More information about the Ipopt
mailing list