[Ipopt] Multiple line searches and watchdog technique
Stefan Vigerske
stefan at math.hu-berlin.de
Wed Jun 11 12:48:35 EDT 2014
Hi,
from the log, it seems that Ipopt isn't able to compute an accurate
enough dual solution. There seems to be quite a good improvement in the
beginning and then it just stalls with a dual infeasiblity of e-2.
This could be caused by using only an Hessian approximation.
You could play with the acceptable_tol and related options to make Ipopt
stop when it does not make a reasonable progress for a number of iterations:
http://www.coin-or.org/Ipopt/documentation/node41.html#SECTION000112070000000000000
Best,
Stefan
On 06/10/2014 08:42 PM, Udit Gupta wrote:
> 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
> _______________________________________________
> Ipopt mailing list
> Ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/ipopt
>
More information about the Ipopt
mailing list