[Ipopt] Stopping criteria
Drosos Kourounis
drosos at stanford.edu
Mon Apr 12 14:25:00 EDT 2010
Dear Andreas,
for another test case, I see the following. As you can see the problem has essentially converged at the first 7 decimal digits at iteration # 27, or one could be even satisfied from the 25th iteration. I really do not know how to let IPOPT stop when the relative changes in my objective are less than a threshold and ||d|| has also dropped below some threshold. I do not need inf_du to converge. How can I set the convergence criteria for IPOPT to be based only on the relative changes of my objective and ||d|| ? Is that possible?
Thanks in advance,
Drosos.
******************************************************************************
This program contains Ipopt, a library for large-scale nonlinear optimization.
Ipopt is released as open source code under the Common Public License (CPL).
For more information visit http://projects.coin-or.org/Ipopt
******************************************************************************
This is Ipopt version 3.8.1, running with linear solver pardiso.
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............................: 18
variables with only lower bounds: 0
variables with lower and upper bounds: 18
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 2.8714270e+06 0.00e+00 7.86e+03 0.0 0.00e+00 - 0.00e+00 0.00e+00 0
1 3.9243961e+06 0.00e+00 5.67e+03 3.5 7.43e+03 - 1.49e-02 4.00e-03f 1
2 3.9620362e+06 0.00e+00 5.46e+03 2.6 3.58e+02 - 1.00e+00 3.33e-03f 1
3 4.5992098e+06 0.00e+00 9.28e+04 2.1 1.66e+02 - 4.00e-01 4.98e-02f 1
4 4.6469130e+06 0.00e+00 4.63e+04 -3.0 5.83e+01 - 5.52e-01 2.07e-02f 1
5 4.8829708e+06 0.00e+00 1.43e+04 3.0 8.43e+01 - 1.00e+00 6.24e-02f 1
6 4.9248188e+06 0.00e+00 9.55e+03 3.3 2.33e+02 - 4.47e-01 1.05e-01f 1
7 5.0208268e+06 0.00e+00 1.22e+04 3.0 1.35e+01 - 1.00e+00 7.42e-01f 1
8 5.0456178e+06 0.00e+00 2.50e+03 2.9 1.62e+00 - 8.87e-01 9.98e-01f 1
9 5.0520071e+06 0.00e+00 2.83e+03 1.9 1.73e+00 - 1.00e+00 1.00e+00f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
10 5.0211695e+06 0.00e+00 6.91e+03 4.1 2.44e+01 - 3.08e-01 1.52e-01f 1
11 5.0112771e+06 0.00e+00 3.56e+03 3.5 3.70e+00 - 1.00e+00 1.00e+00f 1
12 5.0297759e+06 0.00e+00 4.10e+03 2.8 1.07e+01 - 1.00e+00 5.17e-01f 1
13 5.0403445e+06 0.00e+00 1.44e+04 2.1 4.22e+00 - 9.93e-01 5.82e-01f 1
14 5.0410974e+06 0.00e+00 1.27e+04 1.4 4.60e+00 - 1.33e-01 3.45e-02f 1
15 5.0509431e+06 0.00e+00 9.47e+02 1.4 1.96e+00 - 1.00e+00 6.82e-01f 1
16 5.0551972e+06 0.00e+00 7.16e+02 0.7 7.76e-01 - 8.07e-01 8.40e-01f 1
17 5.0557683e+06 0.00e+00 1.22e+03 0.3 8.15e-01 - 1.00e+00 1.00e+00f 1
18 5.0555192e+06 0.00e+00 3.22e+02 1.4 1.28e-01 - 9.63e-01 1.00e+00f 1
19 5.0556192e+06 0.00e+00 2.24e+02 1.3 2.40e-01 - 1.00e+00 1.00e+00f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
20 5.0560854e+06 0.00e+00 1.63e+03 0.6 3.32e+00 - 9.92e-01 1.00e+00f 1
21 5.0565864e+06 0.00e+00 2.80e+03 0.4 4.26e+01 - 1.00e+00 1.49e-01f 1
22 5.0566050e+06 0.00e+00 2.45e+03 -0.6 6.95e-01 - 1.00e+00 9.12e-02f 1
23 5.0566924e+06 0.00e+00 1.64e+03 -1.9 2.27e-02 - 1.00e+00 9.80e-01f 1
24 5.0567265e+06 0.00e+00 5.92e+02 -3.1 4.05e-02 - 1.00e+00 7.89e-01f 1
25 5.0567309e+06 0.00e+00 5.59e+02 -4.2 1.45e-02 - 1.00e+00 5.29e-01f 1
26 5.0567324e+06 0.00e+00 2.03e+02 -4.4 1.35e-01 - 1.00e+00 1.18e-01f 4
27 5.0567334e+06 0.00e+00 1.67e+02 -4.7 5.40e-03 - 1.00e+00 9.87e-01f 1
28 5.0567335e+06 0.00e+00 3.25e+02 -5.1 1.11e-02 - 1.00e+00 4.77e-01f 2
29 5.0567338e+06 0.00e+00 1.25e+02 -6.6 3.55e-03 - 1.00e+00 9.92e-01f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
30 5.0567339e+06 0.00e+00 3.90e+01 -8.1 1.06e-03 - 1.00e+00 9.70e-01f 1
31 5.0567339e+06 0.00e+00 6.64e+01 -9.8 1.32e-03 - 1.00e+00 9.93e-01f 1
In iteration 31, 7 Slacks too small, adjusting variable bounds
32 5.0567339e+06 0.00e+00 3.84e+01 -11.6 3.79e-04 - 1.00e+00 9.62e-01f 1
In iteration 32, 15 Slacks too small, adjusting variable bounds
33 5.0567339e+06 0.00e+00 3.83e+01 -13.2 1.52e-04 - 1.00e+00 9.92e-01f 1
In iteration 33, 15 Slacks too small, adjusting variable bounds
34 5.0567339e+06 0.00e+00 6.62e+01 -14.5 8.12e-03 - 1.00e+00 7.81e-03f 8
In iteration 34, 16 Slacks too small, adjusting variable bounds
35 5.0567339e+06 0.00e+00 3.82e+01 -15.8 5.35e-05 - 1.00e+00 8.50e-01f 1
In iteration 35, 16 Slacks too small, adjusting variable bounds
36 5.0567339e+06 0.00e+00 3.82e+01 -17.6 3.01e-05 - 1.00e+00 1.00e+00f 1
In iteration 36, 16 Slacks too small, adjusting variable bounds
37 5.0567339e+06 0.00e+00 6.61e+01 -18.8 2.24e-02 - 1.00e+00 4.88e-04f 12
In iteration 37, 16 Slacks too small, adjusting variable bounds
38 5.0567339e+06 0.00e+00 3.82e+01 -20.7 5.01e-05 - 1.00e+00 1.25e-01f 4
In iteration 38, 16 Slacks too small, adjusting variable bounds
39 5.0567339e+06 0.00e+00 3.82e+01 -20.8 8.42e-06 - 1.00e+00 5.00e-01f 2
In iteration 39, 16 Slacks too small, adjusting variable bounds
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
40 5.0567339e+06 0.00e+00 6.61e+01 -20.8 2.84e-06 - 1.00e+00 5.00e-01f 2
In iteration 40, 16 Slacks too small, adjusting variable bounds
41 5.0567339e+06 0.00e+00 3.82e+01 -22.7 4.20e-07 - 1.00e+00 2.50e-01f 3
In iteration 41, 16 Slacks too small, adjusting variable bounds
42 5.0567339e+06 0.00e+00 3.82e+01 -22.8 1.91e-06 - 1.00e+00 1.00e+00f 1
In iteration 42, 16 Slacks too small, adjusting variable bounds
43 5.0567339e+06 0.00e+00 3.82e+01 -22.8 8.95e-07 - 1.00e+00 1.00e+00f 1
In iteration 43, 16 Slacks too small, adjusting variable bounds
44 5.0567339e+06 0.00e+00 3.82e+01 -22.8 6.62e-03 - 1.00e+00 7.63e-06f 18
In iteration 44, 16 Slacks too small, adjusting variable bounds
45 5.0567339e+06 0.00e+00 6.61e+01 -22.8 2.98e-08 - 1.00e+00 3.12e-02f 6
In iteration 45, 16 Slacks too small, adjusting variable bounds
46 5.0567339e+06 0.00e+00 3.82e+01 -22.8 2.64e-08 - 1.00e+00 1.00e+00f 1
In iteration 46, 16 Slacks too small, adjusting variable bounds
47 5.0567339e+06 0.00e+00 3.82e+01 -22.8 1.49e-07 - 1.00e+00 3.12e-02f 6
In iteration 47, 16 Slacks too small, adjusting variable bounds
48 5.0567339e+06 0.00e+00 3.82e+01 -22.8 2.50e-09 - 1.00e+00 5.00e-01f 2
In iteration 48, 16 Slacks too small, adjusting variable bounds
49 5.0567339e+06 0.00e+00 3.82e+01 -22.8 2.50e-09 - 1.00e+00 1.00e+00f 1
In iteration 49, 16 Slacks too small, adjusting variable bounds
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
50 5.0567339e+06 0.00e+00 6.61e+01 -22.8 5.03e-10 - 1.00e+00 1.00e+00f 1
Number of Iterations....: 50
(scaled) (unscaled)
Objective...............: -5.0567339037239701e+06 5.0567339037239701e+06
Dual infeasibility......: 6.6146365102737036e+01 6.6146365102737036e+01
Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00
Complementarity.........: 1.5037586163036707e-23 -1.5037586163036707e-23
Overall NLP error.......: 1.9705007854092584e+00 6.6146365102737036e+01
Number of objective function evaluations = 156
Number of objective gradient evaluations = 51
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.320
Total CPU secs in NLP function evaluations = 39858.891
EXIT: Maximum Number of Iterations Exceeded.
More information about the Ipopt
mailing list