[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