Описание тега ipopt
Вступление
Ipopt (I nterior Point OPTimizer, произносится как eye-pea-Opt) - программный пакет для крупномасштабной нелинейной оптимизации. Он предназначен для поиска (локальных) решений задач математической оптимизации вида
min f(x)
x in R^n
s.t. g_L <= g(x) <= g_U
x_L <= x <= x_U
где f(x): R^n --> R
- целевая функция, а
g(x): R^n --> R^m
- функции ограничения. Векторыg_L
а также g_U
обозначают нижнюю и верхнюю границы ограничений, а векторы x_L
а также x_U
- оценки переменных x
. Функцииf(x)
а также g(x)
может быть нелинейным и невыпуклым, но должен быть дважды непрерывно дифференцируемым. Обратите внимание, что ограничения равенства могут быть сформулированы в приведенной выше формулировке, задав соответствующие компонентыg_L
а также g_U
к той же стоимости.
Ipopt является частью инициативы COIN-OR.
Задний план
Ipopt написан на C++ и выпущен как открытый исходный код под Eclipse Public License (EPL). Он доступен по инициативе COIN-OR. Код был написан Андреасом Вехтером и Карлом Лэрдом. Руководителями проектов COIN-OR для Ipopt являются Андреас Вехтер и Стефан Вигерске.
Версия C++ впервые была выпущена 26 августа 2005 г. как версия 3.0.0. Ранее выпущенная версия Fortran до 3.0 больше не поддерживается.
Распространение Ipopt можно использовать для создания библиотеки, которая может быть связана с вашим собственным кодом C++, C, Fortran или Java, а также исполняемым файлом решателя для среды моделирования AMPL. Пакет включает интерфейсы к среде тестирования оптимизации CUTEr, а также к средам программирования MATLAB и R. IPOPT можно использовать на платформах Linux/UNIX, Mac OS X и Windows.
Как программное обеспечение с открытым исходным кодом, исходный код Ipopt предоставляется бесплатно. Вы можете использовать его в коммерческих целях. Вы также можете изменять исходный код (с ограничением, что вам необходимо сделать свои изменения общедоступными, если вы решите распространять свою версию каким-либо образом, например, как исполняемый файл); подробности см. в лицензии EPL. И мы, конечно же, очень заинтересованы в обратной связи от пользователей, в том числе в вкладе!
Для компиляции Ipopt требуется определенный сторонний код (например, некоторые процедуры линейной алгебры). Они доступны на разных условиях / лицензиях.
связанные проекты
COIN-OR / ADOL-C: использование Ipopt черезC++ и автоматическое дифференцирование ( примеры).
Ссылки на COIN-OR/AIMMS: использование Ipopt через AIMMS
COIN-OR / CppAD: использование Ipopt через C++ и автоматическое дифференцирование ( пример).
COIN-OR / GAMSlinks: использование Ipopt через GAMS
COIN-OR / Услуги по оптимизации: использование Ipopt через ОС
APMonitor: MATLAB, Python и веб-интерфейс для Ipopt с APMonitor для Android, Linux, Mac и Windows OS
CasADi: Использование Ipopt в символьной структуре для автоматического дифференцирования и числовой оптимизации.
csipopt: взаимодействие Ipopt с языками.NET, такими как C#, F# и Visual Basic.NET.
GEKKO: пакет оптимизации Python с IPOPT: pip install gekko
JuMP: Алгебраическое моделирование с автоматическим дифференцированием в Julia (также доступен низкоуровневый интерфейс)
MADOPT: облегченные интерфейсы моделирования C++ и Python, реализующие построение выражений с использованием перегрузки операторов и автоматического дифференцирования.
mexIPOPT: переписанныйинтерфейс MATLAB, содержащийся в Ipopt
OPTI Toolbox: Windows x86 +x64 MATLAB Interface, включая двоичные файлы
pyipopt: взаимодействие Ipopt с Python
sci-ipopt: взаимодействие с Ipopt из Scilab (бесплатная среда, подобная MATLAB)
(это описание является урезанным портом официальной страницы)