EGRET ist ein Python-basierter Paket für die Optimierung elektrischer Gitter, die auf der Modellierungssprache Pyomo Optimization basiert. EGRET ist so konzipiert, dass sie für die Durchführung einer hochrangigen Analyse (z. B. als Motor zur Lösung verschiedener Optimierungsformulierungen) freundlich sind und gleichzeitig den Forschern die Flexibilität bieten, neue Optimierungsformulierungen schnell zu untersuchen.
Hauptmerkmale:
EGRET ist unter der BSD -Lizenz verfügbar (siehe Lizenz.TXT)
EGRET ist ein Python -Paket und benötigt daher eine Python -Installation. Wir empfehlen, Anaconda mit dem neuesten Python (https://www.anaconda.com/distribution/) zu verwenden.
In diesen Installationsanweisungen geht davon aus, dass Sie eine aktuelle Version von Pyomo zusätzlich zu einer Reihe relevanter Löser installiert haben (weitere Details finden Sie unter www.pyomo.org).
Download (oder klonen) gret von dieser Github -Site.
Verwenden Sie aus dem Haupt -EGRET -Ordner (dh dem Ordner mit Setup.py) ein Terminal (oder die Anaconda -Eingabeaufforderung für Windows -Benutzer) zum Ausführen von Setup.py, um EGRET in Ihre Python -Installation zu installieren - wie folgt:
pip install -e .
Wir empfehlen außerdem, dass EGRET -Benutzer den Open Source CBC MIP Solver installieren. Die spezifische Mechanik der Installation von CBC ist plattformspezifisch. Bei der Verwendung von Anaconda auf Linux- und Mac -Plattformen kann dies einfach erreicht werden:
conda install -c conda-forge coincbc
Die Coin-or-Organisation-WHO-Entwickler CBC-bietet auch vorgefertigte Binärdateien für eine vollständige Palette von Plattformen unter https://bintray.com/coin-or/download.
Führen Sie den folgenden Befehl aus den EGRET-Modellen/Tests unter dem Verzeichnis aus, um die Funktionalität der Aspekte des EGRET von EGRET zu testen:
pytest test_unit_commitment.py
Wenn EGRET einen kommerziellen MIP -Solver in Ihrem System über Pyomo finden kann, führt EGRET eine große Testsuite aus, einschließlich der Lösung mehrerer MIPS auf Optimalität. Wenn EGRET nur einen Open-Source-Solver finden kann, wird eine begrenztere Testsuite ausgeführt, die hauptsächlich auf die Lösung von LP-Relaxationen beruht. Beispielausgabe ist unten.
=================================== test session starts ==================================
platform darwin -- Python 3.7.7, pytest-5.4.2, py-1.8.1, pluggy-0.13.0
rootdir: /home/some-user/egret
collected 21 items
test_unit_commitment.py s.................... [100%]
========================= 20 passed, 1 skipped in 641.80 seconds =========================
Wenn Sie die Funktionalität von EGRET der Einheit der Einheit verwenden, zitieren Sie bitte das folgende Papier:
Auf Mischtätigkeiten-Programmierformulierungen für das Problem der Einheit Bernard Knueven, James Ostrowski und Jean-Paul Watson. Informiert Journal über Computing (vor Druck) https://pubsonline.informs.org/doi/10.1287/ijoc.2019.0944