[Ipopt] Options that control the value of mu
Andreas Waechter
awaechter.iems at gmail.com
Sun Feb 19 23:20:21 EST 2012
Hi Brad,
I cannot reproduce your observation. For the options
mu_init 0.5
mu_linear_decrease_factor 0.5
mu_strategy monotone
mu_superlinear_decrease_power 1.1
tol 0.001
I got this on the HS100 problem:
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du
alpha_pr ls
0 7.1400000e+02 0.00e+00 7.80e+00 -0.3 0.00e+00 - 0.00e+00
0.00e+00 0
1 7.0995093e+02 0.00e+00 7.68e+00 -0.3 1.09e+02 - 9.18e-01
1.56e-02f 7
2 6.7901631e+02 3.02e+00 6.38e+00 -0.3 1.45e+02 - 1.00e+00
1.79e-01f 1
3 6.7946712e+02 1.83e+00 2.25e+00 -0.3 4.28e+00 - 1.00e+00
7.19e-01h 1
4 6.8093385e+02 0.00e+00 9.10e-01 -0.9 3.54e+00 - 1.00e+00
1.00e+00h 1
5 6.8065537e+02 4.19e-01 1.22e+00 -1.2 1.83e+00 - 1.00e+00
1.00e+00h 1
6 6.8073733e+02 0.00e+00 2.18e-01 -1.2 4.19e-01 - 1.00e+00
1.00e+00h 1
7 6.8066042e+02 0.00e+00 1.21e-02 -1.8 2.51e-01 - 1.00e+00
1.00e+00h 1
8 6.8063205e+02 0.00e+00 3.67e-05 -3.0 6.90e-02 - 1.00e+00
1.00e+00h 1
9 6.8063013e+02 0.00e+00 1.33e-07 -4.4 4.36e-03 - 1.00e+00
1.00e+00h 1
This coincides with your formula. Note that sometimes mu is decrease
more than once in one iteration (e.g., between iteration 3 and 4 above),
because the barrier problem error is small.
Regards,
Andreas
On 02/19/2012 02:56 PM, Brad Bell wrote:
> I am having some trouble understanding the Ipopt optionss that control
> the value of mu during optimization. According to equation (7) of the
> reference:
> `On the implementation of an interior-point filter line-search
> algorithm for large-scale nonlinear programming'
> we have
> mu_{j+1} = max { epsilon/10 , min [ kappa mu_j , mu_j^theta ] }
>
> In the Ipopt trace below, it seems that kappa is the linear scaling
> factor and theta is the superlinear scaling factor. The initial mu =
> .5 and corresponding log10(mu) = -.3 which agrees with iter = 0 in the
> trace below.
>
> The problem is at iter = 8, the
> log10(mu_j) = -.3, i.e., mu_j = 0.5
> log10(mu_{j+1) = -1.5, i.e., mu_{j+1} = 0.032
> But the value of kappa=.5 and the value of theta=1.1 and so the value
> of mu_{j+1} should be
> min[ .5 * .5 , .5^1.1 ] = min[ .25 , .467 ] = .25
> so the conclusion is that mu_{j+1} = .032 >= .25 which is false.
>
> Can someone explain what is going on here ?
>
>
> List of user-set options:
>
> Name Value used
> hessian_approximation = exact yes
> max_iter = 50 yes
> mu_init = 0.5 yes
> mu_linear_decrease_factor = 0.5 yes
> mu_strategy = monotone yes
> mu_superlinear_decrease_power = 1.1 yes
> nlp_lower_bound_inf = -1e+19 yes
> nlp_upper_bound_inf = 1e+19 yes
> print_level = 5 yes
> print_user_options = yes yes
> tol = 0.001 yes
> This is Ipopt version 3.10, running with linear solver mumps.
>
> Number of nonzeros in equality constraint Jacobian...: 3904
> Number of nonzeros in inequality constraint Jacobian.: 0
> Number of nonzeros in Lagrangian Hessian.............: 17012
>
> Total number of variables............................: 750
> variables with only lower bounds: 0
> variables with lower and upper bounds: 750
> variables with only upper bounds: 0
> Total number of equality constraints.................: 380
> Total number of inequality constraints...............: 0
> inequality constraints with only lower bounds: 0
> 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.7336986e+03 9.06e-01 9.76e+01 -0.3 0.00e+00 - 0.00e+00
> 0.00e+00 0
> 1 7.3646697e+02 2.98e-01 6.25e+02 -0.3 1.46e+00 2.0 4.12e-01
> 9.95e-01f 1
> 2 6.1674749e+02 2.71e-01 7.48e+02 -0.3 6.53e+00 1.5 2.32e-01
> 8.95e-02f 1
> 3 5.5840255e+02 2.15e-01 6.11e+02 -0.3 2.43e+00 - 3.46e-02
> 2.03e-01f 1
> 4 3.3685504e+02 1.42e-01 3.55e+02 -0.3 1.10e+00 - 1.83e-01
> 4.21e-01f 1
> 5 1.9885799e+02 9.32e-02 5.83e+01 -0.3 8.30e-01 - 7.44e-01
> 9.90e-01f 1
> 6 2.0559440e+02 1.41e-01 1.11e+04 -0.3 1.05e+00 - 3.31e-01
> 1.00e+00f 1
> 7 1.9305692e+02 5.79e-02 4.31e+03 -0.3 3.53e+00 - 4.83e-01
> 7.42e-01h 1
> 8 1.8984018e+02 1.82e-02 1.51e+00 -0.3 1.06e+00 - 1.00e+00
> 1.00e+00f 1
> 9 1.9125490e+02 4.80e-03 1.11e+02 -1.5 4.82e-01 - 6.92e-01
> 9.99e-01H 1
> iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du
> alpha_pr ls
> 10 1.9256817e+02 3.67e-03 1.06e-01 -1.5 4.53e-01 - 1.00e+00
> 1.00e+00h 1
> 11 1.9468436e+02 1.58e-03 3.03e+00 -2.7 4.07e-01 - 9.53e-01
> 8.80e-01h 1
> [...]
> 32 2.2479027e+02 1.12e-04 7.42e-02 -4.4 1.52e-01 - 1.00e+00
> 1.00e+00h 1
> 33 2.2749869e+02 8.63e-05 6.49e-02 -4.4 1.29e-01 - 1.00e+00
> 1.00e+00h 1
> 34 2.3009148e+02 5.67e-05 5.57e-02 -4.4 1.00e-01 - 1.00e+00
> 1.00e+00h 1
>
> Number of Iterations....: 34
>
> (scaled) (unscaled)
> Objective...............: 2.3009147704253428e+02
> 2.3009147704253428e+02
> Dual infeasibility......: 5.5729744609665358e-02
> 5.5729744609665358e-02
> Constraint violation....: 5.6684216535626365e-05
> 5.6684216535626365e-05
> Complementarity.........: 3.9139910972968873e-05
> 3.9139910972968873e-05
> Overall NLP error.......: 7.9497813272578718e-04
> 5.5729744609665358e-02
>
>
> Number of objective function evaluations = 126
> Number of objective gradient evaluations = 35
> Number of equality constraint evaluations = 126
> Number of inequality constraint evaluations = 0
> Number of equality constraint Jacobian evaluations = 35
> Number of inequality constraint Jacobian evaluations = 0
> Number of Lagrangian Hessian evaluations = 34
> Total CPU secs in IPOPT (w/o function evaluations) = 1.517
> Total CPU secs in NLP function evaluations = 246.303
>
> EXIT: Optimal Solution Found.
>
> _______________________________________________
> Ipopt mailing list
> Ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/ipopt
More information about the Ipopt
mailing list