@@ -7,7 +7,9 @@ author: "Abel S. Siqueira"
77CaNNOLeS is a solver for equality-constrained nonlinear least-squares problems, i.e.,
88optimization problems of the form
99
10- min ¹/₂‖F(x)‖² s. to c(x) = 0.
10+ $$
11+ \min \frac{1}{2}\|F(x)\|^2_2 \quad \text{s.to} \quad c(x) = 0.
12+ $$
1113
1214It uses other JuliaSmoothOptimizers packages for development.
1315In 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.
@@ -24,26 +26,26 @@ Find below a list of the main options of `cannoles`.
2426
2527### Tolerances on the problem
2628
27- | Parameters | Type | Default | Description |
28- | -------------------- | ------------- | --------------- | -------------------------------------------------- |
29- | ϵtol | AbstractFloat | √eps(eltype(x)) | tolerance. |
30- | unbounded_threshold | AbstractFloat | -1e5 | below this threshold the problem is unbounded. |
31- | max_f | Integer | 100000 | evaluation limit, e.g. `sum_counters(nls) > max_f` |
32- | max_time | AbstractFloat | 30. | maximum number of seconds. |
33- | max_inner | Integer | 10000 | maximum number of iterations. |
29+ | Parameters | Type | Default | Description |
30+ | -------------------- | ------------- | ----------------- | -------------------------------------------------- |
31+ | ϵtol | AbstractFloat | ` √eps(eltype(x))` | tolerance |
32+ | unbounded_threshold | AbstractFloat | ` -1e5` | below this threshold the problem is unbounded |
33+ | max_f | Integer | ` 100000` | evaluation limit, e.g. `sum_counters(nls) > max_f` |
34+ | max_time | AbstractFloat | ` 30.0` | maximum number of seconds |
35+ | max_inner | Integer | ` 10000` | maximum number of iterations |
3436
3537### Algorithmic parameters
3638
37- | Parameters | Type | Default | Description |
38- | --------------------------- | -------------- | ----------------- | -------------------------------------------------- |
39- | x | AbstractVector | copy( nls.meta.x0) | initial guess. |
40- | λ | AbstractVector | eltype(x)[] | initial guess for the Lagrange mutlipliers. |
41- | method | Symbol | :Newton | method to compute direction, `:Newton`, `:LM`, `:Newton_noFHess`, or `:Newton_vanishing`. |
42- | merit | Symbol | :auglag | merit function : `:norm1 `, `:auglag ` |
43- | linsolve | Symbol | :ma57 | solver use to compute the factorization: `:ma57`, `:ma97`, `:ldlfactorizations` |
44- | check_small_residual | Bool | true | |
45- | always_accept_extrapolation | Bool | false | |
46- | δdec | Real | eltype(x)(0.1) | |
39+ | Parameters | Type | Default | Description |
40+ | --------------------------- | -------------- | ------------------- | -------------------------------------------------- |
41+ | x | AbstractVector | ` nls.meta.x0` | initial guess |
42+ | λ | AbstractVector | ` eltype(x)[]` | initial guess for the Lagrange mutlipliers |
43+ | method | Symbol | ` :Newton` | method to compute direction, `:Newton`, `:LM`, `:Newton_noFHess`, or `:Newton_vanishing` |
44+ | linsolve | Symbol | `:ma57` | solver use to compute the factorization : `:ma57 `, `:ma97`, `:ldlfactorizations ` |
45+ | verbose | Int | `0` | if > 0, display iteration details every `verbose` iteration |
46+ | check_small_residual | Bool | ` true` | if `true`, stop whenever $ \|F(x)\|^2_2 \leq $ ``ϵtol`` and $ \|c(x)\|_\infty \leq $ ``√ϵtol`` |
47+ | always_accept_extrapolation | Bool | ` false` | if `true`, run even if the extrapolation step fails |
48+ | δdec | Real | ` eltype(x)(0.1)` | reducing factor on the parameter `δ` |
4749
4850## Examples
4951
@@ -65,5 +67,5 @@ nls = ADNLSModel(
6567 [0.0],
6668 [0.0],
6769)
68- stats = cannoles(nls, max_time = 10., merit = :auglag )
70+ stats = cannoles(nls, max_time = 10., linsolve = :ldlfactorizations )
6971```
0 commit comments