Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

First-order with momentum #250

Merged
merged 175 commits into from
Mar 16, 2024
Merged
Show file tree
Hide file tree
Changes from 172 commits
Commits
Show all changes
175 commits
Select commit Hold shift + click to select a range
544c288
add fomo solver
d-monnet Dec 21, 2023
9aeca32
fix consistency test
d-monnet Dec 21, 2023
2a2bbbf
fix update rule, fix find_beta algo
d-monnet Dec 28, 2023
52a4e16
modify with gradient related strategy
d-monnet Jan 5, 2024
1423d51
fix model decrease computation
d-monnet Jan 5, 2024
7f6727b
fix find_beta function
d-monnet Jan 15, 2024
880759d
fix null step size issue
d-monnet Jan 25, 2024
bd2b8f5
fix test
d-monnet Jan 25, 2024
3ce7b96
update docstring
d-monnet Jan 25, 2024
9189077
add average sat beta to genericexecutionstat
d-monnet Jan 29, 2024
2b8e349
add theta param as key arg
d-monnet Jan 30, 2024
2ca4813
update convergence conditions in find_beta.
d-monnet Feb 1, 2024
9d7bac2
fix possible 0 division in find_beta
d-monnet Feb 1, 2024
b9a3aef
Misc improvments:
d-monnet Feb 3, 2024
9acd09b
fix null denominator in find_beta
d-monnet Feb 3, 2024
ef258a8
Make R2 and R2Solver interfaces to fomo solver. Delete obsolete R2.jl…
d-monnet Feb 4, 2024
85022e1
Rxport R2Solver (fix doc build issue) and backend for R2 classic
d-monnet Feb 4, 2024
07e79b1
add :smallstep exception (step addition underflow)
d-monnet Feb 4, 2024
f2e8e67
fix small_step exception
d-monnet Feb 4, 2024
ad68ceb
remove terminal ouput
d-monnet Feb 5, 2024
1875d2c
Update src/fomo.jl
d-monnet Feb 5, 2024
39d4e4f
Update src/fomo.jl
d-monnet Feb 5, 2024
2f72dad
update docstring, add rhok to the output
d-monnet Feb 5, 2024
9687dea
Merge branch 'r2-momentum' of https://github.com/d-monnet/JSOSolvers.…
d-monnet Feb 5, 2024
d22d162
- create variable for dot(m,nabla f): avoid computation of dot(d, nab…
d-monnet Feb 6, 2024
ae80199
Update src/fomo.jl
d-monnet Feb 6, 2024
f56d183
Update src/fomo.jl
d-monnet Feb 6, 2024
be56ea5
Update src/fomo.jl
d-monnet Feb 6, 2024
bd95332
rename `m` as `momentum`
d-monnet Feb 6, 2024
d4e68e7
Merge branch 'r2-momentum' of https://github.com/d-monnet/JSOSolvers.…
d-monnet Feb 6, 2024
1c4d3da
update docstring, fix `m` to `momentum` renaming.
d-monnet Feb 6, 2024
f952eca
Update src/fomo.jl
d-monnet Feb 16, 2024
ca78bb4
Update test/allocs.jl
d-monnet Feb 17, 2024
58d7dc3
Update src/fomo.jl
d-monnet Feb 17, 2024
9aac404
put alpha in solver structure, uncomment callback test
d-monnet Feb 17, 2024
e5497c5
allocate memory for norm vector in find_beta
d-monnet Feb 17, 2024
2179124
Add FoSolver structure for no-momentum case.
d-monnet Feb 18, 2024
57bf9c2
fix allocs tests
d-monnet Feb 18, 2024
a1acef6
add reset! function to FoSolver
d-monnet Feb 18, 2024
7ba442a
remove `R2Solver`, replaced by `FoSolver`
d-monnet Feb 18, 2024
8278977
Update test/test_solvers.jl
d-monnet Feb 22, 2024
31fd68d
Update src/fomo.jl
d-monnet Feb 22, 2024
602ca50
Update src/fomo.jl
d-monnet Feb 22, 2024
ac736a4
Update src/fomo.jl
d-monnet Feb 22, 2024
f4c3481
Update src/fomo.jl
d-monnet Feb 22, 2024
701221c
Update src/fomo.jl
d-monnet Feb 22, 2024
90763a2
Update src/fomo.jl
d-monnet Feb 22, 2024
d0a9929
Update src/fomo.jl
d-monnet Feb 22, 2024
f8c5a63
Update src/fomo.jl
d-monnet Feb 22, 2024
998f926
Update src/fomo.jl
d-monnet Feb 22, 2024
e692afe
Update src/fomo.jl
d-monnet Feb 22, 2024
d588e72
Update src/fomo.jl
d-monnet Feb 22, 2024
a35720a
Update src/fomo.jl
d-monnet Feb 22, 2024
2665fbf
Update src/fomo.jl
d-monnet Feb 22, 2024
b00fd12
Update src/fomo.jl
d-monnet Feb 22, 2024
dda1ca7
Update src/fomo.jl
d-monnet Feb 22, 2024
719dc5f
Update src/fomo.jl
d-monnet Feb 22, 2024
8f99dbe
Update src/fomo.jl
d-monnet Feb 22, 2024
497b99e
Update src/fomo.jl
d-monnet Feb 22, 2024
a6a439f
Update src/fomo.jl
d-monnet Feb 22, 2024
b016477
Add TR solver (trust region with linear model)
d-monnet Feb 22, 2024
773ac53
Update src/fomo.jl
d-monnet Mar 4, 2024
20c3fa9
fix docstrings and verbose display
d-monnet Mar 4, 2024
7950f6b
update docstring, update info display, fix solver arg type, export TR
d-monnet Mar 5, 2024
02caa7b
update docstring
d-monnet Mar 5, 2024
d0a02b9
fix grad and momentum dot product
d-monnet Mar 6, 2024
efcba50
cosmetics
d-monnet Mar 6, 2024
c89db51
Update test/restart.jl
d-monnet Mar 7, 2024
8a655c7
Update test/restart.jl
d-monnet Mar 7, 2024
1f67091
Create FoSolver docstring
d-monnet Mar 7, 2024
5d671c2
Merge branch 'r2-momentum' of https://github.com/d-monnet/JSOSolvers.…
d-monnet Mar 7, 2024
0e2fdff
deprecate R2Solver
d-monnet Mar 8, 2024
9e58f90
Update src/fomo.jl
d-monnet Mar 9, 2024
b02a20f
Update src/fomo.jl
d-monnet Mar 9, 2024
670e815
Update src/fomo.jl
d-monnet Mar 9, 2024
ee02796
Update src/fomo.jl
d-monnet Mar 9, 2024
4d6e0e3
Update src/fomo.jl
d-monnet Mar 9, 2024
1eafb0d
Update src/fomo.jl
d-monnet Mar 9, 2024
ae75016
Update src/fomo.jl
d-monnet Mar 9, 2024
4fe1a14
Update src/fomo.jl
d-monnet Mar 9, 2024
df12e04
Update src/fomo.jl
d-monnet Mar 9, 2024
22c1de5
Update src/fomo.jl
d-monnet Mar 9, 2024
6f63df0
Update src/fomo.jl
d-monnet Mar 9, 2024
d350cdb
Update src/fomo.jl
d-monnet Mar 9, 2024
9ec41f8
Apply suggestions from code review
d-monnet Mar 9, 2024
eacf70b
add fomo solver
d-monnet Dec 21, 2023
48ca6f6
fix update rule, fix find_beta algo
d-monnet Dec 28, 2023
454a8e1
modify with gradient related strategy
d-monnet Jan 5, 2024
0a75bb2
fix model decrease computation
d-monnet Jan 5, 2024
f981b2f
fix find_beta function
d-monnet Jan 15, 2024
7007e52
fix null step size issue
d-monnet Jan 25, 2024
943d788
fix test
d-monnet Jan 25, 2024
3555443
update docstring
d-monnet Jan 25, 2024
5e63739
add average sat beta to genericexecutionstat
d-monnet Jan 29, 2024
23bc422
add theta param as key arg
d-monnet Jan 30, 2024
bee01c3
update convergence conditions in find_beta.
d-monnet Feb 1, 2024
6ae60cd
fix possible 0 division in find_beta
d-monnet Feb 1, 2024
6e4acfd
Misc improvments:
d-monnet Feb 3, 2024
69d1b4a
fix null denominator in find_beta
d-monnet Feb 3, 2024
9d19975
Make R2 and R2Solver interfaces to fomo solver. Delete obsolete R2.jl…
d-monnet Feb 4, 2024
6f2f01b
Rxport R2Solver (fix doc build issue) and backend for R2 classic
d-monnet Feb 4, 2024
772adab
add :smallstep exception (step addition underflow)
d-monnet Feb 4, 2024
03e18bf
fix small_step exception
d-monnet Feb 4, 2024
81cb443
remove terminal ouput
d-monnet Feb 5, 2024
2048735
update docstring, add rhok to the output
d-monnet Feb 5, 2024
72b2456
Update src/fomo.jl
d-monnet Feb 5, 2024
049e31c
- create variable for dot(m,nabla f): avoid computation of dot(d, nab…
d-monnet Feb 6, 2024
2064b6b
rename `m` as `momentum`
d-monnet Feb 6, 2024
16a164a
Update src/fomo.jl
d-monnet Feb 6, 2024
d521169
Update src/fomo.jl
d-monnet Feb 6, 2024
56dac0d
Update src/fomo.jl
d-monnet Feb 6, 2024
45bbd4f
update docstring, fix `m` to `momentum` renaming.
d-monnet Feb 6, 2024
cb36496
Update src/fomo.jl
d-monnet Feb 16, 2024
98543b8
Update test/allocs.jl
d-monnet Feb 17, 2024
6ff2cc1
Update src/fomo.jl
d-monnet Feb 17, 2024
6b93fa5
put alpha in solver structure, uncomment callback test
d-monnet Feb 17, 2024
65959d1
allocate memory for norm vector in find_beta
d-monnet Feb 17, 2024
9372888
Add FoSolver structure for no-momentum case.
d-monnet Feb 18, 2024
dc911e3
fix allocs tests
d-monnet Feb 18, 2024
51c3445
add reset! function to FoSolver
d-monnet Feb 18, 2024
ece54bc
remove `R2Solver`, replaced by `FoSolver`
d-monnet Feb 18, 2024
4d13504
Update test/test_solvers.jl
d-monnet Feb 22, 2024
6a8af9c
Update src/fomo.jl
d-monnet Feb 22, 2024
d6d5dc9
Update src/fomo.jl
d-monnet Feb 22, 2024
e9456ae
Update src/fomo.jl
d-monnet Feb 22, 2024
f39bba2
Update src/fomo.jl
d-monnet Feb 22, 2024
5d9d12d
Update src/fomo.jl
d-monnet Feb 22, 2024
aa48abd
Update src/fomo.jl
d-monnet Feb 22, 2024
bd34530
Update src/fomo.jl
d-monnet Feb 22, 2024
dd324ef
Update src/fomo.jl
d-monnet Feb 22, 2024
6f52bcf
Update src/fomo.jl
d-monnet Feb 22, 2024
35ced21
Update src/fomo.jl
d-monnet Feb 22, 2024
ed95a20
Update src/fomo.jl
d-monnet Feb 22, 2024
dfd8068
Update src/fomo.jl
d-monnet Feb 22, 2024
3acfac0
Update src/fomo.jl
d-monnet Feb 22, 2024
b34ac99
Update src/fomo.jl
d-monnet Feb 22, 2024
b0a0492
Update src/fomo.jl
d-monnet Feb 22, 2024
2d6055b
Update src/fomo.jl
d-monnet Feb 22, 2024
090be62
Update src/fomo.jl
d-monnet Feb 22, 2024
29989a7
Update src/fomo.jl
d-monnet Feb 22, 2024
83c85b1
Update src/fomo.jl
d-monnet Feb 22, 2024
5de664b
Add TR solver (trust region with linear model)
d-monnet Feb 22, 2024
5bc9bef
Update src/fomo.jl
d-monnet Mar 4, 2024
192944e
fix docstrings and verbose display
d-monnet Mar 4, 2024
ad65f30
update docstring, update info display, fix solver arg type, export TR
d-monnet Mar 5, 2024
d0de9da
update docstring
d-monnet Mar 5, 2024
a7077c9
fix grad and momentum dot product
d-monnet Mar 6, 2024
67b6da2
cosmetics
d-monnet Mar 6, 2024
62995a4
Create FoSolver docstring
d-monnet Mar 7, 2024
e6f7a22
Update test/restart.jl
d-monnet Mar 7, 2024
9126c08
Update test/restart.jl
d-monnet Mar 7, 2024
06eb8f8
deprecate R2Solver
d-monnet Mar 8, 2024
d6750c3
Update src/fomo.jl
d-monnet Mar 9, 2024
39c3053
Update src/fomo.jl
d-monnet Mar 9, 2024
96c82d2
Update src/fomo.jl
d-monnet Mar 9, 2024
0899b59
Update src/fomo.jl
d-monnet Mar 9, 2024
dbb1bbc
Update src/fomo.jl
d-monnet Mar 9, 2024
c00423d
Update src/fomo.jl
d-monnet Mar 9, 2024
bfec5dd
Update src/fomo.jl
d-monnet Mar 9, 2024
825a28a
Update src/fomo.jl
d-monnet Mar 9, 2024
79e758d
Update src/fomo.jl
d-monnet Mar 9, 2024
3d43e3d
Update src/fomo.jl
d-monnet Mar 9, 2024
40de1e4
Update src/fomo.jl
d-monnet Mar 9, 2024
fac145e
Update src/fomo.jl
d-monnet Mar 9, 2024
bbc97a0
Apply suggestions from code review
d-monnet Mar 9, 2024
a209152
Merge branch 'r2-momentum' of https://github.com/d-monnet/JSOSolvers.…
d-monnet Mar 9, 2024
9035f40
exports fo
d-monnet Mar 9, 2024
ea3fcf7
remove header to test allocation
d-monnet Mar 9, 2024
3984fe1
update readme
d-monnet Mar 9, 2024
fb2525e
fix header allocation
d-monnet Mar 9, 2024
04f7709
try to fix fomo allocation
d-monnet Mar 9, 2024
a0324fd
fix find_beta
d-monnet Mar 9, 2024
a5c8c7d
remove unecessary if condition, comment out line causing possible all…
d-monnet Mar 12, 2024
eee3823
Update src/fomo.jl
d-monnet Mar 13, 2024
d5f409d
fix allocation tests: pre-allocate solver_specific field in stats.
d-monnet Mar 13, 2024
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
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,8 @@ 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)


- `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

> Chih-Jen Lin and Jorge J. Moré, *Newton's Method for Large Bound-Constrained
Expand Down
4 changes: 3 additions & 1 deletion docs/src/solvers.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,11 @@
- [`tron`](@ref)
- [`trunk`](@ref)
- [`R2`](@ref)
- [`fomo`](@ref)

| Problem type | Solvers |
| --------------------- | -------- |
| Unconstrained NLP | [`lbfgs`](@ref), [`tron`](@ref), [`trunk`](@ref), [`R2`](@ref)|
| Unconstrained NLP | [`lbfgs`](@ref), [`tron`](@ref), [`trunk`](@ref), [`R2`](@ref), [`fomo`](@ref)|
| Unconstrained NLS | [`trunk`](@ref), [`tron`](@ref) |
| Bound-constrained NLP | [`tron`](@ref) |
| Bound-constrained NLS | [`tron`](@ref) |
Expand All @@ -21,4 +22,5 @@ lbfgs
tron
trunk
R2
fomo
```
2 changes: 1 addition & 1 deletion src/JSOSolvers.jl
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ export solve!
# Unconstrained solvers
include("lbfgs.jl")
include("trunk.jl")
include("R2.jl")
include("fomo.jl")

# Unconstrained solvers for NLS
include("trunkls.jl")
Expand Down
231 changes: 0 additions & 231 deletions src/R2.jl

This file was deleted.

Loading
Loading