Ipopt (Interior Point OPTimizer, произносится как eye-pea-Opt) - программный пакет для крупномасштабной нелинейной оптимизации. Ipopt написан на C++ и выпущен как открытый исходный код под Eclipse Public License (EPL). Он доступен по инициативе COIN-OR.

Вступление

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)

(это описание является урезанным портом официальной страницы)