SolverTools.jl
SolverTools.jl copied to clipboard
Tools for developing nonlinear optimization solvers.
If more solvers are expected to be implemented in SolverTools.jl, standard tests (allocations, multiple precision,...) should be implemented and run over sub-solvers of the same kind (TR and LS so...
Keyword argument τ1 of `armijo-wolfe` default value (0.9999) is rounded up to 1 with Float16. I believe this breaks theoretical convergence of the line-search algorithm.
instead of redefining a new nlpmodel in tests https://github.com/JuliaSmoothOptimizers/SolverTools.jl/blob/main/test/simple_model.jl
Connected to https://github.com/JuliaSmoothOptimizers/JSOSolvers.jl/issues/94 we could use the logger for `armijo_wolfe`. This will create a new dependency to `SolverCore.jl` though.
Related to #151
Building upon #145, now changing line search to use the new merit model. I'm gonna change trust region now and hopefully this will lead to a complete picture.
Alternative to #144 This implements the merit function as an NLPModel with the following differences: - Additional function `derivative(nlp, x, d)` for the directional derivative at `x` on `d`. -...
Working on #143 Next: Make merit work with line search and trust region - possibly breaking JSOSolvers.jl @dpo, do you have any strong opinions either way?