[Ipopt] don't satisfy stop conditions (urgent)
Andreas Waechter
awaechter.iems at gmail.com
Mon May 14 22:00:04 EDT 2012
Hello Juan,
Maybe the following works:
acceptable_tol 1e-4
acceptable_obj_change_tol 1e-4
The issue with your setting is that you are asking the tolerance to be
less than 1e-5 for at least 10 iterations, but it stays under this
threshold only for fewer iterations.
If you set print_level to at least 7, you can see the precise values
that are used in each iteration to determine if Ipopt should terminate
(look for "Convergence Check" and "Acceptable Check" in the output).
This might help you to find good tolerances.
Also note that your objective function is changing a lot in iteration 25
when the barrier parameter is changed from 10^(-5.7) to 10^(-7.0). This
might suggest that your objective function is "underscaled." Try to see
what happens if you use obj_scaling_factor to scale it up (e.g., try 100
or so). In case you do this, the resulting change in the problem
scaling will probably mean that you need to adapt your termination
tolerances.
Hope this helps,
Andreas
Andreas Waechter
Associate Professor
Department of Industrial Engineering and Management Sciences
McCormick School of Engineering
Northwestern University
Evanston, IL 60208
USA
On 05/14/2012 02:18 AM, Juan Carlos Lopez Alfonso wrote:
> Dear Professor Andreas Waechter:
>
> Thank you for your last email, where I have made a mistake, but in any
> case I have read the description of the acceptable_* tolerances in
> details. My problem is the follows and I have tried to solve it without lucky:
>
> I am using pardiso and a big problem with more than 300 000 variables,
> so I need to control the computing time, but I cant do it. For Example
> I am sure that the implementation of the hessian and gradients are
> correct and I have changed the following options:
>
> List of user-set options:
>
> Name Value used
> acceptable_iter = 10 yes
> acceptable_tol = 1e-05 yes
> max_iter = 1000 yes
> print_user_options = yes yes
> tol = 1e-06 yes
>
> How you can see on the iterations of the algorithm, the change of the
> objetive function is very small, and the algorithm don't stop. Please,
> could you give me some ideas and suggestions?
>
> Thank you in advance and all the best
> Juan Carlos
>
>
> List of user-set options:
>
> Name Value used
> acceptable_iter = 10 yes
> acceptable_tol = 1e-05 yes
> max_iter = 1000 yes
> print_user_options = yes yes
> tol = 1e-06 yes
>
> ******************************************************************************
> This program contains Ipopt, a library for large-scale nonlinear optimization.
> Ipopt is released as open source code under the Eclipse Public License (EPL).
> For more information visit http://projects.coin-or.org/Ipopt
> ******************************************************************************
>
> This is Ipopt version 3.10.1, running with linear solver pardiso.
>
> Number of nonzeros in equality constraint Jacobian...: 0
> Number of nonzeros in inequality constraint Jacobian.: 8735712
> Number of nonzeros in Lagrangian Hessian.............: 21839280
>
> Total number of variables............................: 375601
> variables with only lower bounds: 0
> variables with lower and upper bounds: 375601
> variables with only upper bounds: 0
> Total number of equality constraints.................: 0
> Total number of inequality constraints...............: 2183928
> inequality constraints with only lower bounds: 0
> inequality constraints with lower and upper bounds: 0
> inequality constraints with only upper bounds: 2183928
>
> iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
> 0 1.1959761e+01 0.00e+00 2.40e-03 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0
> 1 3.2090451e+01 0.00e+00 5.65e-01 -1.0 1.09e-01 - 5.26e-01 1.00e+00f 1
> 2 3.9205106e+01 0.00e+00 1.06e-01 -1.7 1.51e-01 - 8.86e-01 1.00e+00f 1
> 3 4.5493486e+01 0.00e+00 2.45e-02 -2.5 1.13e-01 - 9.20e-01 1.00e+00f 1
> 4 4.6046663e+01 0.00e+00 4.66e-03 -3.8 9.02e-02 - 7.63e-01 1.00e+00h 1
> 5 4.6845229e+01 0.00e+00 3.12e-03 -3.8 1.29e+00 - 3.09e-01 1.00e+00f 1
> 6 4.8051644e+01 0.00e+00 1.64e-03 -3.8 6.91e-01 - 5.64e-01 1.00e+00h 1
> 7 5.0071686e+01 0.00e+00 7.88e-04 -3.8 3.66e-01 - 8.82e-01 1.00e+00h 1
> 8 5.2101707e+01 0.00e+00 5.10e-04 -3.8 3.25e-01 - 1.00e+00 1.00e+00h 1
> 9 5.2344541e+01 0.00e+00 1.16e-04 -3.8 1.50e-01 - 1.00e+00 1.00e+00h 1
> iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
> 10 5.2365229e+01 0.00e+00 1.19e-04 -3.8 9.12e-02 - 1.00e+00 1.00e+00h 1
> 11 5.2366845e+01 0.00e+00 1.46e-04 -3.8 1.31e-01 - 1.00e+00 1.00e+00h 1
> 12 5.2367852e+01 0.00e+00 1.60e-04 -3.8 1.66e-01 - 1.00e+00 1.00e+00h 1
> 13 5.2367412e+01 0.00e+00 2.62e-04 -3.8 2.75e-01 - 1.00e+00 1.00e+00H 1
> 14 3.0317532e+01 0.00e+00 4.74e-04 -5.7 4.36e-01 - 7.80e-01 6.03e-01f 1
> 15 2.0701464e+01 0.00e+00 4.75e-04 -5.7 3.79e-01 - 7.75e-01 4.41e-01f 1
> 16 1.5075991e+01 0.00e+00 4.80e-04 -5.7 4.41e-01 - 8.39e-01 4.16e-01h 1
> 17 1.1779443e+01 0.00e+00 3.71e-04 -5.7 3.95e-01 - 8.26e-01 4.10e-01h 1
> 18 9.8058135e+00 9.57e-03 2.88e-04 -5.7 3.66e-01 - 1.00e+00 4.19e-01h 1
> 19 8.8218118e+00 2.31e-02 2.88e-04 -5.7 3.39e-01 - 9.80e-01 3.62e-01h 1
> iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
> 20 7.7028064e+00 1.76e-02 1.27e-04 -5.7 2.13e-01 - 1.00e+00 6.49e-01h 1
> 21 7.0999381e+00 0.00e+00 1.56e-05 -5.7 7.74e-02 - 1.00e+00 1.00e+00h 1
> 22 7.1000638e+00 0.00e+00 5.66e-06 -5.7 1.81e-02 - 1.00e+00 1.00e+00h 1
> 23 7.1000565e+00 0.00e+00 2.14e-06 -5.7 7.35e-03 - 1.00e+00 1.00e+00h 1
> 24 7.1000556e+00 0.00e+00 7.99e-07 -5.7 2.74e-03 - 1.00e+00 1.00e+00h 1
> 25 6.7451507e+00 0.00e+00 7.86e-05 -7.0 1.03e-01 - 7.66e-01 5.41e-01f 1
> 26 6.5953193e+00 1.91e-04 1.27e-04 -7.0 9.48e-02 - 7.58e-01 4.95e-01h 1
> 27 6.5130936e+00 3.27e-04 1.26e-04 -7.0 6.65e-02 - 9.37e-01 5.37e-01h 1
> 28 6.4633435e+00 6.53e-05 6.42e-05 -7.0 4.41e-02 - 9.15e-01 7.03e-01h 1
> 29 6.4431951e+00 3.43e-05 1.03e-05 -7.0 2.70e-02 - 1.00e+00 9.58e-01h 1
> iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
> 30 6.4423090e+00 0.00e+00 4.58e-06 -7.0 1.39e-02 - 1.00e+00 1.00e+00f 1
> 31 6.4423086e+00 0.00e+00 2.62e-06 -7.0 8.24e-03 - 1.00e+00 1.00e+00h 1
> 32 6.4423082e+00 0.00e+00 5.57e-06 -7.0 1.64e-02 - 1.00e+00 1.00e+00h 1
> 33 6.4423081e+00 2.86e-04 1.80e-05 -7.0 3.78e-02 - 1.00e+00 1.00e+00h 1
> 34 6.4423057e+00 4.17e-03 7.11e-05 -7.0 1.05e-01 - 4.99e-01 1.00e+00h 1
> 35 6.4423001e+00 5.66e-03 1.05e-04 -7.0 4.43e-01 - 2.69e-01 1.82e-01h 1
> 36 6.4423086e+00 2.02e-03 7.96e-05 -7.0 1.09e-01 - 6.50e-01 1.00e+00h 1
> 37 6.4423039e+00 3.34e-03 6.46e-05 -7.0 3.66e-01 - 4.71e-01 2.70e-01h 1
> 38 6.4423083e+00 5.67e-04 3.73e-05 -7.0 5.26e-02 - 6.53e-01 1.00e+00h 1
> 39 6.4423072e+00 7.16e-04 4.56e-05 -7.0 2.08e-01 - 1.00e+00 1.74e-01h 2
> iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
> 40 6.4423083e+00 0.00e+00 3.43e-06 -7.0 9.07e-03 - 1.00e+00 1.00e+00h 1
> 41 6.4423081e+00 0.00e+00 5.39e-06 -7.0 1.66e-02 - 1.00e+00 1.00e+00H 1
> 42 6.4423084e+00 0.00e+00 7.53e-06 -7.0 2.48e-02 - 1.00e+00 1.00e+00h 1
> 43 6.4423085e+00 0.00e+00 1.82e-05 -7.0 5.52e-02 - 1.00e+00 1.00e+00H 1
> 44 6.4423060e+00 4.22e-03 8.00e-05 -7.0 1.05e-01 - 4.29e-01 1.00e+00h 1
> 45 6.4422998e+00 5.75e-03 1.10e-04 -7.0 4.12e-01 - 2.98e-01 2.02e-01h 1
> 46 6.4423041e+00 2.76e-03 3.87e-05 -7.0 3.12e-02 - 1.00e+00 5.00e-01h 2
> 47 6.4423060e+00 1.25e-03 1.55e-05 -7.0 2.66e-02 - 1.00e+00 5.00e-01h 2
> 48 6.4423083e+00 0.00e+00 4.26e-06 -7.0 1.30e-02 - 1.00e+00 1.00e+00h 1
> 49 6.4423082e+00 0.00e+00 9.33e-06 -7.0 2.48e-02 - 1.00e+00 1.00e+00H 1
> iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
> 50 6.4423099e+00 0.00e+00 3.04e-05 -7.0 6.40e-02 - 1.00e+00 1.00e+00H 1
> 51 6.4423066e+00 7.63e-04 2.70e-05 -7.0 1.67e-01 - 1.77e-01 2.95e-01h 2
> 52 6.4423075e+00 2.86e-04 1.76e-05 -7.0 3.78e-02 - 1.00e+00 5.00e-01h 2
> 53 6.4423077e+00 8.43e-05 1.03e-05 -7.0 2.81e-02 - 1.00e+00 5.00e-01h 2
> 54 6.4423080e+00 0.00e+00 5.93e-06 -7.0 1.31e-02 - 1.00e+00 5.00e-01h 2
> 55 6.4423082e+00 0.00e+00 3.72e-06 -7.0 7.91e-03 - 1.00e+00 1.00e+00h 1
>
> _______________________________________________
> Ipopt mailing list
> Ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/ipopt
More information about the Ipopt
mailing list