Egret هي حزمة تعتمد على Python لتحسين الشبكة الكهربائية استنادًا إلى لغة نمذجة تحسين Pyomo. تم تصميم Egret ليكون ودودًا لإجراء تحليل عالي المستوى (على سبيل المثال ، كمحرك لحل تركيبات التحسين المختلفة) ، مع توفير مرونة للباحثين لاستكشاف تركيبات التحسين الجديدة بسرعة.
الميزات الرئيسية:
يتوفر البلشون بموجب ترخيص BSD (انظر الترخيص. txt)
البلشون عبارة عن حزمة بيثون وبالتالي تتطلب تثبيت بيثون. نوصي باستخدام Anaconda مع أحدث Python (https://www.anaconda.com/distribution/).
تفترض تعليمات التثبيت هذه أن لديك نسخة حديثة من Pyomo مثبتة ، بالإضافة إلى مجموعة من المحللين ذوي الصلة (انظر www.pyomo.org للحصول على تفاصيل إضافية).
قم بتنزيل (أو استنساخ) البلشون من موقع github هذا.
من مجلد البلشوم الرئيسي (أي ، المجلد الذي يحتوي على setup.py) ، استخدم محطة (أو موجه Anaconda لمستخدمي Windows) لتشغيل SETUP.py لتثبيت البلشون في تثبيت Python الخاص بك - على النحو التالي:
pip install -e .
نوصي بالإضافة إلى ذلك أن مستخدمي البلهاء يقومون بتثبيت CBC MIP Solver مفتوح المصدر. الميكانيكا المحددة لتثبيت CBC هي الخاصة بالنظام الأساسي. عند استخدام Anaconda على منصات Linux و Mac ، يمكن تحقيق ذلك ببساطة بواسطة:
conda install -c conda-forge coincbc
توفر المؤسسة العملية أو المنظمة-منظمة الصحة العالمية CBC-ثنائيات تم إنشاؤها مسبقًا لمجموعة كاملة من المنصات على https://bintray.com/coin-or/download.
لاختبار وظائف جوانب التزام الوحدة في البلشون ، قم بتنفيذ الأمر التالي من النماذج/الاختبارات الدليل الفرعي:
pytest test_unit_commitment.py
إذا تمكنت البلدة من العثور على حلال MIP التجاري على نظامك عبر Pyomo ، فسيقوم Egret بتنفيذ جناح اختبار كبير بما في ذلك حل العديد من MIPs إلى الأمثل. إذا كان بإمكان البلشاة العثور على حلوب مفتوح المصدر فقط ، فسيقوم بتنفيذ مجموعة اختبار محدودة أكثر تعتمد على حل الاسترخاء 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