JuliaSmoothOptimizers / JuliaSmoothOptimizers/NLPModelsModifiers.jl

Error with SolverBenchmark

Offen
#121 8 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

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:

  1. I get type DiagonalQNModel has no field counters
  2. 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

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Ö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

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.