[Ipopt] Restoration Phase and Scaling
Johannes Maußner
pcwql3 at gmail.com
Tue Jul 19 14:55:09 EDT 2016
Hi everyone,
I'm quite new to using IPOPT and optimization in general so I'm sorry in
advance if this question is trivial.
I'm working on an optimization problem that is constrained by a system
of coupled partial differential equations
(conservation equations) and I'm using IPOPT through AMPL.
I set up two "versions" of the model. The first one is not scaled and
for the second one I introduced reference values
to my model to scale the state and decision variables. This scaling is
done inside AMPL before the problem is send to the solver.
Both models eventually converge to a feasible point and yield the same
results. However the scaled model converges faster
and without entering the "restoration phase" whereas the model which is
not scaled usually enters the restoration phase at some
point (example below).
My question is what exactly happens during the "restoration phase" and what
triggers this restoration phase? As far as I understand it, during this
phase IPOPT tries to minimize the infeasiblity. Is this correct?
Below is the solver log for an optimization using the unscaled model. Up
to the 10th iteration it looks quite good and the
objective is near the optimal point but then it gets into the
restoration phase. It takes about 100 iterations before the solver exits
this phase and
then converges to the optimal point.
I don't quite understand why this restoration phase happens.
I'll be using the scaled model anyway but I'm just curious as to why
this restoration phase happens and what it means exactly.
I'm very grateful for any help!
Thanks a lot,
Johannes
******************************************************************************
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
******************************************************************************
This is Ipopt version 3.11, running with linear solver ma97.
Number of nonzeros in equality constraint Jacobian...: 4603085
Number of nonzeros in inequality constraint Jacobian.: 0
Number of nonzeros in Lagrangian Hessian.............: 1597612
Total number of variables............................: 107603
variables with only lower bounds: 0
variables with lower and upper bounds: 107603
variables with only upper bounds: 0
Total number of equality constraints.................: 107602
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 -5.0000000e-01 4.11e-01 2.63e-03 -1.0 0.00e+00 - 0.00e+00
0.00e+00 0
1 -4.3846879e-01 9.64e+00 5.37e+05 -1.0 4.02e+04 - 1.21e-01
4.82e-01f 1
2 -4.6909814e-01 1.69e+01 9.73e+05 -1.0 2.46e+06 - 2.47e-01
6.28e-02h 1
3 -7.5397593e-01 1.44e+01 2.03e+07 -1.0 3.07e+04 - 3.16e-04
8.36e-01h 1
4 -8.1497281e-01 1.11e+01 1.08e+07 -1.0 1.69e+02 - 5.58e-01
7.76e-01f 1
5 -8.2927768e-01 1.35e+00 5.55e+07 -1.0 7.61e+01 - 1.89e-02
1.00e+00h 1
6 -8.2850533e-01 6.57e-01 1.02e+07 -1.0 4.61e+01 - 9.73e-01
1.00e+00h 1
7 -8.2842382e-01 3.97e-04 5.32e+04 -1.0 2.72e+00 - 9.74e-01
1.00e+00h 1
8 -8.2842114e-01 4.50e-06 6.24e+00 -1.0 1.48e+02 - 5.49e-01
1.00e+00f 1
9 -8.2798948e-01 4.06e+00 8.42e+01 -1.0 2.70e+04 - 1.20e-02
1.00e+00f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du
alpha_pr ls
10 -8.2798511e-01 3.58e-05 2.41e-02 -1.0 3.89e+01 -4.0 1.00e+00
1.00e+00h 1
11r-8.2798511e-01 3.58e-05 1.00e+03 -2.5 0.00e+00 -1.8 0.00e+00
3.29e-07R 20
12r-8.2427337e-01 2.02e-02 1.45e+01 -2.5 3.35e+01 - 9.86e-01
1.00e+00f 1
13r-8.4615859e-01 5.21e-01 9.48e+02 -2.5 1.45e+02 - 8.05e-02
2.17e-01f 1
14r-9.3201299e-01 4.07e+00 9.60e+02 -2.5 9.10e+01 - 3.58e-01
7.73e-01f 1
15r-9.9932014e-01 2.43e+00 6.60e+02 -2.5 4.79e+02 - 1.74e-01
4.41e-01f 1
16r-9.9999321e-01 2.41e+00 6.20e+02 -2.5 4.12e+02 - 2.83e-01
9.03e-03f 1
17r-9.9903424e-01 1.93e+00 7.56e+02 -2.5 5.54e+02 - 4.29e-02
7.48e-01f 1
18r-9.9999035e-01 1.85e+00 6.12e+02 -2.5 8.06e+02 - 1.03e-01
6.82e-02f 1
19r-9.9995604e-01 2.94e+00 9.92e+02 -2.5 2.01e+03 - 2.71e-02
1.19e-01f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du
alpha_pr ls
20r-9.9995125e-01 3.65e+00 1.05e+03 -2.5 1.46e+03 - 9.20e-02
1.61e-01f 1
21r-9.9994689e-01 3.53e+00 1.03e+03 -2.5 9.84e+02 - 1.72e-02
4.85e-02f 1
22r-9.9990940e-01 2.93e+00 7.50e+02 -2.5 4.66e+02 - 1.32e-01
3.46e-01f 1
23r-9.9990066e-01 2.53e+00 6.44e+02 -2.5 1.93e+01 - 2.45e-01
1.36e-01f 1
24r-9.9989093e-01 1.90e+00 4.81e+02 -2.5 7.07e+01 - 2.78e-01
2.53e-01f 1
25r-9.9989589e-01 1.50e+00 3.74e+02 -2.5 2.01e+02 - 2.88e-01
2.22e-01f 1
26r-9.9991351e-01 1.20e+00 2.93e+02 -2.5 2.75e+02 - 2.09e-01
2.17e-01f 1
27r-9.9992750e-01 9.07e-01 2.19e+02 -2.5 1.59e+02 - 2.52e-01
2.51e-01f 1
28r-9.9993996e-01 5.20e-01 1.27e+02 -2.5 1.09e+02 - 6.11e-01
4.28e-01f 1
29r-9.9994310e-01 3.53e-01 1.08e+02 -2.5 8.72e+01 - 1.00e+00
3.22e-01f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du
alpha_pr ls
30r-9.9994871e-01 8.54e-02 5.93e-01 -2.5 6.66e+01 - 1.00e+00
1.00e+00f 1
31r-9.9994896e-01 8.62e-02 8.31e-03 -2.5 7.03e+00 - 1.00e+00
1.00e+00h 1
32r-9.9994500e-01 9.46e-02 4.33e+01 -3.8 7.14e+02 - 1.53e-01
1.99e-01f 1
33r-9.9994274e-01 9.96e-02 8.49e+01 -3.8 6.37e+00 -4.0 3.91e-02
1.19e-01f 1
34r-9.9993803e-01 1.04e-01 7.44e+01 -3.8 8.17e+00 -4.5 1.46e-01
1.49e-01f 1
35r-9.9993331e-01 1.08e-01 7.80e+01 -3.8 1.30e+01 -5.0 6.43e-02
8.38e-02f 1
36r-9.9992902e-01 1.09e-01 7.38e+01 -3.8 5.61e+02 - 5.24e-02
5.97e-02f 1
37r-9.9992510e-01 1.12e-01 7.34e+01 -3.8 2.91e+01 -5.4 4.37e-02
4.84e-02f 1
38r-9.9992222e-01 1.15e-01 7.19e+01 -3.8 2.34e+01 -5.0 4.73e-02
5.09e-02f 1
39r-9.9992017e-01 1.17e-01 6.98e+01 -3.8 1.79e+02 -5.5 2.08e-02
1.99e-02f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du
alpha_pr ls
40r-9.9991818e-01 1.19e-01 6.22e+01 -3.8 3.36e+01 -5.1 4.60e-02
3.82e-02f 1
41r-9.9991883e-01 1.21e-01 5.75e+01 -3.8 2.73e+01 -4.6 5.58e-02
5.03e-02f 1
42r-9.9991870e-01 1.21e-01 9.91e+01 -3.8 2.69e+02 -5.1 7.33e-03
1.18e-03f 1
43r-9.9992016e-01 1.21e-01 9.72e+01 -3.8 3.35e+01 -4.7 4.93e-02
2.71e-02f 1
44r-9.9992081e-01 1.18e-01 9.79e+01 -3.8 8.44e+01 -5.2 1.99e-02
1.87e-02f 1
45r-9.9992199e-01 2.05e-01 9.23e+01 -3.8 5.94e+01 -4.7 4.23e-02
4.52e-02f 1
46r-9.9992105e-01 2.41e-01 8.50e+01 -3.8 7.10e+01 -4.3 1.11e-02
2.66e-02f 1
47r-9.9992147e-01 2.42e-01 8.73e+01 -3.8 5.32e+01 -3.9 3.42e-02
1.06e-02f 1
48r-9.9992499e-01 2.36e-01 1.46e+02 -3.8 1.51e+01 -3.5 1.71e-01
5.89e-02f 1
49r-9.9992585e-01 2.39e-01 2.31e+02 -3.8 6.04e+01 -3.9 4.22e-02
1.29e-02f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du
alpha_pr ls
50r-9.9993494e-01 2.58e-01 1.60e+02 -3.8 1.56e+01 -3.5 1.05e-01
1.52e-01f 1
51r-9.9993546e-01 3.19e-01 1.07e+02 -3.8 4.39e+02 -4.0 2.75e-03
5.88e-03f 1
52r-9.9993813e-01 3.75e-01 1.06e+02 -3.8 5.83e+01 -3.6 5.25e-02
5.02e-02f 1
53r-9.9993971e-01 3.66e-01 3.31e+02 -3.8 2.05e+01 -3.1 2.47e-01
3.31e-02f 1
54r-9.9994004e-01 3.73e-01 5.10e+02 -3.8 1.79e+02 -3.6 2.99e-02
6.07e-03f 1
55r-9.9994232e-01 3.60e-01 5.55e+02 -3.8 1.77e+01 -3.2 1.61e-01
4.92e-02f 1
56r-9.9994296e-01 3.85e-01 5.56e+02 -3.8 1.54e+02 -3.7 1.60e-02
1.32e-02f 1
57r-9.9994512e-01 3.75e-01 5.22e+02 -3.8 2.37e+01 -3.2 2.92e-02
4.95e-02f 1
58r-9.9994505e-01 3.75e-01 5.35e+02 -3.8 4.31e+02 -3.7 7.38e-03
4.67e-04f 1
59r-9.9994680e-01 3.65e-01 4.92e+02 -3.8 2.19e+01 -3.3 7.98e-02
7.96e-02f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du
alpha_pr ls
60r-9.9994616e-01 3.71e-01 4.88e+02 -3.8 5.17e+02 -3.8 4.36e-03
1.84e-03f 1
61r-9.9994614e-01 3.67e-01 5.53e+02 -3.8 2.46e+01 -3.3 1.20e-01
9.54e-03f 1
62r-9.9994338e-01 3.76e-01 6.00e+02 -3.8 1.09e+02 -3.8 2.50e-02
1.34e-02f 1
63r-9.9994131e-01 3.62e-01 6.55e+02 -3.8 2.08e+01 -3.4 1.85e-01
6.57e-02f 1
64r-9.9993836e-01 3.62e-01 6.51e+02 -3.8 6.48e+01 -3.9 1.47e-02
1.27e-02f 1
65r-9.9993423e-01 3.50e-01 6.14e+02 -3.8 2.19e+01 -3.4 5.80e-02
5.73e-02f 1
66r-9.9992087e-01 3.80e-01 5.83e+02 -3.8 7.47e+01 -3.9 3.31e-02
3.71e-02f 1
67r-9.9990091e-01 4.16e-01 5.64e+02 -3.8 3.72e+02 -4.4 4.91e-03
7.29e-03f 1
68r-9.9987230e-01 4.43e-01 5.25e+02 -3.8 6.51e+01 -4.0 3.35e-02
4.63e-02f 1
69r-9.9985833e-01 4.47e-01 5.30e+02 -3.8 4.13e+02 -4.4 3.63e-03
2.39e-03f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du
alpha_pr ls
70r-9.9983957e-01 4.46e-01 5.33e+02 -3.8 7.49e+01 -4.0 3.36e-02
1.62e-02f 1
71r-9.9982788e-01 4.34e-01 4.87e+02 -3.8 2.08e+01 -3.6 1.91e-01
3.11e-02f 1
72r-9.9961339e-01 5.12e-01 4.49e+02 -3.8 1.08e+02 -4.1 2.44e-02
4.26e-02f 1
73r-9.9888965e-01 4.92e-01 4.21e+02 -3.8 2.83e+01 -3.6 4.49e-02
8.24e-02f 1
74r-9.9594603e-01 4.82e-01 3.76e+02 -3.8 1.03e+01 -3.2 1.07e-01
2.10e-02f 1
75r-9.8563504e-01 4.74e-01 3.72e+02 -3.8 3.30e+01 -3.7 7.35e-03
1.85e-02f 1
76r-9.6602124e-01 4.78e-01 4.24e+02 -3.8 1.62e+03 -4.2 3.99e-03
6.00e-04f 1
77r-9.1967458e-01 4.73e-01 3.95e+02 -3.8 4.25e+01 -3.7 8.24e-02
5.53e-02f 1
78r-9.1347771e-01 4.73e-01 3.93e+02 -3.8 5.10e+03 - 4.36e-03
2.83e-03f 1
79r-9.1206077e-01 4.71e-01 3.84e+02 -3.8 3.21e+03 - 1.32e-02
2.88e-03f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du
alpha_pr ls
80r-9.0883354e-01 4.71e-01 3.81e+02 -3.8 4.04e+03 - 5.93e-03
5.70e-03f 1
81r-8.9924039e-01 5.07e-01 3.85e+02 -3.8 8.49e+01 -4.2 2.01e-02
4.63e-02f 1
82r-8.9828197e-01 5.02e-01 3.23e+02 -3.8 4.95e+01 -3.8 1.23e-01
1.59e-02f 1
83r-8.9776639e-01 5.02e-01 3.48e+02 -3.8 5.53e+02 -4.3 1.03e-02
1.10e-03f 1
84r-8.9102397e-01 4.86e-01 3.29e+02 -3.8 1.85e+03 - 1.99e-01
5.14e-02f 1
85r-8.6864981e-01 4.71e-01 2.99e+02 -3.8 1.49e+03 - 3.67e-01
2.39e-01f 1
86r-8.5214696e-01 4.41e-01 1.77e+02 -3.8 9.53e+02 - 2.36e-01
3.32e-01f 1
87r-8.4226320e-01 3.87e-01 1.39e+02 -3.8 6.26e+02 - 1.96e-01
2.83e-01f 1
88r-8.3979619e-01 3.56e-01 1.31e+02 -3.8 4.66e+02 - 3.50e-01
9.65e-02f 1
89r-8.3774544e-01 3.21e-01 2.46e+02 -3.8 4.44e+02 - 7.62e-01
1.14e-01f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du
alpha_pr ls
90r-8.3200491e-01 2.37e-01 1.38e+02 -3.8 4.13e+02 - 6.65e-01
5.43e-01f 1
91r-8.2901673e-01 1.40e-01 8.35e+01 -3.8 2.02e+02 - 1.00e+00
5.38e-01f 1
92r-8.2921460e-01 1.06e-01 1.14e+02 -3.8 1.00e+02 - 1.00e+00
2.51e-01h 1
93r-8.2955368e-01 5.54e-02 5.91e+01 -3.8 7.36e+01 - 1.00e+00
4.92e-01h 1
94r-8.2990577e-01 1.95e-03 2.20e-02 -3.8 3.68e+01 - 1.00e+00
1.00e+00h 1
95r-8.2990498e-01 3.82e-05 5.43e-06 -3.8 1.45e-01 - 1.00e+00
1.00e+00h 1
96r-8.2931348e-01 6.84e-03 5.34e+02 -5.7 8.20e+01 - 8.92e-01
1.11e-01f 1
97r-8.2720401e-01 1.11e-02 2.26e+02 -5.7 2.67e+00 -4.8 1.00e+00
7.23e-01f 1
98r-8.2773815e-01 3.23e-01 7.18e+00 -5.7 2.49e+02 - 1.00e+00
9.71e-01f 1
99r-8.2797426e-01 8.68e-02 3.62e+00 -5.7 5.57e+01 - 1.00e+00
7.86e-01h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du
alpha_pr ls
100r-8.2792610e-01 1.55e-03 4.01e-03 -5.7 8.59e+01 - 1.00e+00
1.00e+00h 1
101r-8.2806412e-01 2.67e-03 1.13e+03 -5.7 1.05e+05 - 9.30e-01
2.33e-01H 1
102r-8.2805242e-01 2.43e-03 1.03e+02 -5.7 1.86e-01 -4.8 1.00e+00
9.12e-02h 1
103r-8.2798281e-01 2.89e-05 1.20e-03 -5.7 1.18e+02 - 1.00e+00
1.00e+00f 1
104 -8.1217919e-01 2.06e+02 1.63e+02 -2.5 1.40e+06 - 1.96e-02
6.94e-01f 1
105 -8.0621917e-01 1.28e+02 6.38e+01 -2.5 7.20e+03 - 7.75e-01
3.81e-01f 1
106 -8.0017436e-01 8.01e-01 5.37e+01 -2.5 2.12e+03 - 1.00e+00
1.00e+00f 1
107 -8.0136084e-01 1.58e-02 8.12e-02 -2.5 2.08e+03 - 1.00e+00
1.00e+00h 1
108 -8.0135849e-01 3.90e-05 3.86e-05 -2.5 2.16e+01 - 1.00e+00
1.00e+00h 1
109 -8.0135849e-01 1.46e-09 1.61e-04 -3.8 5.54e-03 - 1.00e+00
1.00e+00h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du
alpha_pr ls
110 -8.0135849e-01 1.44e-09 1.77e-06 -5.7 1.33e-01 - 1.00e+00
1.00e+00h 1
111 -8.0135973e-01 3.27e-07 4.83e-02 -8.6 2.41e+01 - 4.53e-01
1.00e+00h 1
112 -8.0135973e-01 1.53e-09 5.13e-08 -8.6 9.02e-06 -2.2 1.00e+00
1.00e+00h 1
113 -8.0321124e-01 2.12e+01 1.84e-04 -8.6 3.61e+04 - 1.22e-03
1.00e+00f 1
114 -8.0931322e-01 7.45e+01 4.34e-01 -8.6 1.30e+05 - 1.00e+00
1.00e+00h 1
115 -8.0856770e-01 5.34e-03 8.63e+00 -8.6 3.53e+00 -2.7 1.00e+00
1.00e+00h 1
116 -8.0860260e-01 4.13e-05 2.56e-01 -8.6 2.15e+02 - 1.00e+00
1.00e+00h 1
117 -8.2395907e-01 1.90e+02 7.36e-01 -8.6 4.12e+05 - 4.05e-01
1.00e+00h 1
118 -8.1858118e-01 3.06e-01 4.15e+02 -8.6 2.31e+01 -3.2 1.00e+00
1.00e+00h 1
119 -8.2020723e-01 6.29e-02 1.56e+02 -8.6 1.18e+04 - 1.00e+00
1.00e+00h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du
alpha_pr ls
120 -8.2025508e-01 1.71e-03 5.62e-01 -8.6 2.11e+03 - 1.00e+00
1.00e+00h 1
121 -8.2300225e-01 3.34e+01 2.92e-02 -8.6 1.20e+05 - 1.00e+00
1.00e+00h 1
122 -8.2939602e-01 6.56e+01 2.73e-02 -8.6 2.15e+06 - 3.25e-01
1.45e-01h 1
123 -8.2655374e-01 1.52e+01 1.80e-03 -8.6 1.03e+05 - 1.00e+00
1.00e+00h 1
124 -8.2731976e-01 1.55e+00 2.75e-01 -8.6 3.44e+04 - 1.00e+00
1.00e+00h 1
125 -8.2731059e-01 5.22e-06 2.03e-03 -8.6 2.37e-02 -3.7 1.00e+00
1.00e+00h 1
126 -8.2780233e-01 4.17e-01 1.93e-02 -8.6 2.94e+04 - 1.00e+00
1.00e+00h 1
127 -8.2779746e-01 1.08e-06 3.29e-04 -8.6 2.03e-02 -4.2 1.00e+00
1.00e+00h 1
128 -8.2842776e-01 7.94e-01 7.13e-03 -8.6 1.04e+05 - 1.00e+00
3.74e-01h 1
129 -8.2825699e-01 1.14e+00 3.50e-03 -8.6 1.06e+04 - 1.00e+00
1.00e+00h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du
alpha_pr ls
130 -8.2841645e-01 5.95e-01 6.99e-06 -8.6 9.92e+03 - 1.00e+00
1.00e+00h 1
131 -8.2842603e-01 1.01e-04 3.94e-08 -8.6 6.30e+02 - 1.00e+00
1.00e+00h 1
132 -8.2842603e-01 1.02e-09 4.36e-12 -8.6 2.40e-02 - 1.00e+00
1.00e+00h 1
Number of Iterations....: 132
(scaled) (unscaled)
Objective...............: -8.2842602716908775e-01 -8.2842602716908775e-01
Dual infeasibility......: 4.3639707279903634e-12 4.3639707279903634e-12
Constraint violation....: 2.9491946928281799e-11 1.0161187447010889e-09
Complementarity.........: 2.5059035596805626e-09 2.5059035596805626e-09
Overall NLP error.......: 2.5059035596805626e-09 2.5059035596805626e-09
Number of objective function evaluations = 156
Number of objective gradient evaluations = 42
Number of equality constraint evaluations = 156
Number of inequality constraint evaluations = 0
Number of equality constraint Jacobian evaluations = 134
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations = 132
Total CPU secs in IPOPT (w/o function evaluations) = 2342.303
Total CPU secs in NLP function evaluations = 235.838
EXIT: Optimal Solution Found.
Ipopt 3.11: Optimal Solution Found
More information about the Ipopt
mailing list