Skip to content

Commit a3ee173

Browse files
authored
Try debug CaNNoLeS tutorial (#70)
* update CaNNOLeS tutorial
1 parent 97fdb32 commit a3ee173

File tree

1 file changed

+21
-19
lines changed

1 file changed

+21
-19
lines changed

tutorials/introduction-to-cannoles/index.jmd

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ author: "Abel S. Siqueira"
77
CaNNOLeS is a solver for equality-constrained nonlinear least-squares problems, i.e.,
88
optimization 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

1214
It uses other JuliaSmoothOptimizers packages for development.
1315
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.
@@ -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

Comments
 (0)