[Ipopt] IPOPT solution is not optimal

Roni Volyk ronivolyk at gmail.com
Wed Mar 29 17:17:41 EDT 2017


I am trying to minimize a non-linear objective function with IPOPT, and
it's returning a solution that is not optimal.

Even if I use the optimal solution as the starting point, IPOPT converges
to a worse solution.

This is the output when I run with a bad starting point:

iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
   0  1.5915818e+00 4.39e+04 1.00e+00  -1.0 0.00e+00    -  0.00e+00
0.00e+00   0
   1r 1.5915818e+00 4.39e+04 9.99e+02   3.4 0.00e+00    -  0.00e+00
5.24e-14R  2
   2r 1.5916062e+00 4.39e+04 9.99e+02   3.4 2.47e+05    -  6.88e-07
3.09e-05f  6
   3r 1.5913804e+00 4.39e+04 9.98e+02   3.4 1.28e+05    -  1.39e-02
5.24e-04f  1 Nhj
   4r 1.7302195e+00 3.47e+04 1.60e+04   3.4 1.17e+05    -  4.36e-03
1.70e-01f  1
   5  1.7259751e+00 3.48e+04 2.47e+00  -1.0 1.71e+05    -  8.34e-02
2.23e-03h  1 Nhj
   6  1.7259180e+00 3.49e+04 8.31e+00  -1.0 1.69e+05    -  5.66e-04
3.05e-05h  1
   7  1.7213054e+00 3.48e+04 2.40e+00  -1.0 1.60e+05    -  2.83e-05
2.57e-03f  1
   8  1.7156613e+00 3.47e+04 2.36e+00  -1.0 1.59e+05    -  2.10e-03
3.17e-03h  1
   9  1.7153077e+00 3.46e+04 2.38e+00  -1.0 1.61e+05    -  7.58e-04
1.97e-04h  1
...
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  82  5.2283523e-02 1.09e-11 1.32e-07  -8.6 3.57e-02  -5.4 1.00e+00
1.00e+00f  1 LA
  83  5.2283284e-02 1.46e-11 1.31e-07  -8.6 1.06e-01  -5.9 1.00e+00
1.00e+00h  1 LA
  84  5.2282973e-02 2.91e-11 6.68e-06  -8.6 3.02e-01  -6.4 1.00e+00
4.53e-01h  1 L
  85  5.2282772e-02 5.96e-08 4.90e-08  -8.6 3.57e-01  -6.9 1.00e+00
1.00e+00f  1 LA
  86  5.2281822e-02 2.18e-11 4.81e-08  -8.6 1.05e+00  -7.3 1.00e+00
1.00e+00h  1 LA
  87  5.2279361e-02 2.18e-11 4.47e-08  -8.6 2.93e+00  -7.8 1.00e+00
1.00e+00h  1 LA
  88  5.2273070e-02 2.21e-11 3.66e-08  -8.6 7.20e+00  -8.3 1.00e+00
1.00e+00h  1 LA
  89  5.2260125e-02 2.91e-11 2.19e-08  -8.6 1.29e+01  -8.8 1.00e+00
1.00e+00h  1 LA
  90  5.2241683e-02 2.91e-11 1.31e-08  -9.0 2.31e+01  -9.2 1.00e+00
1.00e+00h  1 LA
  91  5.2227314e-02 2.91e-11 7.68e-09  -9.0 4.08e+01  -9.7 1.00e+00
1.00e+00h  1 L

And this is the output when I run with the optimal solution as the starting
point:

iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
   0  4.2238263e-02 7.20e-10 1.00e+00  -1.0 0.00e+00    -  0.00e+00
0.00e+00   0
   1  4.2238710e-02 9.13e-10 6.51e+06  -1.0 2.34e+00    -  2.53e-07
6.51e-01f  1
   2  4.2238710e-02 9.02e-10 3.42e+06  -1.0 8.14e+02    -  7.01e-01
7.01e-07f  1 Nhj
   3  4.2240948e-02 1.82e-11 2.40e+06  -1.0 8.85e-01    -  1.98e-01
1.00e+00f  1
   4  4.2243737e-02 1.82e-11 5.15e+05  -1.0 1.10e+00    -  7.85e-01
1.00e+00f  1
   5  4.2256686e-02 1.46e-11 3.29e+05  -1.0 5.09e+00    -  3.62e-01
1.00e+00f  1
   6  4.2276907e-02 3.64e-11 7.15e+04  -1.0 7.89e+00    -  7.82e-01
1.00e+00f  1
   7  4.2358872e-02 7.28e-12 4.53e+04  -1.0 3.46e+01    -  3.67e-01
8.98e-01f  1
   8  4.2500557e-02 3.64e-11 9.56e+03  -1.0 5.16e+01    -  7.89e-01
