[Ipopt] Multiple line searches and watchdog technique

Udit Gupta gupta117 at umn.edu
Tue Jun 10 14:42:56 EDT 2014


Hello everyone,

I am using IpOpt to optimize a problem with 5 decision variables. My
run involves using all 5 variables (relaxing all variables
simultaneously). IpOpt terminates due to exceeding the maximum number
of iterations (default value of 3000). NLP functions are being
evaluated using a DAE solver.
My options defined in Ipopt are:
app->Options()->SetNumericValue("tol", 1e-6);
app->Options()->SetStringValue("nlp_scaling_method", "none");
app->Options()->SetNumericValue("bound_relax_factor", 0);
app->Options()->SetStringValue("mu_strategy", "adaptive");
app->Options()->SetStringValue("hessian_approximation", "limited-memory");

1) Are there options to terminate at a much lower iteration number?
2) Can we avoid the numerous iterations being performed again and again?
3) If max iterations is a way to go about it, then how do u define a
good enough max no. of iterations?

What i believe watchdog technique does is try to find another
direction/step size by going back a few iterations (when its not able
to achieve the required tol). Can someone clarify that?
Disabling watchdog technique makes the iterations run with multiple
line searches without any difference in objective function value.


Results in output file:

iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
   0  8.3677080e+08 0.00e+00 1.96e+09   0.0 0.00e+00    -  0.00e+00 0.00e+00   0
   1  6.3697838e+02 0.00e+00 7.25e+08   5.8 1.23e+09    -  1.00e+00 1.37e-09f  1
   2  8.1262341e+02 0.00e+00 7.17e+06   6.2 2.36e-03    -  9.94e-01 1.00e+00f  1
   3  1.6924121e+05 0.00e+00 2.06e+06   6.1 1.56e-01    -  1.00e+00 1.00e+00f  1
   4  3.8691564e+04 0.00e+00 7.10e+05   5.4 7.01e-02    -  1.00e+00 1.00e+00f  1
   5  2.8027366e+04 0.00e+00 1.47e+05   4.7 1.21e-02    -  1.00e+00 1.00e+00f  1
   6  1.1195488e+04 0.00e+00 1.22e+05   4.0 2.88e-02    -  1.00e+00 1.00e+00f  1
   7  4.1163184e+03 0.00e+00 9.06e+04   3.3 2.25e-02    -  1.00e+00 1.00e+00f  1
   8  1.1850844e+03 0.00e+00 3.77e+04   2.6 1.82e-02    -  1.00e+00 1.00e+00f  1
   9  3.9281126e+02 0.00e+00 9.58e+03   1.9 1.08e-02    -  1.00e+00 1.00e+00f  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  10  2.3981283e+02 0.00e+00 1.43e+03   0.1 5.21e-03    -  1.00e+00 1.00e+00f  1
  11  2.1886735e+02 0.00e+00 1.56e+02  -0.8 2.13e-03    -  1.00e+00 1.00e+00f  1
  12  2.1721272e+02 0.00e+00 1.34e+01  -1.4 6.94e-04    -  1.00e+00 1.00e+00f  1
  13  2.1718379e+02 0.00e+00 4.81e-01  -2.4 1.02e-04    -  1.00e+00 1.00e+00f  1
  14  2.1718374e+02 0.00e+00 2.28e-02  -3.3 2.53e-06    -  9.99e-01 1.00e+00f  1
  15  2.1718374e+02 0.00e+00 1.29e-01  -5.2 2.35e-08    -  1.00e+00 4.88e-04f 12
  16  2.1718373e+02 0.00e+00 2.28e-02  -5.3 2.46e-08    -  1.00e+00 1.00e+00f  1
  17  2.1718373e+02 0.00e+00 2.28e-02  -7.1 3.92e-09    -  1.00e+00 1.00e+00f  1
  18  2.1718373e+02 0.00e+00 2.28e-02  -9.0 4.96e-08    -  1.00e+00 2.98e-08f 26
  19  2.1718372e+02 0.00e+00 2.28e-02  -9.1 5.03e-08    -  1.00e+00 3.73e-09f 29
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  20  2.1718369e+02 0.00e+00 2.28e-02 -11.0 4.96e-08    -  1.00e+00 7.81e-03f  8
  21  2.1718369e+02 0.00e+00 2.28e-02 -11.0 2.28e-02    -  1.00e+00 1.73e-17f 55
  22  2.1718369e+02 0.00e+00 2.28e-02 -10.9 2.28e-02    -  1.00e+00 1.75e-17f 55
  23  2.1718369e+02 0.00e+00 2.28e-02 -10.9 2.28e-02    -  1.00e+00 1.75e-17f 55
  24  2.1718369e+02 0.00e+00 2.28e-02 -10.9 2.28e-02    -  1.00e+00 1.75e-17f 55
  25  2.1718369e+02 0.00e+00 2.28e-02 -10.9 2.28e-02    -  1.00e+00 1.75e-17f 55
  26  2.1718369e+02 0.00e+00 2.28e-02 -10.9 2.28e-02    -  1.00e+00 1.75e-17f 55
  27  2.1718369e+02 0.00e+00 2.28e-02 -10.9 2.28e-02    -  1.00e+00 1.75e-17f 55
  28  2.1718369e+02 0.00e+00 2.28e-02 -10.9 2.28e-02    -  1.00e+00 1.75e-17f 55
  29  2.1718369e+02 0.00e+00 2.28e-02 -10.9 2.28e-02    -  1.00e+00 1.76e-17f 55
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  30  2.1718369e+02 0.00e+00 7.78e-02 -10.9 2.28e-02    -  1.00e+00 1.23e-06f 19
  31  2.1718368e+02 0.00e+00 9.88e-02  -7.8 4.58e-08    -  1.00e+00 1.19e-07f 24
  32  2.1718368e+02 0.00e+00 9.88e-02  -9.6 3.92e-08    -  1.00e+00 2.91e-11f 36
  33  2.1718368e+02 0.00e+00 9.88e-02  -9.7 3.92e-08    -  1.00e+00 2.91e-11f 36
  34  2.1718368e+02 0.00e+00 9.88e-02  -9.7 9.88e-02    -  4.54e-02 3.47e-18f 59
  35  2.1718367e+02 0.00e+00 9.24e-02  -9.7 9.88e-02    -  1.00e+00 2.91e-11f 36
  36  2.1718367e+02 0.00e+00 9.24e-02 -11.0 2.52e-10    -  1.00e+00 7.45e-09f 28
  37  2.1718367e+02 0.00e+00 9.24e-02 -11.0 2.52e-10    -  1.00e+00 7.45e-09f 28
  38  2.1718367e+02 0.00e+00 9.24e-02 -11.0 2.52e-10    -  1.00e+00 7.45e-09f 28
  39  2.1718367e+02 0.00e+00 9.24e-02 -11.0 9.24e-02    -  4.85e-02 3.47e-18f 59
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  40  2.1718367e+02 0.00e+00 9.24e-02 -11.0 9.24e-02    -  1.00e+00 3.47e-18f 59
  41  2.1718367e+02 0.00e+00 9.24e-02 -11.0 9.24e-02    -  4.85e-02 3.47e-18f 59
  42  2.1718367e+02 0.00e+00 9.24e-02 -11.0 9.24e-02    -  1.00e+00 3.47e-18f 59
  43  2.1718367e+02 0.00e+00 9.24e-02 -11.0 9.24e-02    -  4.85e-02 3.47e-18f 59
  44  2.1718367e+02 0.00e+00 9.24e-02 -11.0 9.24e-02    -  1.00e+00 3.47e-18f 59
  45  2.1718367e+02 0.00e+00 9.24e-02 -11.0 9.24e-02    -  4.85e-02 3.47e-18f 59
  46  3.1327508e+04 0.00e+00 8.44e+05 -11.0 9.24e-02    -  1.00e+00 1.00e+00w  1
  47  2.1718377e+02 0.00e+00 2.36e-02 -11.0 9.24e-02    -  1.00e+00 1.00e+00w  1
  48  2.1718377e+02 0.00e+00 2.28e-02 -11.0 3.60e-09    -  1.00e+00 1.00e+00w  1
  49  2.1718367e+02 0.00e+00 9.24e-02 -11.0 2.35e-08    -  1.00e+00 3.47e-18f 58
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  50  2.1718365e+02 0.00e+00 8.66e-02 -11.0 2.06e-08    -  1.00e+00 7.45e-09f 28
  51  2.1718365e+02 0.00e+00 8.66e-02 -11.0 2.00e-08    -  1.00e+00 1.46e-11f 37
  52  2.1718365e+02 0.00e+00 8.66e-02 -11.0 2.00e-08    -  1.00e+00 1.46e-11f 37
  53  2.1718365e+02 0.00e+00 8.66e-02 -11.0 8.66e-02    -  5.18e-02 3.47e-18f 59
  54  2.1718365e+02 0.00e+00 8.66e-02 -11.0 8.66e-02    -  1.00e+00 3.47e-18f 59
  55  2.1718365e+02 0.00e+00 8.66e-02 -11.0 8.66e-02    -  5.18e-02 3.47e-18f 59
  56  2.1718365e+02 0.00e+00 8.66e-02 -11.0 8.66e-02    -  1.00e+00 3.47e-18f 59
  57  2.1718365e+02 0.00e+00 8.66e-02 -11.0 8.66e-02    -  5.18e-02 3.47e-18f 59
  58  2.1718365e+02 0.00e+00 8.66e-02 -11.0 8.66e-02    -  1.00e+00 3.47e-18f 59
  59  2.6655835e+04 0.00e+00 7.52e+05 -11.0 8.66e-02    -  5.18e-02 1.00e+00w  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  60  2.1718377e+02 0.00e+00 2.86e-02 -11.0 8.66e-02    -  1.00e+00 1.00e+00w  1


