Opened 6 years ago

Closed 3 months ago

#212 closed defect (migrated)

Failed In Restoration Phase

Reported by: darknesswind Owned by: stefan
Priority: normal Component: Ipopt
Version: 3.11 Severity: normal
Keywords: restoration phase Cc:

Description

I got a LOCALLY_INFEASIBLE error in an example but the problem is really feasible. The evaluation of derivatives is also acceptable. The problem is here:

max: f(x0, x1, x2, x3) = 0.7 * (x1 + x2 + x3 - 175000) * (x0 * x0 + 3 * x0 + 3)
0.5 <= x0 <= 1.5
45000 <= x1 <= 250000
10000 <= x2 <= 125000
5000 <= x3 <= 75000

I compiled the ipopt with Blas, Lapack, and Mumps 4.10.0. I found it could be reproduced using the binary file in here(the Ipopt-3.11.1-win32-cl16ifort13.1.zip package). and here is the example I changed to reproduce the problem.

My start point is (0,0,0,0), and here is my output:

List of user-set options:

                                    Name   Value                used
                   hessian_approximation = limited-memory        yes
                      obj_scaling_factor = -1                    yes
                             output_file = ipopt.out             yes
                      print_user_options = yes                   yes

******************************************************************************
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
******************************************************************************

NOTE: You are using Ipopt by default with the MUMPS linear solver.
      Other linear solvers might be more efficient (see Ipopt documentation).


This is Ipopt version 3.11.1, running with linear solver mumps.

Number of nonzeros in equality constraint Jacobian...:        0
Number of nonzeros in inequality constraint Jacobian.:        0
Number of nonzeros in Lagrangian Hessian.............:        0

Total number of variables............................:        4
                     variables with only lower bounds:        0
                variables with lower and upper bounds:        4
                     variables with only upper bounds:        0