1.00e+00f  1
   9  4.2549360e-02 1.46e-11 2.77e+06  -1.7 9.32e+01    -  7.48e-01
4.02e-01f  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  10  4.3022272e-02 5.82e-11 4.81e+05  -1.7 2.12e+02    -  7.61e-01
1.00e+00f  1
  11  4.3237732e-02 1.46e-11 3.11e+05  -1.7 1.08e+03    -  3.54e-01
1.11e-01f  1
  12  4.6695825e-02 4.66e-10 1.35e+05  -1.7 1.33e+03    -  5.65e-01
1.00e+00f  1
  13  4.8140406e-02 4.66e-10 7.16e+04  -1.7 3.20e+03    -  4.71e-01
1.65e-01f  1
  14  6.8543786e-02 1.86e-09 2.54e+04  -1.7 4.66e+03    -  6.45e-01
1.00e+00f  1
  15  7.7732125e-02 7.28e-12 1.45e+04  -1.7 9.09e+03    -  4.29e-01
2.44e-01f  1
  16  1.3194167e-01 1.46e-11 3.45e+03  -1.7 1.21e+04    -  7.62e-01
1.00e+00f  1
  17  1.5738427e-01 1.46e-11 2.23e-07  -1.7 2.79e+04    -  1.00e+00
1.00e+00f  1
  18  9.7878546e-02 1.49e-08 1.46e+05  -8.6 2.56e+04    -  6.29e-01
7.02e-01f  1
  19  8.5848103e-02 2.91e-11 6.48e+04  -8.6 1.13e+04    -  7.43e-01
5.71e-01f  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  20  7.6224343e-02 1.49e-08 1.95e+03  -8.6 1.74e+04    -  6.69e-01
7.60e-01f  1
  21  7.2006155e-02 1.09e-11 2.87e+04  -8.6 7.50e+03    -  7.52e-01
2.76e-01f  1
  22  6.0908188e-02 7.59e-12 6.76e+03  -8.6 6.88e+03    -  8.01e-01
7.77e-01f  1
  23  5.6481364e-02 2.98e-08 2.71e+03  -8.6 2.67e+03    -  8.92e-01
6.92e-01f  1
  24  5.3171781e-02 1.46e-11 1.74e+02  -8.6 3.88e+03    -  8.61e-01
9.28e-01f  1
  25  5.2347678e-02 1.49e-08 1.40e+00  -8.6 2.14e+03    -  9.70e-01
1.00e+00f  1
  26  5.2289596e-02 2.98e-08 1.34e-02  -8.6 8.67e+03    -  9.90e-01
5.25e-01h  1
  27  5.2234159e-02 1.46e-11 3.65e-12  -8.6 5.00e+04    -  1.00e+00
1.00e+00f  1 A
  28  5.2234158e-02 5.96e-08 2.22e-08  -8.6 2.22e-04  -4.0 1.00e+00
1.00e+00h  1 LA
  29  5.2234158e-02 2.91e-11 1.40e-01  -9.0 1.83e-03  -4.5 1.00e+00
1.25e-01h  4 L
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  30  5.2234154e-02 2.91e-11 4.29e-08  -9.0 3.87e-03  -5.0 1.00e+00
1.00e+00H  1 LA
  31  5.2234151e-02 2.91e-11 2.17e-08  -9.0 5.87e-03  -5.4 1.00e+00
1.00e+00h  1 LA
  32  5.2234138e-02 1.46e-11 2.18e-08  -9.0 1.77e-02  -5.9 1.00e+00
1.00e+00h  1 LA
  33  5.2234099e-02 5.96e-08 2.18e-08  -9.0 5.29e-02  -6.4 1.00e+00
1.00e+00h  1 LA
  34  5.2233984e-02 5.96e-08 2.16e-08  -9.0 1.57e-01  -6.9 1.00e+00
1.00e+00h  1 LA
  35  5.2233647e-02 1.46e-11 2.11e-08  -9.0 4.61e-01  -7.3 1.00e+00
1.00e+00h  1 LA
  36  5.2232686e-02 2.21e-11 1.96e-08  -9.0 1.29e+00  -7.8 1.00e+00
1.00e+00h  1 LA
  37  5.2230211e-02 5.96e-08 1.60e-08  -9.0 3.16e+00  -8.3 1.00e+00
1.00e+00h  1 LA
  38  5.2225108e-02 2.91e-11 9.58e-09  -9.0 5.66e+00  -8.8 1.00e+00
1.00e+00h  1 L

I already tried to change the Termination options, and I always get the
same result. I can't understand why it run away from the starting point to
a worse point.

Any ideas?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/ipopt/attachments/20170329/4e4520f7/attachment.html>


More information about the Ipopt mailing list