JuliaSmoothOptimizers / JuliaSmoothOptimizers/RegularizedOptimization.jl

JOSS paper: changes across different Julia versions

Open
#270 5 comments 0 reactions 1 assignee Claimed by @molhab View on GitHub
Dominant language
Julia
Stars
21
Forks
11
PR merge metrics
No merged PRs in 30d

Description

The example in the paper is not reproduced in Julia 1.12 and produces the following error:

```julia
julia> include("example.jl")
[ Info: outer inner f(x) h(x) √(ξ1/ν) ρ σ ‖x‖ ‖s‖ ‖B‖ R2N
[ Info: 0 1 7.6e+03 7.8e+02 1.5e+02 4.5e-01 7.4e-04 2.8e+01 1.5e+02 1.0e+00 =
[ Info: 1 200 2.9e+03 6.5e+02 1.1e+02 -7.2e-03 7.4e-04 1.4e+02 3.8e+04 1.6e+00 ↗
[ Info: 2 200 2.9e+03 6.5e+02 1.1e+02 -9.2e-03 2.2e-03 1.4e+02 2.3e+04 1.6e+00 ↗
[ Info: 3 200 2.9e+03 6.5e+02 1.1e+02 -1.4e-02 6.7e-03 1.4e+02 1.0e+04 1.6e+00 ↗
[ Info: 4 200 2.9e+03 6.5e+02 1.1e+02 -2.4e-02 2.0e-02 1.4e+02 4.0e+03 1.6e+00 ↗
[ Info: 5 199 2.9e+03 6.5e+02 1.1e+02 -4.0e-02 6.0e-02 1.4e+02 1.3e+03 1.6e+00 ↗
[ Info: 6 82 2.9e+03 6.5e+02 1.1e+02 -3.6e-02 1.8e-01 1.4e+02 4.4e+02 1.6e+00 ↗
[ Info: 7 23 2.9e+03 6.5e+02 1.1e+02 1.0e-01 5.4e-01 1.4e+02 1.5e+02 1.6e+00 =
[ Info: 8 8 1.1e+03 1.2e+03 3.3e+01 1.6e+00 5.4e-01 2.4e+02 2.3e+01 1.0e+00 ↘
[ Info: 9 9 8.6e+02 8.2e+02 1.8e+01 1.5e+00 1.8e-01 2.3e+02 1.9e+01 1.0e+00 ↘
[ Info: 10 21 6.1e+02 7.8e+02 1.3e+01 1.1e+00 6.0e-02 2.3e+02 3.7e+01 1.0e+00 ↘
[ Info: 11 25 3.8e+02 7.1e+02 3.8e+00 1.5e+00 2.0e-02 2.2e+02 1.5e+01 9.8e-01 ↘
[ Info: 12 24 3.6e+02 6.7e+02 3.3e+00 1.7e+00 6.7e-03 2.2e+02 2.2e+01 4.6e-01 ↘
[ Info: 13 200 3.4e+02 6.3e+02 2.0e+00 1.0e+00 2.2e-03 2.3e+02 4.2e-01 4.8e+00 ↘
[ Info: 14 200 3.4e+02 6.3e+02 2.0e+00 1.0e+00 7.4e-04 2.3e+02 4.1e-01 4.9e+00 ↘
[ Info: 15 200 3.4e+02 6.3e+02 2.1e+00 1.0e+00 2.5e-04 2.3e+02 1.6e+00 1.3e+00 ↘
[ Info: 16 200 3.4e+02 6.3e+02 2.9e+00 1.2e+00 8.2e-05 2.3e+02 1.1e+01 2.9e-01 ↘
[ Info: 17 200 3.4e+02 6.0e+02 2.4e+00 1.1e+00 2.7e-05 2.2e+02 8.1e+00 3.3e-01 ↘
[ Info: 18 134 3.3e+02 5.8e+02 1.8e+00 1.0e+00 9.1e-06 2.2e+02 9.4e+01 1.7e+00 ↘
[ Info: 19 200 3.3e+02 4.8e+02 2.5e+00 8.5e-01 3.0e-06 2.3e+02 1.4e+00 1.8e+00 =
[ Info: 20 20 3.3e+02 4.8e+02 2.1e+00 1.2e+00 3.0e-06 2.3e+02 8.6e+00 6.1e-01 ↘
...
[ Info: 140 88 1.9e+02 2.2e+02 4.5e-02 1.6e+00 2.6e-07 9.5e+02 2.2e+01 2.7e-02 ↘
mks = 1.731127610666441e7
ψ(s) = 9688.435470120465
hkn = 9688.435470120465
ν1 = 65329.83168707116
norm s1 = 46370.51666522656
norm Bk = 1.5209597991248702e-5
ERROR: LoadError: R2N: failed to compute a step: ξ = -1.731105604181186e7
```

