AdaptiveRegularization is a solver for unconstrained nonlinear problems,
min f(x)
It uses other JuliaSmoothOptimizers packages for development. In particular, NLPModels.jl is used for defining the problem, and SolverCore.jl for the output.
This package uses Stopping.jl
via NLPStopping
to handle its workflow, you can also see tutorials with Stopping
to learn more.
The initial implementation of this package follows (Dussault, J.-P. 2020):
Adaptive cubic regularization (ARC) and trust-region (TR) methods use modified linear systems to compute their steps. The modified systems consist in adding some multiple of the identity matrix (or a well-chosen positive definite matrix) to the Hessian to obtain a sufficiently positive definite linear system, the so called shifted system. This type of system was first proposed by Levenberg and Marquardt. Some trial and error is often involved to obtain a specified value for this shift parameter. We provide an efficient unified implementation to track the shift parameter; our implementation encompasses many ARC and TR variants.
Dussault, J.-P. (2020). A unified efficient implementation of trust-region type algorithms for unconstrained optimization. INFOR: Information Systems and Operational Research, 58(2), 290-309. 10.1080/03155986.2019.1624490
Dussault, J.-P., Migot, T. & Orban, D. (2023). Scalable adaptive cubic regularization methods. Mathematical Programming. 10.1007/s10107-023-02007-6
If you use AdaptiveRegularization.jl in your work, please cite using the reference given in CITATION.cff.
If you want to make contributions of any kind, please first that a look into our contributing guide directly on GitHub or the contributing page on the website