# [Ipopt] Sequence of optimization problems / Avoiding restauration phase starting from feasible point

Uwe Nowak uwe.nowak at itwm.fraunhofer.de
Tue Mar 8 07:45:50 EST 2011

```Hello!

I solve a sequence of optimization problems, call them P1 ... Pn
They have all the same structure (non zero entries etc. are the same).
Each following optimization problem is only a slight modification of the
previous one, where the solution of the previous one is always feasible
to the next one

From a previous optimization run Q (with a different model) I get a
solution that is known to be a local optimum of P1. However I do not
have the dual variables for P1

Now I am solving P1 with this solution (I know, I am at the local
optimum). To avoid the primal solution to be pushed in the interior, I set
mu_init = 1E-4.
In the finalize_solution I copy the variable bounds and lambda.

Then I subsequently solve P2 to Pn by setting
warm_start_init_point = yes
mu_init = (mu of the last optimization run)
and calling the ReOptimizeTNLP method.

First question. Is there something I have forgotten? Do I have to set
some additional parameters (e.g. at the beginning I did not set mu_init,
so each solution was pushed into the interior first an then converged again)

Second question:
Sometimes the algorithm, starting from an feasible primal point, become
primal infeasible and starts a restauration phase. This yields a
solution much worse then the previous feasible.
Is there a maybe less aggressive strategy forcing IPOPT to remain almost
feasible all the time?

> iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
>   70  1.5682727e+02 8.57e-02 3.44e-01  -5.0 3.52e+00  -3.4 3.98e-01 1.00e+00h  1
>   71  1.5675160e+02 5.22e-02 4.02e-01  -5.0 7.36e+00  -3.9 1.00e+00 4.05e-01h  1
>   72  1.5666212e+02 1.56e-01 1.90e-01  -5.0 1.05e+01  -4.4 5.98e-01 1.00e+00h  1
>   73  1.5656510e+02 1.00e-01 1.15e-02  -5.0 8.20e+00  -4.8 1.00e+00 1.00e+00h  1
>   74  1.5650007e+02 4.40e-01 7.39e-04  -5.0 3.30e+00  -4.4 1.00e+00 1.00e+00h  1
>   75  1.5649592e+02 2.27e-01 1.26e-03  -5.0 5.28e+00  -4.9 1.00e+00 1.00e+00h  1
>   76  1.5649478e+02 1.33e+01 3.57e-03  -5.0 7.36e+00  -5.4 4.47e-01 5.16e-01h  1
>   77  1.5649281e+02 1.11e+02 2.70e-03  -5.0 2.51e+01  -5.8 3.32e-01 2.37e-01H  1
>   78  1.5649225e+02 9.01e+01 3.86e-02  -5.0 1.37e+01  -4.5 6.44e-01 5.98e-01h  1
>   79  1.5649209e+02 5.69e+01 7.25e-03  -5.0 3.20e+01  -5.0 6.57e-02 6.29e-01h  1
> iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
>   80  1.5649203e+02 1.03e+02 1.01e-01  -5.0 2.64e+02  -4.6 4.53e-04 1.10e-01h  1
>   81  1.5649203e+02 1.03e+02 1.01e-01  -5.0 7.79e+02  -4.1 4.88e-03 4.12e-04h  1
>   82  1.5649203e+02 1.53e+02 1.26e-01  -5.0 3.22e+03  -4.6 1.69e-02 1.92e-02f  1
>   83  1.5649200e+02 1.65e+02 4.44e-01  -5.0 7.95e+01  -3.3 3.34e-01 1.26e-01h  2
>   84  1.5649197e+02 1.78e+02 1.35e+00  -5.0 6.37e+01  -2.9 1.23e-01 1.65e-01h  2
>   85  1.5649197e+02 1.72e+02 7.19e-01  -5.0 5.86e+01  -2.4 3.11e-01 6.13e-02h  2
>   86  1.5649197e+02 1.72e+02 7.18e-01  -5.0 2.68e+01  -1.1 2.88e-02 4.10e-04h  7
>   87r 1.5649197e+02 1.72e+02 9.99e+02   2.2 0.00e+00  -1.6 0.00e+00 2.53e-07R 18
>   88r 1.5653028e+02 1.72e+02 9.99e+02   2.2 1.08e+06    -  4.79e-07 1.32e-06f  1
>   89r 1.5653716e+02 1.70e+02 9.99e+02   0.8 1.71e+05    -  1.53e-04 1.07e-05f  1
> iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
>   90r 1.5727519e+02 1.65e+02 9.99e+02   0.8 1.49e+05    -  1.50e-04 8.06e-05f  1
>   91r 1.5813662e+02 1.59e+02 9.98e+02   0.8 1.28e+05    -  5.08e-04 6.56e-05f  1
>   92r 1.6414260e+02 1.39e+02 9.98e+02   0.8 9.78e+04    -  8.55e-06 3.01e-04f  1
>   93r 1.6602517e+02 1.28e+02 9.96e+02   0.8 7.75e+04    -  2.26e-03 1.68e-04f  1
>   94r 1.8269041e+02 6.18e+01 9.95e+02   0.8 2.91e+04    -  1.15e-03 2.29e-03f  1
>   95r 2.1761773e+02 6.03e+01 9.95e+02   0.8 4.89e+05    -  2.29e-05 1.48e-04f  1
>   96r 2.1929903e+02 4.07e+01 9.94e+02   0.8 9.65e+03    -  1.19e-03 2.03e-03f  1
>   97r 2.3744708e+02 1.30e+01 9.91e+02   0.8 1.42e+04    -  3.20e-03 5.88e-03f  1
>   98r 2.5295068e+02 1.25e+01 9.88e+02   0.8 1.49e+04    -  3.07e-03 3.97e-03f  1
>   99r 2.9942219e+02 1.73e+01 9.83e+02   0.8 1.29e+04    -  4.61e-03 9.79e-03f  1
> iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
>  100r 3.3993981e+02 2.09e+01 9.79e+02   0.8 1.85e+04    -  4.37e-03 5.75e-03f  1
>  101r 4.1211055e+02 3.10e+01 9.75e+02   0.8 2.67e+04    -  3.60e-03 6.14e-03f  1
>  102r 4.1310090e+02 3.04e+01 9.15e+02   0.8 5.20e+01   0.0 6.25e-02 2.59e-02f  1
>  103r 4.2195318e+02 2.80e+01 7.60e+02   0.8 8.77e+00   0.4 1.71e-01 9.18e-02f  1
>  104r 4.2176146e+02 1.96e+01 2.42e+02   0.8 7.60e+00   1.8 1.00e+00 3.00e-01f  1
>  105r 4.2099592e+02 1.71e+01 3.62e+02   0.1 5.61e+00   2.2 6.35e-01 1.28e-01f  1
>  106r 4.1882400e+02 8.13e+00 1.18e+03   0.1 5.05e+00   2.6 5.57e-01 5.26e-01f  1
>  107r 4.1775430e+02 1.87e+00 2.21e+03   0.1 2.34e+00   3.0 1.19e-01 7.70e-01f  1
>  108r 4.1748080e+02 5.32e-01 1.61e+03   0.1 5.52e-01   3.5 9.43e-01 9.70e-01f  1
>  109r 4.1755413e+02 3.90e-01 1.23e+03   0.1 5.27e-01   3.0 1.00e+00 2.59e-01f  1
> iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
>  110r 4.1766642e+02 2.08e-01 1.10e+03   0.1 1.59e+00   2.5 1.00e+00 1.14e-01f  1
>  111r 4.1771327e+02 4.82e-02 1.03e+03   0.1 2.92e+00   2.0 9.57e-01 6.64e-02f  1
>  112r 4.1883072e+02 4.00e-02 6.83e+02   0.1 2.57e-01   1.6 1.00e+00 3.38e-01f  1
>  113r 4.2636433e+02 6.30e-02 2.88e+01   0.1 2.21e-01   1.1 9.71e-01 1.00e+00f  1
>  114r 4.2698938e+02 1.54e-03 9.49e-01  -0.6 2.19e-02   1.5 1.00e+00 1.00e+00f  1
>  115  4.1348536e+02 5.65e-02 3.11e+01  -5.0 1.15e+01  -1.2 4.17e-01 8.17e-02f  2
>  116  4.0494088e+02 5.30e-02 2.87e+01  -5.0 6.90e+00  -1.6 5.12e-01 7.62e-02F  1

...

>  238  1.5781566e+02 1.74e+01 4.57e-01  -5.0 1.04e+02  -3.9 1.03e-01 4.41e-01h  1
>  239  1.5778549e+02 1.72e+01 1.20e+00  -5.0 2.41e+01  -4.3 5.83e-01 1.26e-02h  1
> iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
>  240  1.5633017e+02 2.55e+01 9.25e-01  -5.0 5.87e+01  -4.8 7.83e-01 4.68e-01h  1
>  241  1.5632957e+02 2.55e+01 2.56e+00  -5.0 8.92e+01  -5.3 8.49e-01 8.54e-05h  1
>  242  1.5432647e+02 1.77e+01 1.44e+00  -5.0 1.29e+02  -5.8 6.10e-02 3.14e-01h  1
>  243  1.5394238e+02 1.62e+01 1.62e+00  -5.0 1.03e+02  -6.2 2.57e-01 8.51e-02h  1
>  244  1.5388488e+02 1.59e+01 1.84e+00  -5.0 6.18e+01  -4.9 8.11e-01 1.90e-02h  1
>  245  1.5388445e+02 1.59e+01 6.87e-01  -5.0 4.38e+00  -3.6 1.00e+00 2.79e-04h  1
>  246  1.5350298e+02 1.25e+01 5.42e-01  -5.0 1.00e+01  -4.1 1.00e+00 2.23e-01h  1
>  247  1.5325127e+02 1.01e+01 6.52e-01  -5.0 3.48e+01  -4.5 6.23e-01 1.90e-01h  1
>  248  1.5270523e+02 7.71e+00 3.38e-01  -5.0 3.44e+01  -5.0 4.33e-01 2.47e-01h  1
>  249  1.5251127e+02 7.00e+00 1.34e+00  -5.0 4.77e+01  -5.5 1.00e+00 9.94e-02h  1
> iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
>  250  1.5187417e+02 5.42e+00 3.58e-01  -5.0 5.14e+01  -6.0 1.17e-01 8.79e-01h  1
>  251  1.5181891e+02 4.79e+00 2.37e-01  -5.0 1.78e+01  -6.4 1.00e+00 1.17e-01h  1
>  252  1.5164263e+02 6.05e-01 3.34e-02  -5.0 1.60e+01  -6.9 1.00e+00 8.79e-01h  1
>  253  1.5156578e+02 2.03e+00 2.56e-02  -5.0 1.21e+01  -7.4 1.00e+00 1.00e+00h  1
>  254  1.5146227e+02 2.63e+01 5.99e-03  -5.0 2.05e+01  -7.9 1.00e+00 1.00e+00h  1
>  255  1.5144122e+02 2.93e+02 7.39e-03  -5.0 7.12e+01  -8.3 4.55e-01 9.49e-01h  1
>  256  1.5143650e+02 1.44e+02 5.14e-03  -5.0 1.92e+02  -8.8 3.44e-01 4.29e-01h  1
>  257  1.5143020e+02 4.94e+02 4.60e-03  -5.0 2.84e+02  -8.4 3.75e-01 1.00e+00h  1
>  258  1.5143005e+02 1.04e+02 5.04e-05  -5.0 4.72e+02  -8.9 1.00e+00 7.85e-01h  1
>  259  1.5143001e+02 3.96e+01 2.93e-06  -5.0 1.45e+01  -9.4 1.00e+00 1.00e+00h  1
> iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
>  260  1.5143001e+02 2.06e-01 1.16e-06  -5.0 5.36e+01  -8.9 1.00e+00 1.00e+00h

and then exit with "Optimal Solution Found".

Thank you very much,
Uwe

--
Uwe Nowak
Fraunhofer-Institut für Techno- und Wirtschaftsmathematik
Abteilung Optimierung
Fraunhofer-Platz 1
D-67663 Kaiserslautern
Telefon:  +49(0)631/31600-4458
E-Mail:   uwe.nowak at itwm.fraunhofer.de
Internet: www.itwm.fraunhofer.de

```