Разработчик(и) | Андреас Вехтер, Карл Лэрд |
---|---|
Первоначальный выпуск | 26 августа 2005 г. ( 2005-08-26 ) |
Стабильный релиз | 3.14.16 [1] / 22 апреля 2024 г. ( 2024-04-22 ) |
Операционная система | UNIX , Linux , macOS , Microsoft Windows |
Доступно в | С++ |
Лицензия | Публичная лицензия Eclipse |
Веб-сайт | github.com/coin-or/Ipopt |
IPOPT (сокращение от « Interior Point OPT imizer », произносится как IP-Opt) — это программная библиотека для крупномасштабной нелинейной оптимизации непрерывных систем.
Он написан на C++ (после миграции с Fortran и C ) и выпущен под лицензией EPL (ранее CPL ). IPOPT реализует метод первично-двойственной внутренней точки и использует линейный поиск на основе методов фильтрации ( Флетчер и Лейффер ).
IPOPT можно вызывать из различных сред моделирования: C , C++ , Fortran , Java , R , Python и других. [2]
IPOPT является частью проекта COIN-OR .
IPOPT разработан для использования информации о первой производной ( градиент ) и второй производной ( гессиан ), если она предоставлена (обычно с помощью автоматических процедур дифференциации в средах моделирования, таких как AMPL ). Если гессианы не предоставлены, IPOPT аппроксимирует их с помощью квазиньютоновских методов , в частности, обновления BFGS .
Первоначально IPOPT был разработан [3] аспирантом Андреасом Вехтером и профессором Лоренцем Т. Биглером с кафедры химической инженерии Университета Карнеги-Меллона . Их работа была отмечена премией INFORMS Computing Society Prize в 2009 году.
Арвинд Рагхунатхан позже создал расширение IPOPT для математического программирования с ограничениями равновесия (MPEC). [4] Эта версия IPOPT обычно известна как IPOPT-C (где «C» означает «комплементарность»). Хотя теоретически любая смешанно-целочисленная программа может быть преобразована в MPEC, она может быть разрешима или нет с помощью IPOPT-C. Решение MINLP (смешанно-целочисленных нелинейных программ) с помощью IPOPT все еще изучается. [5] [6]
Карл Лэрд и Андреас Вехтер являются разработчиками IPOPT 3.0, который является повторной реализацией IPOPT на C++ . За эту разработку Вехтер и Лэрд были награждены премией Дж. Х. Уилкинсона 2011 года за численное программное обеспечение .