JuliaSmoothOptimizers / JuliaSmoothOptimizers/NLPModelsModifiers.jl
Error with SolverBenchmark
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Julia
- Sterne
- 9
- Forks
- 10
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
I am trying to benchmark solvers on a Diagonal Quasi-Newton Model. I get two issues:
- I get
type DiagonalQNModel has no field counters - When giving a Quasi-Newton Model to Ipopt, I get
MethodError : no method matching hess_structure!(::NLPModelsModifiers.DiagonalQNModel{...},...)
Here is an example
using BenchmarkTools, Dates, LinearAlgebra, JLD2
using Percival, NLPModels, NLPModelsIpopt, SolverBenchmark, SolverCore, NLPModelsModifiers
using OptimizationProblems, ADNLPModels, OptimizationProblems.ADNLPProblems
meta = OptimizationProblems.meta
problem_names = meta[(meta.has_equalities_only.==1).&(meta.has_bounds.==0).&(meta.has_fixed_variables.==0).&(meta.variable_nvar.==0), :name]
problem_list = (SpectralGradientModel(eval(Meta.parse(name))(), σ=1.0) for name in problem_names)
solvers = Dict(
:ipopt =>
nlp -> ipopt(
nlp,
),
:percival =>
nlp -> percival(
nlp,
),
)
stats = bmark_solvers(solvers, problem_list)
There is no reason for not having a hess_structure! method at least for the DiagonalQNModel type because it is trivial. I can also add the counters as a field of the different structures if you think it is appropriate.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne damit, das bereitgestellte SolverBenchmark-Beispiel auszuführen, und untersuche DiagonalQNModel, die Verarbeitung seiner Zähler und den Einstiegspunkt hess_structure!. Vergleiche die von bmark_solvers und Ipopt verwendeten Modellschnittstellen, um die erwarteten Methoden und Felder zu bestimmen. Als erledigt gilt die Aufgabe, wenn der Benchmark ohne den gemeldeten counters-Fehler ausgeführt wird und Ipopt das Quasi-Newton-Modell akzeptiert.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- julia
- Bereich
- backend-api-design
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100