Jump to content

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

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

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

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

Обзорная схема, иллюстрирующая базовый алгоритм SQP

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

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

где и являются множителями Лагранжа .

Стандартный метод Ньютона ищет решение. повторяя следующее уравнение, где обозначает матрицу Гессе :

.

Однако поскольку матрица вообще сингулярна (и, следовательно, необратима ) , шаг Ньютона невозможно вычислить напрямую. Вместо этого базовый алгоритм последовательного квадратичного программирования определяет подходящее направление поиска. на итерации , как решение квадратичного программирования подзадачи

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

Вместе алгоритм SQP начинается с выбора начальной итерации. , затем вычисляем и . Затем строится и решается подзадача QP для нахождения направления шага Ньютона. который используется для обновления итерации родительской проблемы с использованием . Этот процесс повторяется для до тех пор, пока родительская задача не будет удовлетворять тесту на сходимость.

Практические реализации [ править ]

Практическая реализация алгоритма SQP значительно сложнее, чем его базовая версия, описанная выше. Чтобы адаптировать SQP для реальных приложений, необходимо решить следующие проблемы:

  • Возможность неразрешимой подзадачи QP.
  • Подзадача QP, дающая плохой шаг: тот, который либо не может уменьшить цель, либо увеличивает нарушение ограничений.
  • Срыв итераций из-за значительного отклонения цели/ограничений от их квадратичных/линейных моделей.

Для решения этих проблем обычно используются различные стратегии:

  • Использование функций оценки, которые оценивают прогресс в направлении ограниченного решения, или методов фильтрации.
  • Доверительные методы поиска области или линии для управления отклонениями между квадратичной моделью и фактической целью.
  • Специальные этапы восстановления выполнимости для решения невыполнимых подзадач или использование подзадач с штрафом L1 для постепенного уменьшения невыполнимости.

Эти стратегии можно комбинировать различными способами, в результате чего получается широкий спектр методов SQP.

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

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

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

  • SciPy (фактический стандарт для научного Python) имеет решатель scipy.optimize.minimize(method='SLSQP').
  • NLopt (реализация C/C++ с многочисленными интерфейсами, включая Julia, Python, R, MATLAB/Octave), реализованная Дитером Крафтом как часть пакета для оптимального управления и модифицированная С.Г. Джонсоном. [2] [3]
  • Решатель ALGLIB SQP (C++, C#, Java, Python API)

и коммерческий

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

Примечания [ править ]

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

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

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

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 6f595508c2f97d94c7a3e3a17c0a2a5c__1709574180
URL1:https://arc.ask3.ru/arc/aa/6f/5c/6f595508c2f97d94c7a3e3a17c0a2a5c.html
Заголовок, (Title) документа по адресу, URL1:
Sequential quadratic programming - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)