Total number of equality constraints.................:        0
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 -3.8359121e+005 0.00e+000 8.76e+001   0.0 0.00e+000    -  0.00e+000 0.00e+000   0
   1 -5.6057995e+005 0.00e+000 3.55e+002   2.6 3.80e+002    -  9.92e-001 1.29e-003f  2
   2 -5.4991463e+005 0.00e+000 1.29e+001   2.8 2.97e-001    -  1.00e+000 1.00e+000f  1
   3 -5.4283028e+005 0.00e+000 1.47e+001   2.1 6.87e+000    -  1.00e+000 1.00e+000f  1
   4 -5.0885439e+005 0.00e+000 6.76e-001   1.4 7.41e+001    -  9.88e-001 1.00e+000f  1
   5 -4.0934335e+005 0.00e+000 1.03e+001   0.7 4.88e+002    -  1.00e+000 1.00e+000f  1
   6 -3.8097957e+005 0.00e+000 2.77e+000   0.0 3.65e+002    -  9.09e-001 1.00e+000f  1
   7 -3.6742103e+005 0.00e+000 5.73e+000  -0.8 7.04e+002    -  7.00e-001 1.00e+000f  1
   8 -1.9052539e+005 0.00e+000 4.41e+001  -1.1 2.69e+004    -  9.82e-002 1.00e+000f  1
   9 5.6750544e+005 0.00e+000 2.01e+002   1.3 2.55e+007    -  2.39e-003 4.55e-003f  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  10 8.6097395e+005 0.00e+000 3.98e+002   0.3 7.78e+005    -  1.00e+000 7.63e-002f  1
  11 8.9771721e+005 0.00e+000 2.93e+002   0.3 5.43e+004    -  1.00e+000 2.95e-001f  1
  12 1.8211327e+006 0.00e+000 2.53e+002   2.0 1.19e+000    -  4.81e-001 8.27e-001f  1
  13 1.8322024e+006 0.00e+000 1.21e+000  -0.3 4.72e-002    -  9.99e-001 2.08e-001f  1
  14 1.8323007e+006 0.00e+000 1.27e-002  -2.4 1.86e-003    -  9.97e-001 1.00e+000f  1
  15 1.8323143e+006 0.00e+000 1.86e-003  -4.4 1.86e-003    -  9.98e-001 1.00e+000f  1
  16 1.8323145e+006 0.00e+000 1.86e-003  -6.4 1.86e-003    -  1.00e+000 1.00e+000f  1
  17 1.8323145e+006 0.00e+000 1.86e-003  -8.5 1.86e-003    -  1.00e+000 1.00e+000f  1
  18 1.8323146e+006 0.00e+000 1.86e-003 -10.6 1.86e-003    -  1.00e+000 1.00e+000f  1
  19 1.8323146e+006 0.00e+000 1.86e-003 -12.7 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 19, 1 Slack too small, adjusting variable bound
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  20 1.8323146e+006 0.00e+000 1.86e-003 -14.8 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 20, 1 Slack too small, adjusting variable bound
  21 1.8323147e+006 0.00e+000 1.86e-003 -16.8 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 21, 1 Slack too small, adjusting variable bound
  22 1.8323147e+006 0.00e+000 1.86e-003 -18.9 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 22, 1 Slack too small, adjusting variable bound
  23 1.8323147e+006 0.00e+000 1.86e-003 -21.0 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 23, 1 Slack too small, adjusting variable bound
  24 1.8323148e+006 0.00e+000 1.86e-003 -23.1 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 24, 1 Slack too small, adjusting variable bound
  25 1.8323148e+006 0.00e+000 1.86e-003 -25.2 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 25, 1 Slack too small, adjusting variable bound
  26 1.8323149e+006 0.00e+000 1.86e-003 -27.3 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 26, 1 Slack too small, adjusting variable bound
  27 1.8323149e+006 0.00e+000 1.86e-003 -29.4 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 27, 1 Slack too small, adjusting variable bound
  28 1.8323149e+006 0.00e+000 1.86e-003 -31.5 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 28, 1 Slack too small, adjusting variable bound
  29 1.8323150e+006 0.00e+000 1.86e-003 -33.6 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 29, 1 Slack too small, adjusting variable bound
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  30 1.8323150e+006 0.00e+000 1.86e-003 -35.7 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 30, 1 Slack too small, adjusting variable bound
  31 1.8323150e+006 0.00e+000 1.86e-003 -37.8 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 31, 1 Slack too small, adjusting variable bound
  32 1.8323151e+006 0.00e+000 1.86e-003 -39.9 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 32, 1 Slack too small, adjusting variable bound
  33 1.8323151e+006 0.00e+000 1.86e-003 -42.0 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 33, 1 Slack too small, adjusting variable bound
  34 1.8323152e+006 0.00e+000 1.86e-003 -44.1 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 34, 1 Slack too small, adjusting variable bound
  35 1.8323152e+006 0.00e+000 1.86e-003 -46.2 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 35, 1 Slack too small, adjusting variable bound
  36 1.8323152e+006 0.00e+000 1.86e-003 -48.3 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 36, 1 Slack too small, adjusting variable bound
  37 1.8323153e+006 0.00e+000 1.86e-003 -50.4 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 37, 1 Slack too small, adjusting variable bound
  38 1.8323153e+006 0.00e+000 1.86e-003 -52.4 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 38, 1 Slack too small, adjusting variable bound
  39 1.8323153e+006 0.00e+000 1.86e-003 -54.5 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 39, 1 Slack too small, adjusting variable bound
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  40 1.8323154e+006 0.00e+000 1.86e-003 -56.6 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 40, 1 Slack too small, adjusting variable bound
  41 1.8323154e+006 0.00e+000 1.86e-003 -58.7 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 41, 1 Slack too small, adjusting variable bound
  42 1.8323155e+006 0.00e+000 1.86e-003 -60.8 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 42, 1 Slack too small, adjusting variable bound
  43 1.8323155e+006 0.00e+000 1.86e-003 -62.9 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 43, 1 Slack too small, adjusting variable bound
  44 1.8323155e+006 0.00e+000 1.86e-003 -65.0 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 44, 1 Slack too small, adjusting variable bound
  45 1.8323156e+006 0.00e+000 1.86e-003 -67.1 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 45, 1 Slack too small, adjusting variable bound
  46 1.8323156e+006 0.00e+000 1.86e-003 -69.2 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 46, 1 Slack too small, adjusting variable bound
  47 1.8323157e+006 0.00e+000 1.86e-003 -71.3 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 47, 1 Slack too small, adjusting variable bound
  48 1.8323157e+006 0.00e+000 1.86e-003 -73.4 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 48, 1 Slack too small, adjusting variable bound
  49 1.8323157e+006 0.00e+000 1.86e-003 -75.5 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 49, 1 Slack too small, adjusting variable bound
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  50 1.8323158e+006 0.00e+000 1.86e-003 -77.6 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 50, 1 Slack too small, adjusting variable bound
  51 1.8323158e+006 0.00e+000 1.86e-003 -79.7 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 51, 1 Slack too small, adjusting variable bound
  52 1.8323158e+006 0.00e+000 1.86e-003 -81.8 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 52, 1 Slack too small, adjusting variable bound
  53 1.8323159e+006 0.00e+000 1.86e-003 -83.9 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 53, 1 Slack too small, adjusting variable bound
  54 1.8323159e+006 0.00e+000 1.86e-003 -86.0 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 54, 1 Slack too small, adjusting variable bound
  55 1.8323160e+006 0.00e+000 1.86e-003 -88.0 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 55, 1 Slack too small, adjusting variable bound
  56 1.8323160e+006 0.00e+000 1.86e-003 -90.1 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 56, 1 Slack too small, adjusting variable bound
  57 1.8323160e+006 0.00e+000 1.86e-003 -92.2 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 57, 1 Slack too small, adjusting variable bound
  58 1.8323161e+006 0.00e+000 1.86e-003 -94.3 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 58, 1 Slack too small, adjusting variable bound
  59 1.8323161e+006 0.00e+000 1.86e-003 -96.4 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 59, 1 Slack too small, adjusting variable bound
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  60 1.8323161e+006 0.00e+000 1.86e-003 -98.5 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 60, 1 Slack too small, adjusting variable bound
  61 1.8323162e+006 0.00e+000 1.86e-003 -100.6 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 61, 1 Slack too small, adjusting variable bound
  62 1.8323162e+006 0.00e+000 1.86e-003 -102.7 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 62, 1 Slack too small, adjusting variable bound
  63 1.8323163e+006 0.00e+000 1.86e-003 -104.8 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 63, 1 Slack too small, adjusting variable bound
  64 1.8323163e+006 0.00e+000 1.86e-003 -106.9 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 64, 1 Slack too small, adjusting variable bound
  65 1.8323163e+006 0.00e+000 1.86e-003 -109.0 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 65, 1 Slack too small, adjusting variable bound
  66 1.8323164e+006 0.00e+000 1.86e-003 -111.1 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 66, 1 Slack too small, adjusting variable bound
  67 1.8323164e+006 0.00e+000 1.86e-003 -113.2 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 67, 1 Slack too small, adjusting variable bound
  68 1.8323165e+006 0.00e+000 1.86e-003 -115.3 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 68, 1 Slack too small, adjusting variable bound
  69 1.8323165e+006 0.00e+000 1.86e-003 -117.4 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 69, 1 Slack too small, adjusting variable bound
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  70 1.8323165e+006 0.00e+000 1.86e-003 -119.5 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 70, 1 Slack too small, adjusting variable bound
  71 1.8323166e+006 0.00e+000 1.86e-003 -121.6 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 71, 1 Slack too small, adjusting variable bound
  72 1.8323166e+006 0.00e+000 1.86e-003 -123.6 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 72, 1 Slack too small, adjusting variable bound
  73 1.8323166e+006 0.00e+000 1.86e-003 -125.7 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 73, 1 Slack too small, adjusting variable bound
  74 1.8323167e+006 0.00e+000 1.86e-003 -127.8 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 74, 1 Slack too small, adjusting variable bound
  75 1.8323167e+006 0.00e+000 1.86e-003 -129.9 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 75, 1 Slack too small, adjusting variable bound
  76 1.8323168e+006 0.00e+000 1.86e-003 -132.0 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 76, 1 Slack too small, adjusting variable bound
  77 1.8323168e+006 0.00e+000 1.86e-003 -134.1 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 77, 1 Slack too small, adjusting variable bound
  78 1.8323168e+006 0.00e+000 1.86e-003 -136.2 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 78, 1 Slack too small, adjusting variable bound
  79 1.8323169e+006 0.00e+000 1.86e-003 -138.3 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 79, 1 Slack too small, adjusting variable bound
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  80 1.8323169e+006 0.00e+000 1.86e-003 -140.4 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 80, 1 Slack too small, adjusting variable bound
  81 1.8323169e+006 0.00e+000 1.86e-003 -142.5 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 81, 1 Slack too small, adjusting variable bound
  82 1.8323170e+006 0.00e+000 1.86e-003 -144.6 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 82, 1 Slack too small, adjusting variable bound
  83 1.8323170e+006 0.00e+000 1.86e-003 -146.7 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 83, 1 Slack too small, adjusting variable bound
  84 1.8323171e+006 0.00e+000 1.86e-003 -148.8 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 84, 1 Slack too small, adjusting variable bound
  85 1.8323171e+006 0.00e+000 1.86e-003 -150.9 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 85, 1 Slack too small, adjusting variable bound
  86 1.8323171e+006 0.00e+000 1.86e-003 -153.0 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 86, 1 Slack too small, adjusting variable bound
  87 1.8323172e+006 0.00e+000 1.86e-003 -155.1 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 87, 1 Slack too small, adjusting variable bound
  88 1.8323172e+006 0.00e+000 1.86e-003 -157.1 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 88, 1 Slack too small, adjusting variable bound
  89 1.8323173e+006 0.00e+000 1.86e-003 -159.2 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 89, 1 Slack too small, adjusting variable bound
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  90 1.8323173e+006 0.00e+000 1.86e-003 -161.3 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 90, 1 Slack too small, adjusting variable bound
  91 1.8323173e+006 0.00e+000 1.86e-003 -163.2 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 91, 1 Slack too small, adjusting variable bound
  92 1.8323174e+006 0.00e+000 1.86e-003 -165.1 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 92, 1 Slack too small, adjusting variable bound
  93 1.8323174e+006 0.00e+000 1.86e-003 -167.0 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 93, 1 Slack too small, adjusting variable bound
  94 1.8323174e+006 0.00e+000 1.86e-003 -168.9 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 94, 1 Slack too small, adjusting variable bound
  95 1.8323175e+006 0.00e+000 1.86e-003 -170.8 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 95, 1 Slack too small, adjusting variable bound
  96 1.8323175e+006 0.00e+000 1.86e-003 -172.6 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 96, 1 Slack too small, adjusting variable bound
  97 1.8323176e+006 0.00e+000 1.86e-003 -174.5 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 97, 1 Slack too small, adjusting variable bound
  98 1.8323176e+006 0.00e+000 1.86e-003 -176.4 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 98, 1 Slack too small, adjusting variable bound
  99 1.8323176e+006 0.00e+000 1.86e-003 -178.3 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 99, 1 Slack too small, adjusting variable bound
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 100 1.8323177e+006 0.00e+000 1.86e-003 -180.2 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 100, 1 Slack too small, adjusting variable bound
 101 1.8323177e+006 0.00e+000 1.86e-003 -182.1 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 101, 1 Slack too small, adjusting variable bound
 102 1.8323177e+006 0.00e+000 1.86e-003 -184.0 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 102, 1 Slack too small, adjusting variable bound
 103 1.8323178e+006 0.00e+000 1.86e-003 -185.8 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 103, 1 Slack too small, adjusting variable bound
 104 1.8323178e+006 0.00e+000 1.86e-003 -187.7 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 104, 1 Slack too small, adjusting variable bound
 105 1.8323179e+006 0.00e+000 1.86e-003 -189.6 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 105, 1 Slack too small, adjusting variable bound
 106 1.8323179e+006 0.00e+000 1.86e-003 -191.5 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 106, 1 Slack too small, adjusting variable bound
 107 1.8323179e+006 0.00e+000 1.86e-003 -193.4 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 107, 1 Slack too small, adjusting variable bound
 108 1.8323180e+006 0.00e+000 1.86e-003 -195.3 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 108, 1 Slack too small, adjusting variable bound
 109 1.8323180e+006 0.00e+000 1.86e-003 -197.2 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 109, 1 Slack too small, adjusting variable bound
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 110 1.8323180e+006 0.00e+000 1.86e-003 -199.0 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 110, 1 Slack too small, adjusting variable bound
 111 1.8323181e+006 0.00e+000 1.86e-003 -200.9 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 111, 1 Slack too small, adjusting variable bound
 112 1.8323181e+006 0.00e+000 1.86e-003 -202.8 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 112, 1 Slack too small, adjusting variable bound
 113 1.8323182e+006 0.00e+000 1.86e-003 -204.7 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 113, 1 Slack too small, adjusting variable bound
 114 1.8323182e+006 0.00e+000 1.86e-003 -206.6 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 114, 1 Slack too small, adjusting variable bound
 115 1.8323182e+006 0.00e+000 1.86e-003 -208.5 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 115, 1 Slack too small, adjusting variable bound
 116 1.8323183e+006 0.00e+000 1.86e-003 -210.4 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 116, 1 Slack too small, adjusting variable bound
 117 1.8323183e+006 0.00e+000 1.86e-003 -212.2 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 117, 1 Slack too small, adjusting variable bound
 118 1.8323184e+006 0.00e+000 1.86e-003 -214.1 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 118, 1 Slack too small, adjusting variable bound
 119 1.8323184e+006 0.00e+000 1.86e-003 -216.0 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 119, 1 Slack too small, adjusting variable bound
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 120 1.8323184e+006 0.00e+000 1.86e-003 -217.9 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 120, 1 Slack too small, adjusting variable bound
 121 1.8323185e+006 0.00e+000 1.86e-003 -219.8 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 121, 1 Slack too small, adjusting variable bound
 122 1.8323185e+006 0.00e+000 1.86e-003 -221.7 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 122, 1 Slack too small, adjusting variable bound
 123 1.8323185e+006 0.00e+000 1.86e-003 -223.5 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 123, 1 Slack too small, adjusting variable bound
 124 1.8323186e+006 0.00e+000 1.86e-003 -225.4 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 124, 1 Slack too small, adjusting variable bound
 125 1.8323186e+006 0.00e+000 1.86e-003 -227.3 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 125, 1 Slack too small, adjusting variable bound
 126 1.8323187e+006 0.00e+000 1.86e-003 -229.2 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 126, 1 Slack too small, adjusting variable bound
 127 1.8323187e+006 0.00e+000 1.86e-003 -231.1 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 127, 1 Slack too small, adjusting variable bound
 128 1.8323187e+006 0.00e+000 1.86e-003 -233.0 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 128, 1 Slack too small, adjusting variable bound
 129 1.8323188e+006 0.00e+000 1.86e-003 -234.9 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 129, 1 Slack too small, adjusting variable bound
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 130 1.8323188e+006 0.00e+000 1.86e-003 -236.7 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 130, 1 Slack too small, adjusting variable bound
 131 1.8323188e+006 0.00e+000 1.86e-003 -238.6 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 131, 1 Slack too small, adjusting variable bound
 132 1.8323189e+006 0.00e+000 1.86e-003 -240.5 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 132, 1 Slack too small, adjusting variable bound
 133 1.8323189e+006 0.00e+000 1.86e-003 -242.4 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 133, 1 Slack too small, adjusting variable bound
 134 1.8323190e+006 0.00e+000 1.86e-003 -244.3 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 134, 1 Slack too small, adjusting variable bound
 135 1.8323190e+006 0.00e+000 1.86e-003 -246.2 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 135, 1 Slack too small, adjusting variable bound
 136 1.8323190e+006 0.00e+000 1.86e-003 -248.1 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 136, 1 Slack too small, adjusting variable bound
 137 1.8323191e+006 0.00e+000 1.86e-003 -249.9 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 137, 1 Slack too small, adjusting variable bound
 138 1.8323191e+006 0.00e+000 1.86e-003 -251.8 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 138, 1 Slack too small, adjusting variable bound
 139 1.8323192e+006 0.00e+000 1.86e-003 -253.7 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 139, 1 Slack too small, adjusting variable bound
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 140 1.8323192e+006 0.00e+000 1.86e-003 -255.6 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 140, 1 Slack too small, adjusting variable bound
 141 1.8323192e+006 0.00e+000 1.86e-003 -257.5 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 141, 1 Slack too small, adjusting variable bound
 142 1.8323193e+006 0.00e+000 1.86e-003 -259.4 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 142, 1 Slack too small, adjusting variable bound
 143 1.8323193e+006 0.00e+000 1.86e-003 -261.3 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 143, 1 Slack too small, adjusting variable bound
 144 1.8323193e+006 0.00e+000 1.86e-003 -263.1 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 144, 1 Slack too small, adjusting variable bound
 145 1.8323194e+006 0.00e+000 1.86e-003 -265.0 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 145, 1 Slack too small, adjusting variable bound
 146 1.8323194e+006 0.00e+000 1.86e-003 -266.9 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 146, 1 Slack too small, adjusting variable bound
 147 1.8323195e+006 0.00e+000 1.86e-003 -268.8 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 147, 1 Slack too small, adjusting variable bound
 148 1.8323195e+006 0.00e+000 1.86e-003 -270.7 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 148, 1 Slack too small, adjusting variable bound
 149 1.8323195e+006 0.00e+000 1.86e-003 -272.6 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 149, 1 Slack too small, adjusting variable bound
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 150 1.8323196e+006 0.00e+000 1.86e-003 -274.4 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 150, 1 Slack too small, adjusting variable bound
 151 1.8323196e+006 0.00e+000 1.86e-003 -276.3 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 151, 1 Slack too small, adjusting variable bound
 152 1.8323196e+006 0.00e+000 1.86e-003 -278.2 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 152, 1 Slack too small, adjusting variable bound
 153 1.8323197e+006 0.00e+000 1.86e-003 -280.1 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 153, 1 Slack too small, adjusting variable bound
 154 1.8323197e+006 0.00e+000 1.86e-003 -282.0 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 154, 1 Slack too small, adjusting variable bound
 155 1.8323198e+006 0.00e+000 1.86e-003 -283.9 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 155, 1 Slack too small, adjusting variable bound
 156 1.8323198e+006 0.00e+000 1.86e-003 -285.8 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 156, 1 Slack too small, adjusting variable bound
 157 1.8323198e+006 0.00e+000 1.86e-003 -287.6 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 157, 1 Slack too small, adjusting variable bound
 158 1.8323199e+006 0.00e+000 1.86e-003 -289.5 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 158, 1 Slack too small, adjusting variable bound
 159 1.8323199e+006 0.00e+000 1.86e-003 -291.4 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 159, 1 Slack too small, adjusting variable bound
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
 160 1.8323199e+006 0.00e+000 1.86e-003 -293.3 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 160, 1 Slack too small, adjusting variable bound
 161 1.8323200e+006 0.00e+000 1.86e-003 -295.2 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 161, 1 Slack too small, adjusting variable bound
 162 1.8323200e+006 0.00e+000 1.86e-003 -297.1 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 162, 1 Slack too small, adjusting variable bound
 163 1.8323201e+006 0.00e+000 1.86e-003 -299.0 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 163, 1 Slack too small, adjusting variable bound
 164 1.8323201e+006 0.00e+000 1.86e-003 -300.8 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 164, 1 Slack too small, adjusting variable bound
 165 1.8323201e+006 0.00e+000 1.86e-003 -302.7 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 165, 1 Slack too small, adjusting variable bound
 166 1.8323202e+006 0.00e+000 1.86e-003 -304.6 1.86e-003    -  1.00e+000 1.00e+000f  1