.
.
.

iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
2980  2.1718365e+02 0.00e+00 8.66e-02 -11.0 8.66e-02    -  5.18e-02 3.47e-18f 59
2981  2.1718365e+02 0.00e+00 8.66e-02 -11.0 8.66e-02    -  1.00e+00 3.47e-18f 59
2982  2.1718365e+02 0.00e+00 8.66e-02 -11.0 8.66e-02    -  5.18e-02 3.47e-18f 59
2983  2.1718365e+02 0.00e+00 8.66e-02 -11.0 8.66e-02    -  1.00e+00 3.47e-18f 59
2984  2.6655835e+04 0.00e+00 7.52e+05 -11.0 8.66e-02    -  5.18e-02 1.00e+00w  1
2985  2.1718377e+02 0.00e+00 2.86e-02 -11.0 8.66e-02    -  1.00e+00 1.00e+00w  1
2986  2.1718377e+02 0.00e+00 2.28e-02 -11.0 4.06e-09    -  1.00e+00 1.00e+00w  1
2987  2.1718365e+02 0.00e+00 8.66e-02 -11.0 1.86e-08    -  5.18e-02 3.47e-18f 58
2988  2.1718365e+02 0.00e+00 8.66e-02 -11.0 2.18e-08    -  1.00e+00 1.46e-11f 37
2989  2.1718365e+02 0.00e+00 8.66e-02 -11.0 2.18e-08    -  1.00e+00 1.46e-11f 37
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
2990  2.1718365e+02 0.00e+00 8.66e-02 -11.0 2.18e-08    -  1.00e+00 1.46e-11f 37
2991  2.1718365e+02 0.00e+00 8.66e-02 -11.0 8.66e-02    -  5.18e-02 3.47e-18f 59
2992  2.1718365e+02 0.00e+00 8.66e-02 -11.0 8.66e-02    -  1.00e+00 3.47e-18f 59
2993  2.1718365e+02 0.00e+00 8.66e-02 -11.0 8.66e-02    -  5.18e-02 3.47e-18f 59
2994  2.1718365e+02 0.00e+00 8.66e-02 -11.0 8.66e-02    -  1.00e+00 3.47e-18f 59
2995  2.1718365e+02 0.00e+00 8.66e-02 -11.0 8.66e-02    -  5.18e-02 3.47e-18f 59
2996  2.1718365e+02 0.00e+00 8.66e-02 -11.0 8.66e-02    -  1.00e+00 3.47e-18f 59
2997  2.6655835e+04 0.00e+00 7.52e+05 -11.0 8.66e-02    -  5.18e-02 1.00e+00w  1
2998  2.1718377e+02 0.00e+00 2.86e-02 -11.0 8.66e-02    -  1.00e+00 1.00e+00w  1
2999  2.1718377e+02 0.00e+00 2.28e-02 -11.0 4.06e-09    -  1.00e+00 1.00e+00w  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
3000  2.1718365e+02 0.00e+00 8.66e-02 -11.0 1.86e-08    -  5.18e-02 3.47e-18f 58

Number of Iterations....: 3000

                                   (scaled)                 (unscaled)
Objective...............:   2.1718364863496677e+02    2.1718364863496677e+02
Dual infeasibility......:   8.6569834245914024e-02    8.6569834245914024e-02
Constraint violation....:   0.0000000000000000e+00    0.0000000000000000e+00
Complementarity.........:   1.0000000000001348e-11    1.0000000000001348e-11
Overall NLP error.......:   8.6569834245914024e-02    8.6569834245914024e-02


Number of objective function evaluations             = 129264
Number of objective gradient evaluations             = 3001
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)   =      2.926
Total CPU secs in NLP function evaluations           =    993.140

EXIT: Maximum Number of Iterations Exceeded.

Thank You

Regards
Udit


More information about the Ipopt mailing list