Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Последовательное квадратичное программирование ( ПМК ) представляет собой итерационный метод для ограниченного нелинейной оптимизации . Методы SQP используются в математических задачах, для которых целевая функция и ограничения дважды непрерывно дифференцируемы .

Методы SQP решают последовательность подзадач оптимизации, каждая из которых оптимизирует квадратичную модель цели с учетом линеаризации ограничений. Если проблема не ограничена, то метод сводится к методу Ньютона для поиска точки, в которой градиент цели равен нулю. Если в задаче есть только ограничения типа равенства, то метод эквивалентен применению метода Ньютона к условиям оптимальности первого порядка или условиям Каруша – Куна – Таккера задачи.

Основы алгоритма [ править ]

Рассмотрим задачу нелинейного программирования вида:

Лагранжиан для этой задачи [1]

где и - множители Лагранжа . На итерации базовый алгоритм последовательного квадратичного программирования определяет подходящее направление поиска как решение подзадачи квадратичного программирования.

Обратите внимание, что член в приведенном выше выражении может быть опущен для задачи минимизации, поскольку он постоянен под оператором.

Альтернативные подходы [ править ]

Реализации [ править ]

Методы SQP были реализованы в хорошо известных вычислительных средах, таких как MATLAB и GNU Octave . Также существует множество программных библиотек, в том числе с открытым исходным кодом:

  • SciPy (де-факто стандарт для научного Python) имеет решатель scipy.optimize.minimize (method = 'SLSQP').
  • NLopt (реализация C / C ++ с многочисленными интерфейсами, включая Julia, Python, R, MATLAB / Octave), реализованная Дитером Крафт как часть пакета для оптимального управления и модифицированная SG Johnson. [2] [3]
  • LabVIEW
  • KNITRO [4] (C, C ++, C #, Java, Python, Fortran)
  • NPSOL (Фортран)
  • СНОПТ (Фортран)
  • NLPQL (Фортран)
  • MATLAB
  • СуанШу (Ява)

См. Также [ править ]

Заметки [ править ]

  1. ^ Хорхе Нокедал и Стивен Дж. Райт (2006). Численная оптимизация . Springer. ISBN 978-0-387-30303-1.
  2. ^ Крафт, Дитер (сентябрь 1994). «Алгоритм 733: модули TOMP – Fortran для расчетов оптимального управления» . Транзакции ACM на математическом программном обеспечении . 20 (3): 262–281. CiteSeerX 10.1.1.512.2567 . DOI : 10.1145 / 192115.192124 . S2CID 16077051 . Дата обращения 1 февраля 2019 .  
  3. ^ Крафт, Дитер (июль 1988 г.). «Программный комплекс для последовательного квадратичного программирования» . Технический отчет DFVLR-FB 88-28 . Оберпфаффенхофен: Institut für Dynamik der Flugsysteme . Дата обращения 1 февраля 2019 .
  4. ^ Руководство пользователя KNITRO: Алгоритмы

Ссылки [ править ]

  • Боннанс, Ж. Фредерик; Гилберт, Дж. Чарльз; Лемарешаль, Клод ; Сагастизабал, Клаудиа А. (2006). Численная оптимизация: теоретические и практические аспекты . Universitext (Второе исправленное издание перевода французского издания 1997 г.). Берлин: Springer-Verlag. С. xiv + 490. DOI : 10.1007 / 978-3-540-35447-5 . ISBN 978-3-540-35445-1. Руководство по ремонту  2265882 .
  • Хорхе Нокедал и Стивен Дж. Райт (2006). Численная оптимизация . Springer. ISBN 978-0-387-30303-1.

Внешние ссылки [ править ]

  • Последовательное квадратичное программирование в руководстве NEOS