Egretは、Pyomo最適化モデリング言語に基づいた電気グリッド最適化のためのPythonベースのパッケージです。 Egretは、高レベルの分析を実行するのに友好的であるように設計されています(例えば、さまざまな最適化製剤を解くためのエンジンとして)。また、研究者が新しい最適化製剤を迅速に探索できる柔軟性を提供します。
主な機能:
EgretはBSDライセンスの下で入手できます(免許証を参照)
EgretはPythonパッケージであるため、Pythonのインストールが必要です。アナコンダを最新のPython(https://www.anaconda.com/distribution/)で使用することをお勧めします。
これらのインストール手順では、関連するソルバーのスイートに加えて、最近のバージョンのPyomoがインストールされていることが想定されています(詳細についてはwww.pyomo.orgを参照)。
このGithubサイトからEgretをダウンロード(またはクローン)します。
メインのEgretフォルダー(つまり、Setup.pyを含むフォルダー)から、端末(またはWindowsユーザーのAnacondaプロンプト)を使用して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はいくつかのMIPを最適化するなど、大規模なテストスイートを実行します。 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 =========================
Egretのユニットコミットメント機能を使用している場合は、次の論文を引用してください。
ユニットコミットメントの問題に関する混合インテガープログラミングの定式化について、バーナードクヌーベン、ジェームズオストロフスキー、およびジャンポールワトソン。コンピューティングに関するジャーナル(印刷前)https://pubsonline.informs.org/doi/10.1287/ijoc.2019.0944