EGRET是基於PYOMO優化建模語言的基於Python的電網優化的軟件包。 EGRET旨在對進行高級分析(例如作為解決不同優化公式的引擎)進行友好,同時還為研究人員提供了靈活性,以快速探索新的優化配方。
主要功能:
EGRET可在BSD許可下獲得(請參閱License.txt)
白生是一個Python軟件包,因此需要安裝Python。我們建議將Anaconda與最新的Python(https://www.anaconda.com/distribution/)一起使用。
這些安裝說明假設除了一套相關的求解器外,您還安裝了最新版本的PYOMO(有關其他詳細信息,請參見www.pyomo.org)。
從此GitHub網站下載(或克隆)白鷺。
從主Egret文件夾(IE,包含setup.py的文件夾),使用終端(或Anaconda提示以獲取Windows用戶)來運行setup.py將Egret安裝到python安裝中 - 如下:如下:
pip install -e .
我們還建議EGRET用戶安裝開源CBC MIP求解器。安裝CBC的特定機制是平台特定的。在Linux和Mac平台上使用Anaconda時,可以簡單地通過:
conda install -c conda-forge coincbc
Coin-Or組織 - WHO開發人員CBC-還為https://bintray.com/coin-or/download上的整個平台提供了預製的二進製文件。
為了測試EGRET的單元承諾方面的功能,請從Egret模型/測試子目錄中執行以下命令:
pytest test_unit_commitment.py
如果Egret可以通過PYOMO在系統上找到一個商業MIP求解器,則EGRET將執行一個大型測試套件,包括求解幾個MIPS以達到最佳性。如果Egret只能找到一個開源求解器,它將執行更有限的測試套件,該套件主要依賴於解決LP放鬆。示例輸出在下面。
=================================== 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 =========================
如果您使用的是白生的單位承諾功能,請引用以下論文:
關於單位承諾問題Bernard Knueven,James Ostrowski和Jean-Paul Watson的混合組合編程配方。通知計算雜誌(印刷提前)https://pubsonline.informs.org/doi/10.1287/ijoc.2019.0944