EnergySystemsModellingLab / EnergySystemsModellingLab/MUSE2

Add modular interface so user can choose solvers other than HiGHS

Aperta
#447 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Rust
Stelle
8
Fork
5
Merge medio
1g 2m
PR unite (30g)
37

Descrizione

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.

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Non vengono indicati file né test. Inizia tracciando l'integrazione esistente di HiGHS e documentando come aggiunge variabili, aggiunge vincoli, risolve, legge l'obiettivo e le colonne e legge i valori duali. Il lavoro è completato quando queste operazioni sono rappresentate da un'astrazione del solver in grado di supportare HiGHS e solver alternativi come CPLEX.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
rust
Ambito
backend
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.