EnergySystemsModellingLab / EnergySystemsModellingLab/MUSE2

Add modular interface so user can choose solvers other than HiGHS

Offen
#447 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Rust
Sterne
8
Forks
5
Ø Merge
1 T. 2 Min.
Gemergte PRs (30 T.)
37

Beschreibung

Currently users can only use the HiGHS solver, though it might be convenient to be able to have the option to use other solvers such as CPLEX, either to compare the results obtained with the HiGHS solver or because of performance reasons.

To do this, we'd need to add some traits to abstract away the necessary bits of functionality. Off the top of my head, the ones I can think of are:

- Add columns (variables) to the problem
- Add rows (constraints) to the problem
- Solve the problem
- Get the objective value from the solution (#428)
- Read columns from the solution
- Read dual (row) values from the solution

There is a crate which provides an abstraction over different solvers (`good_lp`) but it doesn't provide the right abstraction for us. In any case, writing the abstractions ourselves won't be particularly painful.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Es werden keine Dateien oder Tests genannt. Beginne damit, die bestehende HiGHS-Integration nachzuverfolgen und zu dokumentieren, wie sie Variablen hinzufügt, Nebenbedingungen hinzufügt, löst, das Ziel und die Spalten liest und Dualwerte liest. Als erledigt gilt, wenn diese Operationen durch eine Solver-Abstraktion repräsentiert werden, die HiGHS und alternative Solver wie CPLEX unterstützen kann.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
rust
Bereich
backend
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
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.