JuliaSmoothOptimizers / JuliaSmoothOptimizers/Percival.jl

Percival kwargs not accepted by TRON on unconstrained problems

Open
#157 0 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Julia
Stars
61
Forks
17
PR merge metrics
No merged PRs in 30d

Description

```julia
using ADNLPModels, Percival
nlp = ADNLPModel(x -> (x[1] - 1)^2 + 100 * (x[2] - x[1]^2)^2, [-1.2; 1.0])
output = percival(nlp, μ = 10.0, ctol = 1e-1)
```

```
ERROR: MethodError: no method matching solve!(::JSOSolvers.TronSolver{…}, ::ADNLPModel{…}, ::SolverCore.GenericExecutionStats{…}; x::Vector{…}, atol::Float64, rtol::Float64, max_iter::Int64, max_eval::Int64, max_time::Float64, verbose::Int64, μ::Float64, callback::Percival.var"#5#7", ctol::Float64)

Closest candidates are:
solve!(::JSOSolvers.TronSolver{T, V, Op, Aop} where {Op<:LinearOperators.AbstractLinearOperator{T}, Aop<:LinearOperators.AbstractLinearOperator{T}}, ::NLPModels.AbstractNLPModel{T, V}, ::SolverCore.GenericExecutionStats{T, V}; callback, x, μ₀, μ₁, σ, max_eval, max_iter, max_time, max_cgiter, use_only_objgrad, cgtol, atol, rtol, verbose, subsolver_verbose) where {T, V<:AbstractVector{T}} got unsupported keyword arguments "μ", "ctol"
```

This comes from the kwargs of the unconstrained-variant or its call to TRON https://github.com/JuliaSmoothOptimizers/Percival.jl/blob/953f3308106722cc7cb3d6714f52fe126fcb8081/src/method.jl#L18

Contributor guide

Open the contributing guide

Research direction

Start at src/method.jl around line 18 and reproduce the unconstrained Percival example from the issue. Trace how its keyword arguments are forwarded to the TRON solve! call, especially μ and ctol, and verify that the example no longer fails with unsupported-keyword errors.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
backend-api-design
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.