Skip to content

Commit bff5892

Browse files
reviwe the paper draft
1 parent f7cca94 commit bff5892

File tree

1 file changed

+36
-30
lines changed

1 file changed

+36
-30
lines changed

paper/paper.md

Lines changed: 36 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -41,29 +41,26 @@ Both $f$ and $h$ may be nonconvex.
4141

4242
The library provides a modular and extensible framework for experimenting with nonsmooth and nonconvex optimization algorithms, including:
4343

44-
- **Trust-region methods (TR, TRDH)** [@aravkin-baraldi-orban-2022] and [@leconte-orban-2023],
45-
- **Quadratic regularization methods (R2, R2N)** [@diouane-habiboullah-orban-2024] and [@aravkin-baraldi-orban-2022],
46-
- **Levenberg-Marquardt methods (LM, LMTR)** [@aravkin-baraldi-orban-2024].
4744
- **Trust-region methods (TR, TRDH)** [@aravkin-baraldi-orban-2022;@leconte-orban-2023],
4845
- **Quadratic regularization methods (R2, R2N)** [@diouane-habiboullah-orban-2024;@aravkin-baraldi-orban-2022],
4946
- **Levenbergh-Marquardt methods (LM, LMTR)** [@aravkin-baraldi-orban-2024].
5047

5148
These methods rely solely on the gradient and Hessian(-vector) information of the smooth part $f$ and the proximal mapping of the nonsmooth part $h$ in order to compute steps.
5249
Then, the objective function $f + h$ is used only to accept or reject trial points.
53-
Moreover, they can handle cases where Hessian approximations are unbounded [@diouane-habiboullah-orban-2024] and [@leconte-orban-2023-2], making the package particularly suited for large-scale, ill-conditioned, and nonsmooth problems.
50+
Moreover, they can handle cases where Hessian approximations are unbounded [@diouane-habiboullah-orban-2024;@leconte-orban-2023-2], making the package particularly suited for large-scale, ill-conditioned, and nonsmooth problems.
5451

5552
# Statement of need
5653

5754
## Model-based framework for nonsmooth methods
5855

