You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/R2DH.jl
+10-4Lines changed: 10 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -145,12 +145,17 @@ Notably, you can access, and modify, the following:
145
145
- `stats`: structure holding the output of the algorithm (`GenericExecutionStats`), which contains, among other things:
146
146
- `stats.iter`: current iteration counter;
147
147
- `stats.objective`: current objective function value;
148
-
- `stats.solver_specific[:smooth_obj]`: current value of the smooth part of the objective function
149
-
- `stats.solver_specific[:nonsmooth_obj]`: current value of the nonsmooth part of the objective function
150
-
- `stats.status`: current status of the algorithm. Should be `:unknown` unless the algorithm has attained a stopping criterion. Changing this to anything will stop the algorithm, but you should use `:user` to properly indicate the intention.
148
+
- `stats.solver_specific[:smooth_obj]`: current value of the smooth part of the objective function;
149
+
- `stats.solver_specific[:nonsmooth_obj]`: current value of the nonsmooth part of the objective function;
150
+
- `stats.status`: current status of the algorithm. Should be `:unknown` unless the algorithm has attained a stopping criterion. Changing this to anything will stop the algorithm, but you should use `:user` to properly indicate the intention;
151
151
- `stats.elapsed_time`: elapsed time in seconds.
152
152
"""
153
-
functionR2DH(nlp::AbstractDiagonalQNModel{T, V}, h, options::ROSolverOptions{T}; kwargs...) where {T, V}
- `η2::T = T(0.9)`: very successful iteration threshold;
130
131
- `ν::T = eps(T)^(1 / 5)`: inverse of the initial regularization parameter: ν = 1/σ;
131
-
- `γ::T = T(3)`: regularization parameter multiplier, σ := σ/γ when the iteration is very successful and σ := σγ when the iteration is unsuccessful.
132
-
- `θ::T = 1/(1 + eps(T)^(1 / 5))`: is the model decrease fraction with respect to the decrease of the Cauchy model.
133
-
- `m_monotone::Int = 1`: monotonicity parameter. By default, R2N is monotone but the non-monotone variant will be used if `m_monotone > 1`
132
+
- `γ::T = T(3)`: regularization parameter multiplier, σ := σ/γ when the iteration is very successful and σ := σγ when the iteration is unsuccessful;
133
+
- `θ::T = 1/(1 + eps(T)^(1 / 5))`: is the model decrease fraction with respect to the decrease of the Cauchy model;
134
+
- `m_monotone::Int = 1`: monotonicity parameter. By default, R2N is monotone but the non-monotone variant will be used if `m_monotone > 1`;
134
135
- `sub_kwargs::Dict{Symbol}`: a dictionary containing the keyword arguments to be sent to the subsolver. The solver will fail if invalid keyword arguments are provided to the subsolver.
135
136
136
137
The algorithm stops either when `√(ξₖ/νₖ) < atol + rtol*√(ξ₀/ν₀) ` or `ξₖ < 0` and `√(-ξₖ/νₖ) < neg_tol` where ξₖ := f(xₖ) + h(xₖ) - φ(sₖ; xₖ) - ψ(sₖ; xₖ), and √(ξₖ/νₖ) is a stationarity measure.
@@ -150,9 +151,9 @@ Notably, you can access, and modify, the following:
150
151
- `stats`: structure holding the output of the algorithm (`GenericExecutionStats`), which contains, among other things:
151
152
- `stats.iter`: current iteration counter;
152
153
- `stats.objective`: current objective function value;
153
-
- `stats.solver_specific[:smooth_obj]`: current value of the smooth part of the objective function
154
-
- `stats.solver_specific[:nonsmooth_obj]`: current value of the nonsmooth part of the objective function
155
-
- `stats.status`: current status of the algorithm. Should be `:unknown` unless the algorithm has attained a stopping criterion. Changing this to anything other than `:unknown` will stop the algorithm, but you should use `:user` to properly indicate the intention.
154
+
- `stats.solver_specific[:smooth_obj]`: current value of the smooth part of the objective function;
155
+
- `stats.solver_specific[:nonsmooth_obj]`: current value of the nonsmooth part of the objective function;
156
+
- `stats.status`: current status of the algorithm. Should be `:unknown` unless the algorithm has attained a stopping criterion. Changing this to anything other than `:unknown` will stop the algorithm, but you should use `:user` to properly indicate the intention;
0 commit comments