[Ipopt] Very Slow Convergence
Uwe Nowak
uwe.nowak at itwm.fraunhofer.de
Fri Feb 25 07:52:51 EST 2011
Hello!
I am trying to solve some circle packing related problems with IPOPT.
For small to medium size problems (up to 400 Circles) everything works
fine and reasonable fast. However for larger problems the Algorithm does
not converge..
> This is Ipopt version 3.9.2, running with linear solver ma27.
>
> Number of nonzeros in equality constraint Jacobian...: 0
> Number of nonzeros in inequality constraint Jacobian.: 1426360
> Number of nonzeros in Lagrangian Hessian.............: 733017
>
> Total number of variables............................: 2535
> variables with only lower bounds: 0
> variables with lower and upper bounds: 0
> variables with only upper bounds: 0
> Total number of equality constraints.................: 0
> Total number of inequality constraints...............: 356590
> inequality constraints with only lower bounds: 356590
> 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 1.7720393e+06 1.99e-01 6.18e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0
> 1 1.7719897e+06 1.90e-03 1.97e-01 -1.0 1.99e-01 0.0 9.90e-01 9.90e-01f 1
> 2 1.7719792e+06 8.17e-07 4.14e-01 -1.0 9.04e-02 -0.5 9.91e-01 1.00e+00f 1
> 3 1.7719639e+06 1.63e-07 1.90e-02 -1.0 1.74e-01 -1.0 1.00e+00 1.00e+00f 1
> 4 1.7719359e+06 1.46e-06 1.15e-02 -2.5 3.34e-01 -1.4 1.00e+00 1.00e+00f 1
> 5 1.7718661e+06 1.31e-05 4.24e-02 -3.8 2.42e+00 -1.9 1.00e+00 1.00e+00f 1
> 6 1.7718414e+06 1.85e-06 7.36e-03 -3.8 2.30e-01 -1.5 1.00e+00 1.00e+00f 1
> 7 1.7717680e+06 1.66e-05 5.97e-03 -3.8 5.44e-01 -2.0 1.00e+00 1.00e+00f 1
> 8 1.7717406e+06 2.34e-06 5.97e-03 -3.8 2.04e-01 -1.5 1.00e+00 1.00e+00f 1
> 9 1.7716585e+06 2.10e-05 5.97e-03 -3.8 6.12e-01 -2.0 1.00e+00 1.00e+00f 1
> iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
> 10 1.7716278e+06 2.96e-06 5.97e-03 -3.8 2.29e-01 -1.6 1.00e+00 1.00e+00f 1
> 11 1.7715352e+06 2.66e-05 7.90e-03 -3.8 1.10e+00 -2.1 1.00e+00 1.00e+00f 1
> 12 1.7712588e+06 2.39e-04 1.40e-02 -3.8 2.06e+00 -2.5 1.00e+00 1.00e+00f 1
> 13 1.7704321e+06 2.15e-03 5.96e-03 -3.8 6.18e+00 -3.0 1.00e+00 1.00e+00f 1
> 14 1.7679654e+06 1.92e-02 5.94e-03 -3.8 1.85e+01 -3.5 1.00e+00 1.00e+00f 1
> 15 1.7606816e+06 1.70e-01 7.13e-03 -3.8 5.49e+01 -4.0 1.00e+00 1.00e+00f 1
> 16 1.7398125e+06 1.45e+00 5.77e-02 -3.8 1.59e+02 -4.4 1.00e+00 1.00e+00f 1
> 17 1.6839562e+06 2.44e-01 4.15e-01 -3.8 4.34e+02 -4.9 1.00e+00 1.00e+00F 1
> 18 1.6647120e+06 1.52e+00 5.50e-02 -3.8 1.52e+02 -4.5 1.00e+00 1.00e+00f 1
> 19 1.6134541e+06 2.81e-01 3.22e-01 -3.8 4.06e+02 -5.0 1.00e+00 1.00e+00F 1
Then many hours later...
> iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
> 8270 3.4629818e+05 3.73e-04 3.03e-01 -5.7 3.05e+00 -5.1 3.40e-01 1.28e-02h 1
> 8271 3.4629149e+05 2.48e-04 2.48e-01 -5.7 1.14e+00 -4.7 7.40e-01 3.48e-01h 1
> 8272 3.4627186e+05 3.18e-04 1.68e-01 -5.7 3.48e+00 -5.2 3.53e-01 3.38e-01h 1
> 8273 3.4627111e+05 3.06e-04 1.62e-01 -5.7 1.29e+00 -4.8 3.95e-02 3.56e-02h 1
> 8274 3.4626946e+05 3.00e-04 3.55e-01 -5.7 4.43e+00 -5.2 3.53e-01 2.57e-02h 1
> 8275 3.4626407e+05 2.44e-04 2.17e-01 -5.7 1.45e+00 -4.8 1.64e-01 2.25e-01h 1
> 8276 3.4626263e+05 2.40e-04 3.19e-01 -5.7 5.92e+00 -5.3 1.53e-01 2.01e-02h 1
> 8277 3.4625715e+05 2.04e-04 1.82e-01 -5.7 1.64e+00 -4.9 4.42e-02 2.05e-01h 1
> 8278 3.4624521e+05 2.74e-04 1.60e-01 -5.7 7.71e+00 -5.3 1.65e-01 1.47e-01h 1
> 8279 3.4624204e+05 2.54e-04 3.19e-01 -5.7 2.29e+00 -4.9 3.28e-01 1.05e-01h 1
> iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
> 8280 3.4621935e+05 3.81e-04 1.10e-01 -5.7 5.50e+00 -5.4 3.91e-02 2.53e-01h 1
> 8281 3.4621741e+05 3.61e-04 3.22e-01 -5.7 2.06e+00 -5.0 3.66e-01 5.74e-02h 1
> 8282 3.4621398e+05 3.54e-04 3.55e-01 -5.7 6.18e+00 -5.4 1.30e-01 3.39e-02h 1
> 8283 3.4620558e+05 3.05e-04 2.46e-01 -5.7 2.32e+00 -5.0 1.74e-01 2.22e-01h 1
> 8284 3.4620029e+05 3.03e-04 2.70e-01 -5.7 6.95e+00 -5.5 2.38e-01 4.65e-02h 1
> 8285 3.4619775e+05 2.88e-04 3.07e-01 -5.7 2.61e+00 -5.1 2.54e-01 5.98e-02h 1
> 8286 3.4618951e+05 2.97e-04 3.08e-01 -5.7 7.80e+00 -5.5 8.89e-02 6.48e-02h 1
I read the 90-minutes-introduction to IPOPT and the implementation
paper. However I do not really have a feeling, why the algorithm is
converging that slow.
this run is started with the options
tol 0.01
acceptable_tol 0.05
max_iter 200000
So by default it should by
dual_inf_tol = 1
constr_viol_tol = 1e-4
compl_inf_tol = 1e-4
I see, that dual feasibility is stisfied but primal feasibility is not.
I do not know, where to read the compl_inf value in the current
iteration. Further I do not know, if the primal and dual step sizes are
"small"...
Has anybody some suggestions, why the algorithm is converging that slow?
Thank you,
Uwe
More information about the Ipopt
mailing list