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