In iteration 166, 1 Slack too small, adjusting variable bound
 167 1.8323202e+006 0.00e+000 3.03e+002 -306.5 1.86e-003  -4.0 1.00e+000 1.00e+000f  1
Restoration phase is called at point that is almost feasible,
  with constraint violation 0.000000e+000. Abort.

Number of Iterations....: 167

                                   (scaled)                 (unscaled)
Objective...............: -4.9859053495417106e+002   1.8323202159565783e+006
Dual infeasibility......:  3.0282788880652703e+002   1.1128924913639866e+006
Constraint violation....:  0.0000000000000000e+000   0.0000000000000000e+000
Complementarity.........:  3.2062149964042999e-307  -1.1782840111785800e-303
Overall NLP error.......:  3.0282788880652703e+002   1.1128924913639866e+006


Number of objective function evaluations             = 1253
Number of objective gradient evaluations             = 169
Number of equality constraint evaluations            = 0
Number of inequality constraint evaluations          = 0
Number of equality constraint Jacobian evaluations   = 0
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations             = 0
Total CPU secs in IPOPT (w/o function evaluations)   =      0.390
Total CPU secs in NLP function evaluations           =      0.001

EXIT: Restoration Failed!

Change History (3)

comment:1 Changed 6 years ago by stefan

  • Cc stefan@… removed
  • Owner changed from ipopt-team to stefan
  • Status changed from new to assigned

