Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
12 changes: 11 additions & 1 deletion Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,25 +3,35 @@ uuid = "10dff2fc-5484-5881-a0e0-c90441020f8a"
version = "0.14.0"

[deps]
Arpack = "7d9fca2a-8960-54d3-9f78-7d1dccf2cb97"
GenericLinearAlgebra = "14197337-ba66-59df-a3e3-ca00e7dcff7a"
Krylov = "ba0b0d4f-ebba-5204-a429-3ac8c609bfb7"
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
LinearOperators = "5c8ed15e-5a4c-59e4-a42b-c7e8811fb125"
Logging = "56ddb016-857b-54e1-b83d-db4d58db5568"
NLPModels = "a4795742-8479-5a88-8948-cc11e1c8c1a6"
NLPModelsModifiers = "e01155f1-5c6f-4375-a9d8-616dd036575f"
Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7"
QRMumps = "422b30a1-cc69-4d85-abe7-cc07b540c444"
SolverCore = "ff4d7338-4cf1-434d-91df-b86cb86fb843"
SolverParameters = "d076d87d-d1f9-4ea3-a44b-64b4cdd1e470"
SolverTools = "b5612192-2639-5dc1-abfe-fbedd65fab29"
SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
TSVD = "9449cd9e-2762-5aa3-a617-5413e99d722e"

[compat]
Krylov = "0.10.0"
Arpack = "0.5.4"
GenericLinearAlgebra = "0.3.18"
Krylov = "0.10.1"
LinearOperators = "2.0"
NLPModels = "0.21"
NLPModelsModifiers = "0.7"
QRMumps = "0.3.1"
SolverCore = "0.3"
SolverParameters = "0.1"
SolverTools = "0.9"
SparseArrays = "1.11.0"
TSVD = "0.4.4"
julia = "1.10"

[extras]
Expand Down
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@ This package provides an implementation of four classic algorithms for unconstra
> high-order regularized models. *Mathematical Programming*, 163(1), 359-368.
> DOI: [10.1007/s10107-016-1065-8](https://doi.org/10.1007/s10107-016-1065-8)

- `R2N`: An inexact second-order quadratic regularization method for unconstrained optimization (with shifted L-BFGS or shifted Hessian operator);
- `R2NLS`: an inexact second-order quadratic regularization method for nonlinear least-squares problems;

- `fomo`: a first-order method with momentum for unconstrained optimization;

- `tron`: a pure Julia implementation of TRON, a trust-region solver for bound-constrained optimization described in
Expand Down
8 changes: 6 additions & 2 deletions docs/src/solvers.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,13 @@
- [`trunk`](@ref)
- [`R2`](@ref)
- [`fomo`](@ref)
- [`R2N`](@ref)
- [`R2NLS`](@ref)

| Problem type | Solvers |
| --------------------- | -------- |
| Unconstrained NLP | [`lbfgs`](@ref), [`tron`](@ref), [`trunk`](@ref), [`R2`](@ref), [`fomo`](@ref)|
| Unconstrained NLS | [`trunk`](@ref), [`tron`](@ref) |
| Unconstrained NLP | [`lbfgs`](@ref), [`tron`](@ref), [`trunk`](@ref), [`R2`](@ref), [`fomo`](@ref), ['R2N'](@ref)|
| Unconstrained NLS | [`trunk`](@ref), [`tron`](@ref), [`R2NLS`](@ref) |
| Bound-constrained NLP | [`tron`](@ref) |
| Bound-constrained NLS | [`tron`](@ref) |

Expand All @@ -22,5 +24,7 @@ lbfgs
tron
trunk
R2
R2N
R2NLS
fomo
```
7 changes: 6 additions & 1 deletion src/JSOSolvers.jl
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
module JSOSolvers

# stdlib
using LinearAlgebra, Logging, Printf
using LinearAlgebra, Logging, Printf, Arpack, SparseArrays

# JSO packages
using Krylov,
Expand Down Expand Up @@ -41,13 +41,18 @@ function normM!(n, x, M, z)
end
end

# Utilities
include("utilities.jl")

# Unconstrained solvers
include("lbfgs.jl")
include("trunk.jl")
include("fomo.jl")
include("R2N.jl")

# Unconstrained solvers for NLS
include("trunkls.jl")
include("R2NLS.jl")

# List of keywords accepted by TRONTrustRegion
const tron_keys = (
Expand Down
Loading