[Coin-ipopt] Re: Bug report

Andreas Waechter andreasw at watson.ibm.com
Tue Apr 4 16:02:14 EDT 2006


Hi Zhiwen,

In future, please send messages regarding Ipopt to the Ipopt mailing list 
(see list.coin-or.org/mailman/listinfo/coin-ipopt)

The error message you get is not quite correct - it is not really a bug in 
Ipopt.  For some reason, Ipopt is not able to find a suitable perturbation 
factor for your problem (in the Lagrangian Hessian in the KKT system). 
This can happen, when there are invalid numbers (Inf or NaN) returned in 
the Hessian from whatever computes its values.  It can also happen, when 
the problem is very degererate or badly scaled.

One think you could try is to use the option

linear_system_scaling mc19

In the new release, it will probably be on by default, since it makes 
Ipopt more robust for badly scaled problems, even though the computation 
time in general goes up.

I hope this helps,

Andreas

On Mon, 27 Mar 2006, Zhiwen Chong wrote:

> IPOPT version: 3.0.1 (Revision 685 in svn)
> AMPL Mod file: (attached) sealtank.ocfe.mod
> Error: Exception of type: INTERNAL_ABORT in file 
> "IpPDPerturbationHandler.cpp" at line 181:
> Exception message: retval evaluated false: get_deltas_for_wrong_inertia 
> returns false.
>
> Full Output:
>
> ILOG AMPL 9.100, licensed to "mcmaster-hamilton, canada".
> AMPL Version 20021038 (Linux 2.4.18-14)
> Ipopt 3.0.1: print_level=0
> acceptable_tol=1e-3
> expect_infeasible_problem=yes
>
> Total number of variables............................:      985
>                    variables with only lower bounds:      198
>               variables with lower and upper bounds:      101
>                    variables with only upper bounds:       30
> Total number of equality constraints.................:      853
> Total number of inequality constraints...............:        0
>       inequality constraints with only lower bounds:        0
>  inequality constraints with lower and upper bounds:        0
>       inequality constraints with only upper bounds:        0
>
> iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr 
> ls
>  0  -4.9500000e+03 1.75e+04 4.11e-01  -1.0 0.00e+00    -  0.00e+00 0.00e+00 
> 0
> MA27BD returned iflag=-4.
> Increase liw from 38850 to 388500 and la from 34790 to 351270 and factorize 
> again.
>  1  -5.8088325e+03 1.75e+04 6.78e+01  -1.0 1.51e+04  -4.0 9.26e-06 6.34e-04f 
> 1
>  2  -5.8247539e+03 1.75e+04 5.71e+01  -1.0 1.50e+04  -4.5 1.04e-04 1.18e-05f 
> 1
>  3  -6.0942259e+03 1.75e+04 3.24e+02  -1.0 1.50e+04  -5.0 3.44e-03 1.99e-04f 
> 1
>  4  -9.4947772e+03 1.74e+04 6.07e+02  -1.0 1.50e+04  -4.1 4.12e-03 2.52e-03f 
> 1
>  5  -9.5304143e+03 1.74e+04 5.63e+03  -1.0 1.58e+04  -3.1 1.50e-04 2.66e-05f 
> 1
>  6r -9.5304143e+03 1.74e+04 9.99e+02   4.2 0.00e+00  -2.2 0.00e+00 1.76e-07R 
> 2
>  7r -9.5304606e+03 1.74e+04 8.40e+03   4.2 9.20e+06    -  8.57e-03 2.74e-07f 
> 1
>  8r -9.9651636e+03 7.62e+03 8.35e+03   3.5 2.41e+06    -  4.16e-03 7.13e-03f 
> 1
>  9r -1.0152454e+04 4.62e+03 8.28e+03   2.8 3.98e+05    -  1.09e-02 7.56e-03f 
> 1
> iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr 
> ls
> 10r -1.0422305e+04 2.65e+03 8.10e+03   2.1 1.62e+05    -  4.29e-02 1.21e-02f 
> 1
> 11r -1.1181448e+04 9.97e+02 7.92e+03   1.4 5.59e+04    -  1.61e-02 2.96e-02f 
> 1
> 12r -1.3302454e+04 7.13e+02 7.55e+03   1.4 2.86e+04    -  6.18e-02 1.69e-02f 
> 1
> 13r -3.0618905e+04 9.37e+02 7.18e+03   1.4 8.55e+03    -  4.10e-02 6.69e-02f 
> 1
> 14r -3.0791375e+04 9.39e+02 5.40e+03   1.4 2.12e+03    -  3.33e-01 5.33e-03f 
> 1
> 15r -3.3493795e+04 6.82e+02 3.20e+03   1.4 5.56e+02    -  8.58e-01 3.37e-01f 
> 1
> 16r -3.3067364e+04 4.06e+02 9.94e+02   1.4 3.58e+02    -  6.40e-01 6.88e-01f 
> 1
> 17r -3.2983332e+04 4.11e+02 8.71e+02   0.7 2.98e+01    -  5.87e-01 2.90e-01f 
> 1
> 18r -3.2923211e+04 4.05e+02 6.83e+02   0.7 1.21e+02    -  4.75e-01 2.16e-01f 
> 1
> 19r -3.2870569e+04 4.00e+02 5.64e+02   0.7 9.90e+01    -  5.37e-01 1.74e-01f 
> 1
> iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr 
> ls
> 20r -3.2703740e+04 3.92e+02 4.78e+02   0.7 8.38e+01    -  2.17e-01 3.57e-01f 
> 1
> 21r -3.2452353e+04 3.88e+02 4.09e+02   0.7 7.27e+01    -  5.31e-02 1.68e-01f 
> 1
> 22r -3.2351574e+04 3.86e+02 4.28e+02   0.7 1.16e+02    -  2.71e-02 4.44e-02f 
> 1
> 23r -3.2330878e+04 3.84e+02 6.83e+02   0.7 9.81e+01    -  8.36e-03 4.21e-02f 
> 1
> 24r -3.2412228e+04 3.80e+02 1.06e+03   0.7 1.32e+02    -  5.35e-02 1.11e-01f 
> 1
> 25r -3.2416767e+04 3.70e+02 7.16e+02   0.7 6.25e+01    -  3.12e-01 3.03e-01f 
> 1
> 26r -3.2253359e+04 3.54e+02 3.53e+02   0.7 4.02e+01    -  5.42e-01 7.13e-01f 
> 1
> 27  -3.2243902e+04 3.52e+02 5.23e+00  -1.0 3.57e+02  -1.3 2.50e-02 8.08e-03h 
> 1
> 28  -3.2136785e+04 3.30e+02 1.86e+02  -1.0 3.54e+02  -0.4 3.35e-02 6.12e-02h 
> 1
> 29  -3.2108241e+04 3.26e+02 2.27e+02  -1.0 3.32e+02   0.5 3.65e-03 1.33e-02h 
> 1
> iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr 
> ls
> 30  -3.2105718e+04 3.25e+02 8.25e+02  -1.0 3.28e+02   1.4 9.79e-03 1.14e-03h 
> 1
> 31  -3.2102713e+04 3.25e+02 1.88e+03  -1.0 3.27e+02   2.3 2.48e-03 1.35e-03h 
> 1
> 32  -3.2101855e+04 3.25e+02 1.04e+04  -1.0 3.27e+02   3.2 1.51e-03 3.85e-04h 
> 1
> 33  -3.2101405e+04 3.25e+02 6.31e+04  -1.0 3.27e+02   4.1 1.07e-03 2.02e-04h 
> 1
> 34  -3.2101083e+04 3.25e+02 1.83e+06  -1.0 3.27e+02   5.0 3.80e-03 1.45e-04h 
> 1
> 35  -3.2100593e+04 3.25e+02 3.19e+08  -1.0 3.27e+02   5.9 8.23e-02 2.20e-04h 
> 1
> 36  -3.2084435e+04 3.22e+02 1.09e+09  -1.0 3.27e+02   6.8 3.26e-02 7.25e-03h 
> 1
> 37  -3.2074628e+04 3.21e+02 2.95e+10  -1.0 3.24e+02   7.7 1.21e-01 4.35e-03h 
> 1
> 38  -3.2038932e+04 3.16e+02 2.95e+11  -1.0 3.23e+02   8.6 1.55e-01 1.57e-02h 
> 1
> 2 Slacks too small, adjusting variable bounds
> 39  -3.1988205e+04 3.09e+02 3.30e+12  -1.0 3.18e+02   9.5 2.26e-01 2.18e-02h 
> 1
> 8 Slacks too small, adjusting variable bounds
> iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr 
> ls
> 40  -3.1912310e+04 2.99e+02 3.37e+13  -1.0 3.11e+02  10.4 3.05e-01 3.14e-02h 
> 1
> 8 Slacks too small, adjusting variable bounds
> 41  -3.1804607e+04 2.86e+02 1.10e+14  -1.0 3.01e+02  11.3 1.36e-01 4.26e-02h 
> 1
> 8 Slacks too small, adjusting variable bounds
> 42  -3.1743067e+04 2.80e+02 4.69e+14  -1.0 2.88e+02  12.2 8.03e-02 2.29e-02h 
> 1
> 8 Slacks too small, adjusting variable bounds
> 43  -3.1707139e+04 2.76e+02 4.98e+15  -1.0 2.82e+02  13.1 1.05e-01 1.30e-02h 
> 1
> 8 Slacks too small, adjusting variable bounds
> 44  -3.1665766e+04 2.72e+02 1.18e+17  -1.0 2.78e+02  14.0 3.11e-01 1.48e-02h 
> 1
> 8 Slacks too small, adjusting variable bounds
> 45  -3.1549684e+04 2.61e+02 3.71e+17  -1.0 2.74e+02  14.9 1.29e-01 4.07e-02h 
> 1
> 8 Slacks too small, adjusting variable bounds
> 46  -3.1484932e+04 2.55e+02 7.76e+18  -1.0 2.63e+02  15.8 3.55e-01 2.16e-02h 
> 1
> 8 Slacks too small, adjusting variable bounds
> 47  -3.1340534e+04 2.43e+02 2.18e+19  -1.0 2.57e+02  16.7 1.33e-01 4.71e-02h 
> 1
> 8 Slacks too small, adjusting variable bounds
> 48  -3.1266914e+04 2.38e+02 5.96e+20  -1.0 2.45e+02  17.6 4.75e-01 2.28e-02h 
> 1
> 8 Slacks too small, adjusting variable bounds
> 49  -3.1062454e+04 2.23e+02 1.55e+21  -1.0 2.39e+02  18.5 1.68e-01 6.21e-02h 
> 1
> 8 Slacks too small, adjusting variable bounds
> iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr 
> ls
> 50  -3.0961480e+04 2.17e+02 2.96e+22  -1.0 2.24e+02  19.4 4.25e-01 2.89e-02h 
> 1
> 8 Slacks too small, adjusting variable bounds
> 51  -3.0759759e+04 2.04e+02 1.33e+23  -1.0 2.18e+02  20.3 2.55e-01 5.64e-02h 
> 1
> 8 Slacks too small, adjusting variable bounds
> 52  -3.0615625e+04 1.97e+02 1.72e+24  -1.0 2.06e+02  21.2 4.39e-01 3.84e-02h 
> 1
> 8 Slacks too small, adjusting variable bounds
> 53  -3.0388934e+04 1.85e+02 1.05e+25  -1.0 1.98e+02  22.1 3.60e-01 5.88e-02h 
> 1
> 8 Slacks too small, adjusting variable bounds
> 54  -3.0183637e+04 1.76e+02 3.87e+25  -1.0 1.86e+02  23.0 4.76e-01 5.10e-02h 
> 1
> 8 Slacks too small, adjusting variable bounds
> 55  -3.0077300e+04 1.71e+02 4.91e+25  -1.0 1.77e+02  23.9 4.97e-01 2.56e-02h 
> 1
> 8 Slacks too small, adjusting variable bounds
> 56  -3.0063384e+04 1.71e+02 5.74e+25  -1.0 1.72e+02  24.8 5.18e-01 3.30e-03h 
> 1
> 8 Slacks too small, adjusting variable bounds
> 57  -3.0061635e+04 1.70e+02 1.02e+26  -1.0 1.72e+02  25.8 5.84e-01 4.15e-04h 
> 1
> 8 Slacks too small, adjusting variable bounds
> 58  -3.0061417e+04 1.70e+02 1.47e+26  -1.0 1.72e+02  26.7 4.83e-01 5.19e-05h 
> 1
> 59r -3.0061417e+04 1.70e+02 9.99e+02   2.2 0.00e+00  27.6 0.00e+00 4.05e-07R 
> 5
> iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr 
> ls
> 60r -3.0056250e+04 1.69e+02 9.91e+02   2.2 2.44e+03    -  8.52e-01 1.20e-03f 
> 1
> 61r -2.9946489e+04 7.65e+01 9.11e+02   1.5 1.51e+03    -  2.17e-01 7.35e-02f 
> 1
> 62  -2.9946489e+04 7.65e+01 1.85e+12  -1.0 8.04e-18  29.4 9.90e-01 1.00e+00t 
> 0
> 63  -2.9946489e+04 7.65e+01 3.71e+12  -1.0 2.51e-19  31.2 1.00e+00 1.00e+00T 
> 0
> 64  -2.9946489e+04 7.65e+01 5.56e+12  -1.7 5.89e-21  33.0 1.00e+00 1.00e+00T 
> 0
> 65  -2.9946489e+04 7.65e+01 7.42e+12  -2.5 1.23e-22  34.8 1.00e+00 1.00e+00T 
> 0
> 66  -2.9946489e+04 7.65e+01 9.27e+12  -3.8 2.39e-24  36.6 1.00e+00 1.00e+00T 
> 0
> 67  -2.9946489e+04 7.65e+01 1.11e+13  -5.7 4.49e-26  38.4 1.00e+00 1.00e+00T 
> 0
> Exception of type: INTERNAL_ABORT in file "IpPDPerturbationHandler.cpp" at 
> line 181:
> Exception message: retval evaluated false: get_deltas_for_wrong_inertia 
> returns false.
>
> Number of Iterations....: 67
>
>                                  (scaled)                 (unscaled)
> Objective...............:  -2.9946489130665639e+04   -2.9946489130665639e+04
> Dual infeasibility......:   1.1125465341957145e+13    1.1125465341957145e+13
> Constraint violation....:   7.6461359344493587e+01    7.6461359344493587e+01
> Complementarity.........:   1.8449144625279748e-06    1.8449144625279748e-06
> Overall NLP error.......:   5.2464378418944345e+05    1.1125465341957145e+13
>
>
> Number of objective function evaluations             = 74
> Number of objective gradient evaluations             = 47
> Number of equality constraint evaluations            = 74
> Number of inequality constraint evaluations          = 0
> Number of equality constraint Jacobian evaluations   = 69
> Number of inequality constraint Jacobian evaluations = 0
> Number of Lagrangian Hessian evaluations             = 69
>
> EXIT: INTERNAL ERROR: Unknown SolverReturn value - Notify IPOPT Authors.
> can't open /tmp/at1703.sol
>
>



More information about the Coin-ipopt mailing list