I can reproduce the issue.

It seems that Ipopt has problems to find a good step

**************************************************
*** Finding Acceptable Trial Point for Iteration 167:
**************************************************

--> Starting line search in iteration 167 <--
Mu has changed in line search - resetting watchdog counters.
The current filter has 0 entries.
minimal step size ALPHA_MIN = 0.000000E+00
Starting checks for alpha (primal) = 1.00e+00
Checking acceptability for trial step size alpha_primal_test= 1.000000e+00:
  New values of barrier function     =                     inf  (reference -4.9859053495411052e+02):
  New values of constraint violation =  0.0000000000000000e+00  (reference  0.0000000000000000e+00):
Checking Armijo Condition...
Failed...
Trying second order correction number 1
Factorization successful.
Checking acceptability for trial step size alpha_primal_test= 1.000000e+00:
  New values of barrier function     =                     inf  (reference -4.9859053495411052e+02):
  New values of constraint violation =  0.0000000000000000e+00  (reference  0.0000000000000000e+00):
Checking Armijo Condition...
Failed...

...

Starting checks for alpha (primal) = 4.94e-324
Checking acceptability for trial step size alpha_primal_test=4.940656e-324:
  New values of barrier function     =                     inf  (reference -4.9859053495411052e+02):
  New values of constraint violation =  0.0000000000000000e+00  (reference  0.0000000000000000e+00):
