[Coin-ipopt] problems with step lenght and stopping criteria

Andreas Waechter andreasw at watson.ibm.com
Tue Mar 13 06:41:58 EDT 2007


Hi Fabian,

It seems that your objective functon is rather underscaled.  I usually 
suggest to people that they try to scale the problem so that the non-zero 
elements in the gradients for the objective and constraint functions are 
on the order of, say, 0.01 to 100.  In your case, the gradient of the 
objective seems to be really small, and even multiplying the objective by 
1000 is probably not yet enough.

I have writting a little bit about scaling at

https://projects.coin-or.org/Ipopt/wiki/HintsAndTricks

That might help.

Note that if it is only the objective function that is not well-scaled, 
you can use the Ipopt option obj_scaling_factor, which scales the 
objective inside Ipopt (the value in the output will not change, but the 
convergence is usually rather different for different orders of 
magnitude).  In your case, I would try obj_scaling_factor 1e6 or even 
larger (1e9?).

I hope this helps.

Andreas


On Tue, 13 Mar 2007, Fabian Wein wrote:

> Hello,
>
> I sent this mail already but from a different mail account. I hope it is not doubled
> now.
>
> I do topological optimization using the SIMP method (I know there are better
> optimizers for this kind of problem but I will move only later).
>
> In my current example with 600 design parameters 0.001 <= x <= 1.0 the iteration
> stops to early and the design parameters are almost not moved away from the initial 0.5.
>
> iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
>   0  1.0623488e-09 0.00e+00 4.25e-11   0.0 0.00e+00    -  0.00e+00 0.00e+00   0
>   1  1.0623488e-09 2.78e-16 8.84e-12  -6.3 8.50e-12    -  9.90e-01 1.00e+00f  1
>   2  1.0623488e-09 1.67e-16 3.47e-18  -2.4 1.06e-09    -  1.00e+00 1.00e+00h  1
>   3  1.0623488e-09 5.55e-16 1.41e-18  -3.6 1.26e-09    -  1.00e+00 1.00e+00h  1
>   4  1.0623487e-09 1.11e-16 1.76e-19  -5.4 2.10e-08    -  1.00e+00 1.00e+00h  1
>   5  1.0623470e-09 1.11e-16 3.22e-20  -8.1 1.32e-06    -  1.00e+00 1.00e+00h  1
>
> Number of Iterations....: 5
>                                   (scaled)                 (unscaled)
> Objective...............:   1.0623469784657005e-09    1.0623469784657005e-09
> Dual infeasibility......:   3.2240191554866807e-20    3.2240191554866807e-20
> Constraint violation....:   1.1102230246251565e-16    1.1102230246251565e-16
> Complementarity.........:   8.0548516395455321e-09    8.0548516395455321e-09
> Overall NLP error.......:   8.0548516395455321e-09    8.0548516395455321e-09
>
> EXIT: Optimal Solution Found.
>
> It works fine if I change my simulation (mechanical elasiticity) such that I apply
> a force of 1000 instead of 1. The I get a good result:
>
> iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
>   0  1.0623488e-03 0.00e+00 4.25e-05   0.0 0.00e+00    -  0.00e+00 0.00e+00   0
>   1  1.0623375e-03 1.67e-16 8.57e-06  -2.4 8.50e-06    -  9.98e-01 1.00e+00f  1
>   2  1.0609442e-03 1.11e-16 5.27e-10  -2.4 1.05e-03    -  1.00e+00 1.00e+00f  1
>   3  1.0592009e-03 6.66e-16 3.20e-10  -8.4 1.32e-03    -  9.93e-01 1.00e+00f  1
>   4  8.8750404e-04 8.88e-16 4.88e-06  -5.4 1.17e-01    -  1.00e+00 1.00e+00f  1
>   5  5.9051295e-04 0.00e+00 5.51e-06  -6.2 2.40e-01    -  1.00e+00 1.00e+00f  1
>   6  4.5316331e-04 1.67e-16 2.46e-06  -7.0 1.94e-01    -  8.95e-01 9.05e-01f  1
>   7  4.0288495e-04 2.78e-16 1.99e-06  -7.4 1.83e-01    -  9.95e-01 1.00e+00f  1
> ...
>  27  2.7294505e-04 4.44e-16 1.40e-06  -7.6 4.99e-01    -  1.00e+00 4.88e-01f  1
>  28  2.6129044e-04 0.00e+00 1.00e-06  -7.8 3.93e-01    -  1.00e-00 4.62e-01f  1
>  29  2.6129005e-04 1.11e-16 1.53e-03  -9.0 1.53e-03    -  1.00e+00 1.00e+00f  1
>  30  2.5772250e-04 3.33e-16 1.03e-06  -8.6 2.63e-01    -  1.00e+00 4.28e-02f  1
>
> Number of Iterations....: 30
>
>                                   (scaled)                 (unscaled)
> Objective...............:   2.5772249957854785e-04    2.5772249957854785e-04
> Dual infeasibility......:   1.0325658191257624e-06    1.0325658191257624e-06
> Constraint violation....:   3.3306690738754696e-16    3.3306690738754696e-16
> Complementarity.........:   6.5804124778369685e-09    6.5804124778369685e-09
> Overall NLP error.......:   1.0325658191257624e-06    1.0325658191257624e-06
>
>
> I tried to modify tol and normalized the objective function by its initial value -
> I get more iterations then - but still the step size is much to
> small and the design variable are still much to close to their 0.5 inital value (actually
> I want a merely 0.0001 (black) and 1 (white) design in the end)
>
>
> Your help is very much appreciated!!
>
> Fabian Wein
>
>
>
> _______________________________________________
> Coin-ipopt mailing list
> Coin-ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/coin-ipopt
>



More information about the Coin-ipopt mailing list