If we print some parameters, we observe that $$B_k$$ at this iteration and $$\sigma_k$$ are very small, and consequently $$\nu_1$$ and $$s_1$$ are large.

When displaying the sub-iteration in question, we obtain:

```julia
[ Info: 140 88 1.9e+02 2.2e+02 4.5e-02 1.6e+00 2.6e-07 9.5e+02 2.2e+01 2.7e-02 ↘
### Sous-itérations à l'itération de l'erreur
[ Info: iter f(x) h(x) √(ξ/ν) ρ σ ‖x‖ ‖s‖ R2
[ Info: 0 1.7e+07 9.7e+03 7.5e+02 -5.3e+02 1.5e-05 4.6e+04 4.9e+07 ↗
[ Info: 1 1.7e+07 9.7e+03 7.5e+02 -1.8e+02 4.6e-05 4.6e+04 1.6e+07 ↗
[ Info: 2 1.7e+07 9.7e+03 7.5e+02 -5.8e+01 1.4e-04 4.6e+04 5.5e+06 ↗
[ Info: 3 1.7e+07 9.7e+03 7.5e+02 -1.9e+01 4.1e-04 4.6e+04 1.8e+06 ↗
[ Info: 4 1.7e+07 9.7e+03 7.5e+02 -5.5e+00 1.2e-03 4.6e+04 6.1e+05 ↗
[ Info: 5 1.7e+07 9.7e+03 7.5e+02 -1.2e+00 3.7e-03 4.6e+04 2.0e+05 ↗
[ Info: 6 1.7e+07 9.7e+03 7.5e+02 2.7e-01 1.1e-02 4.6e+04 6.7e+04 =
[ Info: 7 3.4e+06 8.1e+03 3.6e+02 3.6e-01 1.1e-02 2.2e+04 3.2e+04 =
[ Info: 8 -6.6e+05 7.5e+03 2.6e+02 1.1e+00 1.1e-02 1.7e+04 2.3e+04 ↘
[ Info: 9 -7.3e+06 9.3e+03 4.7e+02 2.8e+00 3.7e-03 3.3e+04 1.3e+05 ↘
[ Info: 10 -1.7e+08 2.2e+04 2.2e+03 6.6e+00 1.2e-03 1.6e+05 1.8e+06 ↘
...
[ Info: 196 -1.2e+306 6.2e+78 1.6e+152 7.4e+00 6.2e+13 1.3e+154 2.4e+138 ↘
[ Info: 197 -1.2e+306 6.2e+78 1.8e+152 -Inf 2.1e+13 1.3e+154 8.6e+138 ↗
[ Info: 198 -1.2e+306 6.2e+78 1.6e+152 7.0e+00 6.2e+13 1.3e+154 2.7e+138 ↘
[ Info: 199 -1.2e+306 6.2e+78 1.9e+152 -Inf 2.1e+13 1.3e+154 9.1e+138 ↗
ERROR: LoadError: R2N: failed to compute a step: ξ = -1.731105604181186e7
```

It appears that the subproblem is unbounded. But, the iteration should be automatically classified as unsuccessful, since $$h$$ is prox-bounded.
I believe that R2N requires improved robustness when $$B_k$$ (SR1) is ill-conditioned.

cc @MaxenceGollier

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.