frederikgeth / CaNNOLeS.jl

Constrained and NoNlinear Optimizer of Least Squares

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CaNNOLeS - Constrained and NoNlinear Optimizer of Least Squares

documentation documentation CI Cirrus CI - Base Branch Build Status codecov GitHub

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 is used for defining the problem, and SolverCore for the output. It also uses HSL.jl's MA57 as main solver, but you can pass linsolve=:ldlfactorizations to use LDLFactorizations.jl.

Cite as

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

Check CITATION.bib for bibtex.

Installation

  1. Follow HSL.jl's MA57 installation if possible. Otherwise LDLFactorizations.jl will be used.
  2. pkg> add CaNNOLeS

Examples

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)

About

Constrained and NoNlinear Optimizer of Least Squares

License:Other


Languages

Language:Julia 100.0%