Checking sufficient reduction...
Rejecting trial point because barrier objective function increasing too rapidly (from      -4.985905349541105e+02 to                         inf)
Failed...
--> Starting soft restoration phase <--
Trying soft restoration phase step with step length  1.000000e+00
Checking acceptability for trial step size alpha_primal_test= 0.000000e+00:
  New values of barrier function     =                     inf  (reference -4.9859053495411052e+02):
  New values of constraint violation =  0.0000000000000000e+00  (reference  0.0000000000000000e+00):
Checking sufficient reduction...
Rejecting trial point because barrier objective function increasing too rapidly (from      -4.985905349541105e+02 to                         inf)
Failed...
  Primal-dual error at current point:   7.5708365058778242e+01
  Primal-dual error at trial point  :   7.5831627511772624e+01
  Trial step rejected.
Restoration phase is called at point that is almost feasible,
  with constraint violation 0.000000e+00. Abort.

If I give him an exact Hessian, things look much better (current trunk, ma27):

iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
   0 -3.8359121e+05 0.00e+00 8.76e+01  -1.0 0.00e+00    -  0.00e+00 0.00e+00   0
   1 -3.8041199e+05 0.00e+00 4.31e+01  -1.0 5.37e-01    -  6.87e-01 1.84e-02f  1
   2 -3.8106664e+05 0.00e+00 5.55e-01  -1.0 1.62e+00    -  9.87e-01 1.00e+00f  1
   3 -3.7984077e+05 0.00e+00 7.07e-02  -1.0 1.62e+02    -  7.68e-01 1.00e+00f  1
   4 -2.7340833e+05 0.00e+00 2.35e+01  -1.0 1.89e+04    -  3.54e-02 1.00e+00f  1
   5  8.8969762e+05 0.00e+00 2.51e+02  -1.0 1.84e+05    -  1.31e-01 9.76e-01f  1
   6  9.4057197e+05 0.00e+00 2.13e+02  -1.0 6.19e+03    -  1.80e-01 9.78e-01f  1
   7  1.8639946e+06 0.00e+00 3.13e+02  -1.0 2.39e+01   2.0 1.46e-03 4.00e-02f  1
   8  1.8750022e+06 0.00e+00 2.85e+02  -1.0 1.75e+00   2.4 1.00e+00 5.45e-03f  1
   9  1.8746079e+06 0.00e+00 4.00e-02  -1.0 8.79e+01    -  1.00e+00 2.50e-01f  3
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  10  1.8768356e+06 0.00e+00 5.49e-05  -2.5 7.75e+01    -  1.00e+00 1.00e+00f  1
  11  1.8768728e+06 0.00e+00 1.25e-08  -3.8 1.38e+00    -  1.00e+00 1.00e+00f  1
  12  1.8768750e+06 0.00e+00 4.32e-11  -5.7 8.00e-02    -  1.00e+00 1.00e+00f  1
  13  1.8768750e+06 0.00e+00 1.14e-13  -8.6 9.92e-04    -  1.00e+00 1.00e+00f  1

