https://github.com/juliasmoothoptimizers/cannoles.jl
Constrained and NoNlinear Optimizer of Least Squares
https://github.com/juliasmoothoptimizers/cannoles.jl
Last synced: 10 months ago
JSON representation
Constrained and NoNlinear Optimizer of Least Squares
- Host: GitHub
- URL: https://github.com/juliasmoothoptimizers/cannoles.jl
- Owner: JuliaSmoothOptimizers
- License: other
- Created: 2019-03-19T18:39:42.000Z (over 7 years ago)
- Default Branch: main
- Last Pushed: 2025-06-04T23:28:25.000Z (about 1 year ago)
- Last Synced: 2025-09-05T05:32:38.444Z (11 months ago)
- Language: Julia
- Size: 3.05 MB
- Stars: 23
- Watchers: 4
- Forks: 6
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
- Citation: CITATION.cff
Awesome Lists containing this project
README
# CaNNOLeS - Constrained and NoNlinear Optimizer of Least Squares
[](https://JuliaSmoothOptimizers.github.io/CaNNOLeS.jl/stable)
[](https://JuliaSmoothOptimizers.github.io/CaNNOLeS.jl/dev)

[](https://cirrus-ci.com/github/JuliaSmoothOptimizers/CaNNOLeS.jl)
[](https://codecov.io/gh/JuliaSmoothOptimizers/CaNNOLeS.jl)
[](https://github.com/JuliaSmoothOptimizers/CaNNOLeS/releases)
CaNNOLeS is a solver for equality-constrained nonlinear least-squares problems, i.e.,
optimization problems of the form
min ¹/₂‖F(x)‖² s. to c(x) = 0.
It uses other JuliaSmoothOptimizers packages for development.
In particular, [NLPModels.jl](https://github.com/JuliaSmoothOptimizers/NLPModels.jl) is used for defining the problem, and [SolverCore](https://github.com/JuliaSmoothOptimizers/SolverCore.jl) for the output.
It also uses [HSL.jl](https://github.com/JuliaSmoothOptimizers/HSL.jl)'s `MA57` as main solver, but you can pass `linsolve=:ldlfactorizations` to use [LDLFactorizations.jl](https://github.com/JuliaSmoothOptimizers/LDLFactorizations.jl).
## References
> Orban, D., & Siqueira, A. S.
> A Regularization Method for Constrained Nonlinear Least Squares.
> Computational Optimization and Applications 76, 961–989 (2020).
> [10.1007/s10589-020-00201-2](https://doi.org/10.1007/s10589-020-00201-2)
If you use CaNNOLeS.jl in your work, please cite using the format given in [CITATION.cff](CITATION.cff).
## Installation
1. Follow [HSL.jl](https://github.com/JuliaSmoothOptimizers/HSL.jl)'s `MA57` installation if possible. Otherwise [LDLFactorizations.jl](https://github.com/JuliaSmoothOptimizers/LDLFactorizations.jl) will be used.
2. `pkg> add CaNNOLeS`
## Examples
```julia
using CaNNOLeS, ADNLPModels
# Rosenbrock
nls = ADNLSModel(x -> [x[1] - 1; 10 * (x[2] - x[1]^2)], [-1.2; 1.0], 2)
stats = cannoles(nls)
# Constrained
nls = ADNLSModel(
x -> [x[1] - 1; 10 * (x[2] - x[1]^2)],
[-1.2; 1.0],
2,
x -> [x[1] * x[2] - 1],
[0.0],
[0.0],
)
stats = cannoles(nls)
```
# Bug reports and discussions
If you think you found a bug, feel free to open an [issue](https://github.com/JuliaSmoothOptimizers/CaNNOLeS.jl/issues).
Focused suggestions and requests can also be opened as issues. Before opening a pull request, start an issue or a discussion on the topic, please.
If you want to ask a question not suited for a bug report, feel free to start a discussion [here](https://github.com/JuliaSmoothOptimizers/Organization/discussions). This forum is for general discussion about this repository and the [JuliaSmoothOptimizers](https://github.com/JuliaSmoothOptimizers), so questions about any of our packages are welcome.