EGRET는 Pyomo 최적화 모델링 언어를 기반으로 전기 그리드 최적화를위한 파이썬 기반 패키지입니다. EGRET은 고급 분석 (예 : 다양한 최적화 제형을 해결하기위한 엔진)으로 친숙하게 설계되었으며, 연구자들이 새로운 최적화 제형을 신속하게 탐색 할 수있는 유연성을 제공합니다.
주요 기능 :
eGret은 BSD 라이센스에 따라 사용할 수 있습니다 (License.txt 참조)
EGRET는 파이썬 패키지이므로 파이썬 설치가 필요합니다. 최신 파이썬 (https://www.anaconda.com/diptribution/)과 함께 Anaconda를 사용하는 것이 좋습니다.
이 설치 지침에 따르면 관련 솔버 제품군 외에 최근 버전의 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
코인 또는 조직 (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의 단위 약정 기능을 사용하는 경우 다음 논문을 인용하십시오.
단위 헌신 문제 Bernard Knueven, James Ostrowski 및 Jean-Paul Watson에 대한 혼합 인트거 프로그래밍 공식. 컴퓨팅에 대한 저널 (인쇄에 앞서) https://pubsonline.informs.org/doi/10.1287/ijoc.2019.0944