Number of Iterations....: 13

                                   (scaled)                 (unscaled)
Objective...............:  -5.1071429877569062e+02    1.8768750480006628e+06
Dual infeasibility......:   1.1368683772161603e-13    4.1779912862693886e-10
Constraint violation....:   0.0000000000000000e+00    0.0000000000000000e+00
Complementarity.........:   2.5059256792487587e-09   -9.2092768712391866e-06
Overall NLP error.......:   2.5059256792487587e-09    4.1779912862693886e-10

Here is the code that implements the Hessian:

//return the structure or values of the hessian
bool HS071_NLP::eval_h(Index n, const Number* x, bool new_x,
                       Number obj_factor, Index m, const Number* lambda,
                       bool new_lambda, Index nele_hess, Index* iRow,
                       Index* jCol, Number* values)
{
    if( values == NULL )
    {
	  Index k = 0;
	  for (Index i = 0; i < n; ++i)
		  for (Index j = 0; j <= i; ++j)
		  {
			  iRow[k] = i;
			  jCol[k] = j;
			  ++k;
		  }
    }
    else
    {
        values[0] = obj_factor * 0.7 * (x[1] + x[2] + x[3] - 175000) * 2;
        
        values[1] = obj_factor * 0.7 * (2 * x[0] + 3);
        values[2] = 0;
        
        values[3] = obj_factor * 0.7 * (2 * x[0] + 3);
        values[4] = 0;
        values[5] = 0;
        
        values[6] = obj_factor * 0.7 * (2 * x[0] + 3);
        values[7] = 0;
        values[8] = 0;
        values[9] = 0;
    }

  return true;
}

comment:2 Changed 3 months ago by stefan

This ticket has been migrated to GitHub and will be followed up there: https://github.com/coin-or/Ipopt/issues/212

comment:3 Changed 3 months ago by stefan

  • Resolution set to migrated
  • Status changed from assigned to closed
Note: See TracTickets for help on using tickets.