Пьёмо

Пьёмо
РазработаноГабриэль Хакебейл
Уильям Э. Харт
Карл Лэрд
Бетани Николсон
Джон Сиирола
Жан-Поль Уотсон
Дэвид Вудрафф
Впервые появился2008 ; 17 лет назад ( 2008 )
Стабильный релиз
6.8.3 / 18 ноября 2024 г. ; 2 месяца назад ( 2024-11-18 )
ОСКроссплатформенность : Linux , Mac OS X и Windows
ЛицензияBSD-лицензия
Расширения имени файла.py
Веб-сайтwww.pyomo.org
Под влиянием
Python , AMPL , Общая алгебраическая система моделирования

Pyomo — это набор пакетов программного обеспечения Python для разработки моделей оптимизации. [1] [2]

Pyomo был разработан Уильямом Хартом и Жаном-Полем Уотсоном в Sandia National Laboratories и Дэвидом Вудраффом в University of California, Davis . Значительные расширения Pyomo были разработаны Бетани Николсон и Джоном Сиирола в Sandia National Laboratories , Карлом Лэрдом в Purdue University и Габриэлем Хакебайлом. Pyomo — это проект с открытым исходным кодом, который находится в свободном доступе и лицензирован по лицензии BSD . Pyomo разработан как часть проекта COIN-OR . Pyomo — это популярный пакет программного обеспечения с открытым исходным кодом, который используется различными государственными учреждениями и академическими институтами.

Функции

Pyomo позволяет пользователям формулировать задачи оптимизации на Python способом, который похож на нотацию, обычно используемую в математической оптимизации. Pyomo поддерживает объектно-ориентированный стиль формулирования моделей оптимизации, которые определяются с помощью различных компонентов моделирования: наборов, скалярных и многомерных параметров, переменных решений, целей, ограничений, уравнений, дизъюнкций и многого другого. Модели оптимизации могут быть инициализированы данными Python, а внешние источники данных могут быть определены с помощью электронных таблиц , баз данных , различных форматов текстовых файлов. Pyomo поддерживает как абстрактные модели, которые определяются без данных, так и конкретные модели, которые определяются с данными. В обоих случаях Pyomo допускает разделение модели и данных.

Pyomo поддерживает десятки решателей , как с открытым исходным кодом, так и коммерческих, включая множество решателей, поддерживаемых AMPL , PICO, CBC , CPLEX , IPOPT и GLPK . Pyomo может вызывать решатель напрямую или асинхронно с помощью менеджера решателей. Менеджеры решателей поддерживают удаленное асинхронное выполнение решателей, что поддерживает параллельное выполнение скриптов Pyomo. Взаимодействие решателя выполняется с помощью различных интерфейсов решателя в зависимости от используемого решателя. Очень общий интерфейс решателя поддерживается с помощью nl (формата) AMPL .

Следующие программные пакеты интегрируют Pyomo как библиотеку для поддержки моделирования и анализа оптимизации:

  • SolverStudio позволяет использовать Excel для редактирования, сохранения и решения моделей оптимизации, созданных с использованием различных языков моделирования, включая Pyomo. [3] Pyomo поставляется в комплекте с программным обеспечением SolverStudio.
  • TEMOA (Tools for Energy Model Optimization and Assessment) — это фреймворк моделирования с открытым исходным кодом для проведения анализа энергосистем. [4] Основным компонентом TEMOA является модель оптимизации энергоэкономики. Эта модель сформулирована и оптимизирована с использованием Pyomo.
  • MinPower — это набор инструментов с открытым исходным кодом для студентов и исследователей в области энергосистем. Он разработан для того, чтобы сделать работу со стандартными моделями энергосистем простой и интуитивно понятной. [5] MinPower использует Pyomo для формулирования и оптимизации этих моделей энергосистем.
  • Проект linopy, предлагающий схожую с Pyomo функциональность. [6]

Смотрите также

Ссылки

  1. ^ Уильям Э. Харт; Карл Д. Лэрд; Жан-Поль Уотсон; Дэвид Л. Вудрафф; Габриэль А. Хакебейл; Бетани Л. Николсон; Джон Д. Сиирола (2017). Pyomo — Оптимизационное моделирование на Python. Springer. ISBN 978-3-319-58821-6.
  2. ^ Харт, Уильям; Жан-Поль Уотсон; Дэвид Л. Вудрафф (2011). "Pyomo: моделирование и решение математических программ на Python". Математическое программирование и вычисления . Том 3, № 3. doi :10.1007/s12532-011-0026-8.
  3. ^ Мейсон, Эндрю (2013). «SolverStudio: новый инструмент для лучшей оптимизации и имитационного моделирования в Excel». INFORMS Transactions on Education . Том 14, № 1. С.  45–52 . doi :10.1287/ited.2013.0112.
  4. ^ ДеКаролис, Джозеф; Кевин Хантер; Сарат Шрипати (2010). Проект TEMOA: инструменты для оптимизации и анализа энергетических моделей (PDF) . Международный энергетический семинар. Стокгольм, Швеция.
  5. ^ Гринхолл, Адам; Рич Кристи; Жан-Поль Уотсон (2012). Minpower: Набор инструментов для оптимизации энергосистем (PDF) . Общее собрание Power and Energy Society.
  6. ^ "linopy: Линейная оптимизация с переменными, помеченными ND". PyPSA . Получено 2022-02-22 .
  • Статьи с сайта IBM developerWorks:
    • Гифт, Ноа (5 февраля 2013 г.). «Линейная оптимизация в Python, часть 1: решение сложных задач в облаке с помощью Pyomo».
    • Линейная оптимизация в Python, часть 2: создание масштабируемой архитектуры в облаке
  • «Pyomo встречает фэнтези-футбол». 2015-01-27.
  • APOPT Solver для решений LP, QP, MILP, NLP и MINLP в Pyomo
Взято с "https://en.wikipedia.org/w/index.php?title=Pyomo&oldid=1258449151"