5956
There exists a way to solve \eqref{eq:nlp} in Julia using [ProximalAlgorithms.jl](https://github.com/JuliaFirstOrder/ProximalAlgorithms.jl), which implements in-place first-order line search–based methods for \eqref{eq:nlp}.
6057
Most of these methods are generally splitting schemes that alternate between taking steps along the gradient of the smooth part $f$ (or quasi-Newton directions) and applying proximal steps on the nonsmooth part $h$.
61-
Currently, **ProximalAlgorithms.jl** provides only L-BFGS as a quasi-Newton option.
62-
By contrast, **RegularizedOptimization.jl** focuses on model-based approaches such as trust-region and regularization algorithms.
58+
Currently, [ProximalAlgorithms.jl](https://github.com/JuliaFirstOrder/ProximalAlgorithms.jl) provides only L-BFGS as a quasi-Newton option.
59+
By contrast, [RegularizedOptimization.jl](https://github.com/JuliaSmoothOptimizers/RegularizedOptimization.jl) focuses on model-based approaches such as trust-region and regularization algorithms.
6360
As shown in [@aravkin-baraldi-orban-2022], model-based methods typically require fewer evaluations of the objective and its gradient than first-order line search methods, at the expense of solving more involved subproblems.
6461
Although these subproblems may require many proximal iterations, each proximal computation is inexpensive, making the overall approach efficient for large-scale problems.
6562

66-
Building on this perspective, **RegularizedOptimization.jl** implements state-of-the-art regularization-based algorithms for solving problems of the form $f(x) + h(x)$, where $f$ is smooth and $h$ is nonsmooth.
63+
Building on this perspective, [RegularizedOptimization.jl](https://github.com/JuliaSmoothOptimizers/RegularizedOptimization.jl) implements state-of-the-art regularization-based algorithms for solving problems of the form $f(x) + h(x)$, where $f$ is smooth and $h$ is nonsmooth.
6764
The package provides a consistent API to formulate optimization problems and apply different regularization methods.
6865
It integrates seamlessly with the [JuliaSmoothOptimizers](https://github.com/JuliaSmoothOptimizers) ecosystem, an academic organization for nonlinear optimization software development, testing, and benchmarking.
6966

@@ -79,9 +76,20 @@ This modularity makes it easy to benchmark existing solvers available in the rep
7976

8077
## Support for Hessians
8178

82-
In contrast to first-order methods package like [ProximalAlgorithms.jl](https://github.com/JuliaFirstOrder/ProximalAlgorithms.jl), **RegularizedOptimization.jl** enables the use of second-order information, which can significantly improve convergence rates, especially for ill-conditioned problems.
79+
In contrast to first-order methods package like [ProximalAlgorithms.jl](https://github.com/JuliaFirstOrder/ProximalAlgorithms.jl), [RegularizedOptimization.jl](https://github.com/JuliaSmoothOptimizers/RegularizedOptimization.jl) enables the use of second-order information, which can significantly improve convergence rates, especially for ill-conditioned problems.
8380
A way to use Hessians is via automatic differentiation tools such as [ADNLPModels.jl](https://github.com/JuliaSmoothOptimizers/ADNLPModels.jl).
8481

82+
## Requirements of the RegularizedProblems.jl package
83+
84+
To model the problem \eqref{eq:nlp}, one defines the smooth part $f$ and the nonsmooth part $h$ as discussed above.
85+
The package [RegularizedProblems.jl](https://github.com/JuliaSmoothOptimizers/RegularizedProblems.jl) provides a straightforward way to create such instances, called *Regularized Nonlinear Programming Models*:
86+
87+
```julia
88+
reg_nlp = RegularizedNLPModel(f, h)
89+
```
90+
91+
This design makes it a convenient source of reproducible problem instances for testing and benchmarking algorithms in [RegularizedOptimization.jl](https://github.com/JuliaSmoothOptimizers/RegularizedOptimization.jl).
92+
8593
## Requirements of the ShiftedProximalOperators.jl package
8694

8795
The nonsmooth part $h$ must have a computable proximal mapping, defined as
@@ -95,9 +103,9 @@ Specifically, this package considers proximal operators defined as
95103
$$
96104
argmin \, { \tfrac{1}{2} ‖t - q‖₂² + ν h(x + s + t) + χ(s + t; ΔB) | t ∈ ℝⁿ },
97105
$$
98-
where q is given, x and s are fixed shifts, h is the nonsmooth term with respect
99-
to which we are computing the proximal operator, and χ(.; ΔB) is the indicator of
100-
a ball of radius Δ defined by a certain norm.
106+
where $q$ is given, $x$ and $s$ are fixed shifts, $h$ is the nonsmooth term with respect
107+
to which we are computing the proximal operator, and $χ(.; \Delta B)$ is the indicator of
108+
a ball of radius $\Delta$ defined by a certain norm.
101109

102110
![Composition of JSO packages](jso-packages.pdf){ width=70% }
103111

@@ -111,11 +119,11 @@ Documentation is built using Documenter.jl.
111119

112120
## Hyperparameter tuning
113121

114-
The solvers in **RegularizedOptimization.jl** do not require extensive hyperparameter tuning.
122+
The solvers in [RegularizedOptimization.jl](https://github.com/JuliaSmoothOptimizers/RegularizedOptimization.jl) do not require extensive hyperparameter tuning.
115123

116124
## Non-monotone strategies
117125

118-
The solvers in **RegularizedOptimization.jl** implement non-monotone strategies to accept trial points, which can enhance convergence properties.
126+
The solvers in [RegularizedOptimization.jl](https://github.com/JuliaSmoothOptimizers/RegularizedOptimization.jl) implement non-monotone strategies to accept trial points, which can enhance convergence properties.
119127

120128
## Application studies
121129

@@ -124,19 +132,19 @@ This is not covered in the current version of the competitive package [ProximalA
124132

125133
## Support for inexact subproblem solves
126134

127-
Solvers in **RegularizedOptimization.jl** allow inexact resolution of trust-region and quadratic-regularized subproblems using first-order that are implemented in the package itself such as the quadratic regularization method R2[@aravkin-baraldi-orban-2022] and R2DH[@diouane-habiboullah-orban-2024] with trust-region variants TRDH[@leconte-orban-2023-2].
135+
Solvers in [RegularizedOptimization.jl](https://github.com/JuliaSmoothOptimizers/RegularizedOptimization.jl) allow inexact resolution of trust-region and quadratic-regularized subproblems using first-order that are implemented in the package itself such as the quadratic regularization method R2 [@aravkin-baraldi-orban-2022] and R2DH [@diouane-habiboullah-orban-2024] with trust-region variants TRDH [@leconte-orban-2023-2].
128136

129137
This is crucial for large-scale problems where exact subproblem solutions are prohibitive.
130138

131139
## Support for Hessians as Linear Operators
132140

133-
The second-order methods in **RegularizedOptimization.jl** can use Hessian approximations represented as linear operators via [LinearOperators.jl](https://github.com/JuliaSmoothOptimizers/LinearOperators.jl).
141+
The second-order methods in [RegularizedOptimization.jl](https://github.com/JuliaSmoothOptimizers/RegularizedOptimization.jl) can use Hessian approximations represented as linear operators via [LinearOperators.jl](https://github.com/JuliaSmoothOptimizers/LinearOperators.jl).
134142
Explicitly forming Hessians as dense or sparse matrices is often prohibitively expensive, both computationally and in terms of memory, especially in high-dimensional settings.
135143
In contrast, many problems admit efficient implementations of Hessian–vector or Jacobian–vector products, either through automatic differentiation tools or limited-memory quasi-Newton updates, making the linear-operator approach more scalable and practical.
136144

137145
## In-place methods
138146

139-
All solvers in **RegularizedOptimization.jl** are implemented in an in-place fashion, minimizing memory allocations during the resolution process.
147+
All solvers in [RegularizedOptimization.jl](https://github.com/JuliaSmoothOptimizers/RegularizedOptimization.jl) are implemented in an in-place fashion, minimizing memory allocations during the resolution process.
140148

141149
# Examples
142150

@@ -152,13 +160,14 @@ using DifferentialEquations, ADNLPModels
152160

153161
# Define the Fitzhugh-Nagumo problem
154162
model, _, _ = RegularizedProblems.fh_model()
163+
x0 = 0.1 * ones(model.meta.nvars) # initial guess
155164

156165
# Define the Hessian approximation
157166
f = LBFGSModel(fh_model)
158167

159168
# Define the nonsmooth regularizer (L1 norm)
160169
λ = 0.1
161-
h = NormL1(λ)
170+
h = NormL0(λ)
162171

163172
# Define the regularized NLP model
164173
reg_nlp = RegularizedNLPModel(f, h)
@@ -171,20 +180,17 @@ stats = RegularizedExecutionStats(reg_nlp)
171180
solve!(solver_tr, reg_nlp, stats, x = f.meta.x0, atol = 1e-3, rtol = 1e-4, verbose = 10)
172181
```
173182

183+
Compare the performance of different solvers on this problem:
184+
174185
````
175-
=== Comparaison PANOC vs TR (FH_smooth_term) ===
176-
PANOC :
177-
itérations = 81
178-
# f évaluations = 188
179-
# ∇f évaluations = 188
180-
# prox appels (g) = 107
181-
solution (≈) = [-0.0, 0.19071674721048656, 1.037084478194805, -0.0, -0.0]
182-
183-
TR :
184-
statut = first_order
185-
# f évaluations = 65
186-
# ∇f évaluations = 52
187-
solution (≈) = [0.0, 0.1910326406395867, 1.0357773976471938, 0.0, 0.0]
186+
187+
┌──────────────────┬───────────────────┬────────────────────┬───────────┬────────────┬────────────────┐
188+
│ Method │ Status │ Time │ #f │ #∇f │ #prox │
189+
├──────────────────┼───────────────────┼────────────────────┼───────────┼────────────┼────────────────┤
190+
│ PANOC │ first_order │ 1.2794 │ 188 │ 188 │ 107 │
191+
│ TR(LBFGS) │ first_order │ 3.0748 │ 113 │ 92 │ missing │
192+
│ R2N(LBFGS) │ first_order │ 0.5582 │ 112 │ 65 │ missing │
193+
└──────────────────┴───────────────────┴────────────────────┴───────────┴────────────┴────────────────┘
188194
````
189195

190196
# Acknowledgements

0 commit comments

Comments
 (0)