Разработано | Габриэль Хакебейл Уильям Э. Харт Карл Лэрд Бетани Николсон Джон Сиирола Жан-Поль Уотсон Дэвид Вудрафф |
---|---|
Впервые появился | 2008 ( 2008 ) |
Стабильный релиз | 6.8.3 / 18 ноября 2024 г. ( 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 как библиотеку для поддержки моделирования и анализа оптимизации: