Open-source software · Journal of Open Source Software, 2026

RegularizedOptimization.jl: our methods, ready to use

An open-source Julia package that makes our algorithms for nonsmooth optimization available to students, researchers and engineers, behind a single interface.

Paper
RegularizedOptimization.jl: A Julia framework for regularized and nonsmooth optimization
Maxence Gollier, Mohamed Laghdaf Habiboullah, Geoffroy Leconte, Robert Baraldi, Alberto De Marchi, Dominique Orban, Youssef Diouane
Journal of Open Source Software, 11(118):9344, 2026
In one minute

An algorithm only becomes useful when people can run it. RegularizedOptimization.jl gathers, in a single Julia package, the trust-region and quadratic-regularization methods developed in our group for problems of the form \(f + h\). It is part of the JuliaSmoothOptimizers ecosystem: a problem is defined once and can then be solved with any of the methods, through the same interface.

What problems it solves

The package targets problems of the form

\[ \min_x \; f(x) + h(x) \quad \text{subject to} \quad c(x) = 0, \]

where \(f\) and \(c\) are continuously differentiable and \(h\) is lower semicontinuous and possibly nonconvex. The term \(h\) can be a regularizer (sparsity, low rank), the indicator of a constraint set, or a combination of both.

What is inside

  • Trust-region methods: TR and TRDH.
  • Quadratic-regularization methods: R2, R2DH and R2N (see the R2N project).
  • Levenberg–Marquardt methods for nonlinear least squares: LM and LMTR.
  • An augmented Lagrangian method, AL, for problems with constraints.

These model-based methods typically need fewer evaluations of \(f\) and its gradient than first-order line-search methods, which matters when each evaluation is expensive.

How it fits in the ecosystem

  • NLPModels.jl and ADNLPModels.jl define the smooth part (with automatic differentiation).
  • ProximalOperators.jl and ShiftedProximalOperators.jl provide the nonsmooth part and its proximal operators.
  • LinearOperators.jl provides quasi-Newton approximations such as LBFGS and LSR1.
  • RegularizedProblems.jl provides ready-made test problems.

A short example

Training a support vector machine with a nonconvex ℓ1/2 penalty, using R2N with an LSR1 quasi-Newton model (example from the JOSS paper):

using LinearAlgebra, Random, ProximalOperators
using NLPModels, RegularizedProblems, RegularizedOptimization

model, nls_model, _ = RegularizedProblems.svm_train_model()
f = LSR1Model(model)            # quasi-Newton model of the smooth part
h = RootNormLhalf(1.0)          # nonconvex l_{1/2} regularizer
reg_nlp = RegularizedNLPModel(f, h)

solver = R2NSolver(reg_nlp)
stats = RegularizedExecutionStats(reg_nlp)
solve!(solver, reg_nlp, stats; atol = 1e-4, rtol = 1e-4)

To install the package, type ] in the Julia REPL, then add RegularizedOptimization.

My role

I contribute actively to the package and to its companion libraries RegularizedProblems.jl, ShiftedProximalOperators.jl, OptimizationProblems.jl and LinearOperators.jl.