[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