Egret es un paquete basado en Python para la optimización de la red eléctrica basado en el lenguaje de modelado de optimización de Pyomo. Egret está diseñado para ser amigable para realizar un análisis de alto nivel (por ejemplo, como motor para resolver diferentes formulaciones de optimización), al tiempo que proporciona flexibilidad para que los investigadores exploren rápidamente nuevas formulaciones de optimización.
Características principales:
Egret está disponible bajo la licencia BSD (ver licencia.txt)
Egret es un paquete Python y, por lo tanto, requiere una instalación de Python. Recomendamos usar Anaconda con el último Python (https://www.anaconda.com/distribution/).
Estas instrucciones de instalación suponen que tiene una versión reciente de Pyomo instalada, además de un conjunto de solucionadores relevantes (ver www.pyomo.org para obtener detalles adicionales).
Descargar (o clon) Egret desde este sitio Github.
Desde la carpeta Egret principal (es decir, la carpeta que contiene Setup.py), use un terminal (o el indicador de Anaconda para los usuarios de Windows) para ejecutar Setup.py para instalar Egret en su instalación de Python, como sigue:
pip install -e .
Además, recomendamos que los usuarios de Egret instalen el solucionador MIP CBC de código abierto. La mecánica específica de la instalación de CBC es específica de la plataforma. Al usar Anaconda en las plataformas Linux y Mac, esto se puede lograr simplemente por:
conda install -c conda-forge coincbc
La organización Coin-OR, desarrolladores de la OMS CBC, también proporciona binarios previos a la construcción de una gama completa de plataformas en https://bintray.com/coin-or/download.
Para probar la funcionalidad de los aspectos de compromiso de la unidad de Egret, ejecute el siguiente comando desde el subdirectorio de modelos Egret/Prueba:
pytest test_unit_commitment.py
Si Egret puede encontrar un solucionador MIP comercial en su sistema a través de Pyomo, Egret ejecutará un conjunto de pruebas grande que incluye resolver varios MIP a la optimización. Si Egret solo puede encontrar un solucionador de código abierto, ejecutará una suite de prueba más limitada que se basa principalmente en resolver relajaciones de LP. La salida de ejemplo está a continuación.
=================================== 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 =========================
Si está utilizando la funcionalidad de compromiso de la unidad de Egret, cite el siguiente documento:
En formulaciones de programación de enteros mixtos para el problema de compromiso de la unidad, Bernard Knueven, James Ostrowski y Jean-Paul Watson. Informe el diario sobre la computación (antes de la impresión) https://pubsonline.informs.org/doi/10.1287/ijoc.2019.0944