[Ipopt] Why ipopt needs so many iterations when starting from the optimal solution?
Andreas Waechter
andreasw at watson.ibm.com
Mon Mar 14 09:55:42 EDT 2011
Hi Pierre,
Since Ipopt is an interior point method, it needs to make sure that the
initial point is not too close to the boundary. For this, it perturbs the
user-given starting point, based on the value of the options bound_frac
and bound_push (see documentation). Setting those to smaller values will
lead to a smaller perturbation, and the code might converge quicker from a
starting point close to the solution. However, if the perturbation is too
small, the algorithm will cut off the search direction quite a bit in the
first iterations, leading to slow convergence.
In addition, if the starting point is very close to the solution, you
might also want to choose a smaller value for the initial barrier
parameter (mu_init).
Regards,
Andreas
On Wed, 9 Mar 2011, Pierre Schaus wrote:
> Hello
>
> I'm making some benchmarking between ipopt and conopt (from ampl) and
> strangely when I call solve two consecutive times (the second solve
> starting from the optimal solution) ipopt needs 235 iterations to
> rediscover this best solution while conopt only 4.
>
> Do you have an idea how to avoid all these iterations when ipopt
> starts on the optimal solution or very closely?
>
> Thank you in advance,
>
> Pierre
>
> A fragment of the output when solving again:
>
> iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
>
> 0 -1.6889364e+03 7.06e+01 1.00e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0
>
> 1 -1.8076240e+03 7.06e+01 1.06e+02 -1.0 1.12e+05 - 1.12e-01 1.06e-03f 1
>
> 2 -1.7868621e+03 5.70e+01 5.00e+01 -1.0 6.42e+02 - 1.13e-01 1.92e-01h 1
>
> 3 -1.7773846e+03 5.15e+01 1.43e+02 -1.0 6.05e+02 - 2.62e-01 9.75e-02h 1
>
> 4 -1.7346472e+03 2.86e+01 2.94e+01 -1.0 6.40e+02 - 3.57e-01 4.44e-01h 1
>
> 5 -1.7138111e+03 1.80e+01 2.96e+01 -1.0 6.71e+02 - 4.02e-01 3.72e-01h 1
>
> 6 -1.6979992e+03 1.06e+01 9.60e+01 -1.0 7.65e+02 - 7.76e-01 4.09e-01h 1
>
> 7 -1.6771948e+03 2.75e+00 6.48e+01 -1.0 1.31e+03 - 2.00e-01 7.42e-01h 1
>
> 8 -1.6672749e+03 4.10e-01 1.06e+02 -1.0 9.65e+02 - 7.23e-01 9.72e-01h 1
>
> 9 -1.6663897e+03 3.55e-01 7.49e+03 -1.0 1.85e+03 - 4.22e-01 1.49e-01f 1
>
> ...
>
> iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
>
> 230 -1.6889365e+03 4.00e-09 1.38e-07 -8.6 6.52e-01 -9.6 1.00e+00 1.00e+00H 1
>
> 231 -1.6889365e+03 4.00e-09 5.57e+01 -8.6 3.22e+00 - 1.00e+00 1.56e-02h 7
>
> 232 -1.6889365e+03 4.00e-09 5.65e+01 -8.6 4.01e+00 - 1.00e+00 1.19e-07h 24
>
> 233 -1.6889365e+03 4.00e-09 2.07e-07 -8.6 3.11e+00 - 1.00e+00 1.00e+00H 1
>
> 234 -1.6889365e+03 4.00e-09 5.63e+01 -8.6 5.33e+00 - 1.00e+00 3.91e-03h 9
>
> 235 -1.6889365e+03 4.00e-09 5.33e-08 -8.6 9.49e-01 - 1.00e+00 1.00e+00s 22
>
> _______________________________________________
> Ipopt mailing list
> Ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/ipopt
>
>
More information about the Ipopt
mailing list