Egret adalah paket berbasis Python untuk optimasi jaringan listrik berdasarkan bahasa pemodelan optimasi pyomo. Egret dirancang agar ramah untuk melakukan analisis tingkat tinggi (misalnya, sebagai mesin untuk memecahkan formulasi optimasi yang berbeda), sementara juga memberikan fleksibilitas bagi para peneliti untuk dengan cepat mengeksplorasi formulasi optimasi baru.
Fitur Utama:
Egret tersedia di bawah lisensi BSD (lihat lisensi.txt)
Egret adalah paket Python dan karenanya membutuhkan instalasi Python. Kami merekomendasikan penggunaan Anaconda dengan python terbaru (https://www.anaconda.com/distribution/).
Instruksi instalasi ini mengasumsikan bahwa Anda memiliki versi terbaru dari Pyomo, di samping serangkaian pemecah yang relevan (lihat www.pyomo.org untuk detail tambahan).
Unduh (atau klon) Egret dari situs GitHub ini.
Dari folder Egret utama (yaitu, folder yang berisi setup.py), gunakan terminal (atau prompt anaconda untuk pengguna Windows) untuk menjalankan setup.py untuk menginstal Egret ke instalasi python Anda - sebagai berikut:
pip install -e .
Kami juga menyarankan agar pengguna Egret menginstal Source Open Source CBC MIP Solver. Mekanisme spesifik untuk menginstal CBC adalah platform khusus. Saat menggunakan Anaconda di platform Linux dan Mac, ini dapat dicapai hanya dengan:
conda install -c conda-forge coincbc
Organisasi Koin-atau-WHO Pengembang CBC-juga menyediakan binari pra-dibangun untuk berbagai platform di https://bintray.com/coin-or/download.
Untuk menguji fungsionalitas aspek komitmen unit dari Egret, jalankan perintah berikut dari Sub-Direktori Model/Tes Egret:
pytest test_unit_commitment.py
Jika Egret dapat menemukan pemecah MIP komersial di sistem Anda melalui Pyomo, Egret akan menjalankan rangkaian uji besar termasuk memecahkan beberapa MIP untuk optimalitas. Jika Egret hanya dapat menemukan pemecah open-source, itu akan menjalankan rangkaian uji yang lebih terbatas yang sebagian besar bergantung pada penyelesaian relaksasi LP. Contoh output di bawah ini.
=================================== 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 =========================
Jika Anda menggunakan fungsionalitas komitmen unit dari Egret, silakan kutip makalah berikut:
Pada formulasi pemrograman mixed-integer untuk masalah komitmen unit Bernard Knueven, James Ostrowski, dan Jean-Paul Watson. Menginformasikan jurnal tentang komputasi (di depan cetak) https://pubsonline.informs.org/doi/10.1287/ijoc.2019.0944