Перейти к содержанию

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

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис

Последовательное квадратичное программирование (англ. Sequential quadratic programming (SQP)) — один из наиболее распространённых и эффективных оптимизационных алгоритмов общего назначения[1], основной идеей которого является последовательное решение задач квадратичного программирования, аппроксимирующих данную задачу оптимизации. Для оптимизационных задач без ограничений алгоритм SQP преобразуется в метод Ньютона поиска точки, в которой градиент целевой функции обращается в ноль. Для решения исходной задачи с ограничениями-равенствами метод SQP преобразуется в специальную реализацию ньютоновских методов решения системы Лагранжа.

Основные сведения

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

[math]\displaystyle{ \min\limits_x f(x), }[/math]

при ограничениях

[math]\displaystyle{ b(x)\geqslant 0,\;c(x)=0. }[/math]

Лагранжиан задачи примет следующий вид:

[math]\displaystyle{ L(x,\;\lambda,\;\sigma)=f(x)-\lambda^Tb(x)-\sigma^Tc(x), }[/math]

где [math]\displaystyle{ \lambda }[/math] и [math]\displaystyle{ \sigma }[/math] — множители Лагранжа.

На итерации [math]\displaystyle{ x_k }[/math] основного алгоритма определяются соответствующие направления поиска [math]\displaystyle{ d_k }[/math] как решение следующей подзадачи квадратичного программирования:

[math]\displaystyle{ \min\limits_d L(x_k,\;\lambda_k,\;\sigma_k)+\nabla L(x_k,\;\lambda_k,\;\sigma_k)^Td+\frac{1}{2}d^T\nabla_{xx}^2 L(x_k,\;\lambda_k,\;\sigma_k)d, }[/math]

при ограничениях

[math]\displaystyle{ b(x_k)+\nabla b(x_k)^Td\geqslant 0,\;c(x_k)+\nabla c(x_k)^Td=0. }[/math]

См. также

Примечания

  1. Трифонов А. Г. Optimization Toolbox 2.2 Руководство пользователя Архивная копия от 11 августа 2016 на Wayback Machine // Softline Co.

Литература