- •Раздел 2. Нелинейное программирование
- •2.1. Математическая постановка задачи
- •2.2. Метод Лагранжа для задачи с ограничениями типа равенства
- •2.3. Метод Лагранжа для задачи с ограничениями типа неравенства
- •2.4. Метод Лагранжа для задачи со смешанными ограничениями
- •2.5. Задача квадратичного программирования
- •2.6. Задачи и вопросы для практической работы
2.5. Задача квадратичного программирования
Математическая постановка задачи квадратичного программирования имеет вид
Ax ≤ b
x ≥ 0
где Н – матрица размерности (пхп), А – матрица размерности (mxn), x и d - (nx1)- векторы, b - (mx1) – вектор. Целевая функция этой задачи имеет квадратичную форму, а ограничения, как и в задаче линейного программирования, линейны. Обычно предполагается, что при минимизации целевой функции матрица Н является положительно определенной, то есть имеет место хТНх , х Еп, х 0, а в случае максимизации – отрицательно определенной, то есть хТНх , х Еп, х 0. В первом случае целевая функция выпукла, а во втором случае она вогнута. Эти условия обеспечивают существование и единственность решения, если только значение целевой функции конечно на множестве допустимых решений, заданном ограничениями Ax ≤ b, x ≥ 0. Для определенности рассмотрим задачу на минимум. Функция Лагранжа для такой задачи записывается в виде
,
следовательно, необходимые и достаточные условия оптимальности решения х* примут вид
Заметим, что в первой строке этого выражения величина d + Hx* представляет собой производную целевой функции по вектору х в точке х*.
Рассмотрим численный пример. Пусть решается задача
f(x) = 3x12 + 4x1x2+5x22 → min,
x1+x2 ≥ 4
x1, x2 ≥ 0
в которой всего одно ограничение q1 (x) = -x1 - x2 + 4 ≤ 0, а линейная часть целевой функции отсутствует, т.е. вектор d равен нулю. Поэтому функция Лагранжа будет равна L(x, ) = f(x) + T(Ax + b) = 3x12 +4x1x2 +5x22 + (-x1 – x2 +4), а условия оптимальности примут вид
L(x*, )/х1 = 6х1 + 4х2 - 0;
х1*L(x*, )/х1 = 0;
L(x*, )/х2 = 4х1 + 10х2 - 0;
х2*L(x*, )/х2 = 0;
L(x*, )/ = - х1 – х2 + 4 ≤ 0;
(- х1 – х2 + 4) = 0;
0;
Легко проверить, что решение этой задачи есть x* = (3, 1)T, f* = f(x*) = 44,
Это же решение можно получить, если в исходной задаче условие неотрицательности переменных, т.е. x1, x2 0, заменить ограничениями q2 (x) = -x1 ≤ 0, q3 (x) = -x2 ≤ 0. Тогда функция Лагранжа примет вид
,
а условия теоремы Куна – Таккера будут равны
;
;
;
;
;
Рекомендуем студентам самостоятельно проверить, что решение этой системы совпадает с полученным выше решением x* = (3, 1)T; f* = f(x*) = 44, .
Ниже, на рисунке представлена геометрическая интерпретация решения задачи. Как видно, область допустимых решений задачи представляет собой выпуклое многогранное множество (выпуклый многогранник), а линии уровня целевой функции представляют собой эллипсы, стягивающиеся в начало координат. Линия минимального уровня целевой функции касается отрезка прямой, заданной уравнением x1 + x2 = 4, в точке с координатами (3, 1), что и совпадает с решением данной задачи.
3
1
f = const (линии уровня
ц/ф)
x*
x2
x1
Рис.2.6. Графическая иллюстрация решения
задачи квадратичного программирования.