- •7. Нелинейное программирование
- •7.1. Постановка задачи нелинейного программирования и ее геометрическая интерпретация
- •7.2. Множители Лагранжа Рассмотрим задачу условной минимизации вида
- •Алгоритм решения задачи
- •7.3. Задачи выпуклого программирования
- •7.5. Задача квадратичного программирования
- •Алгоритм решения.
7.5. Задача квадратичного программирования
Методом квадратичного программирования решаются задачи, в которых функция f(x) является вогнутой квадратичной функцией, а ограничения задачи представляют собой линейные функции.
Задача, состоящая в определении максимального (минимального) значения функции
(7.37)
при ограничениях
(7.38)
хj ≥ 0, j = 1:n, (7.39)
где
− линейная часть функции f(x),
− отрицательно (положительно) −
полуопределенная квадратичная форма,
называется задачей
квадратичного программирования.
Для сформулированной задачи квадратичного программирования запишем функцию Лагранжа в виде

Если
функции f(x),
gi(x),
i
= 1:m
при всех х
≥ 0
непрерывно дифференцируемы, то имеет
место теорема Куна − Таккера. На основании
этой теоремы точка минимума х*
целевой функции f(x)
из (7.37) на допустимом множестве Е
(7.38), (7.39) может быть найдена как решение
следующей системы уравнений с
дополнительными переменными
ихn+i
(i
= 1:m).
Вводя эти переменные, обращающие
неравенства (7.31) и (7.34) в равенства,
перепишем выражения (7.31)…(7.36) следующим
образом:
![]()
(7.40)
(7.41)
(7.42)
(7.43)
(7.44)
Таким образом, чтобы найти решение задачи квадратичного программирования (7.37)…(7.39) при условии, что находится максимум функции (7.37), нужно определить неотрицательное решение систем линейных уравнений (7.40), (7.41), удовлетворяющие условиям (7.42) и (7.43). Это решение можно найти с помощью метода искусственного базиса, позволяющего найти одну из угловых точек множества, заданного условиями (7.40), (7.41) и (7.44).
При
реализации метода искусственного базиса
следует учитывать и условия (7.42), (7.43),
т.е. не включать в базисные одновременно
переменные λi
и хn+i
с
одним и тем же индексом i
и переменные хj,
с одинаковым номеромj.
Алгоритм решения.
Составить функцию Лагранжа.
Составить систему уравнений на основе необходимых условий существование седловой точки:

Ввести в ограничения дополнительные переменные µ ≥ 0, хn+i ≥ 0.
С помощью алгоритма симплекс - метода решить задачу линейного программирования
при
ограничениях (7.40), (7.41) и (7.44).Записывают оптимальное решение исходной задачи и находят значение целевой функции.
В правой части ограничений могут быть как отрицательные, так и положительные компоненты. При решении задачи симплекс - методом правые части системы ограничений должны быть неотрицательными числами, потому вводятся искусственные переменные хs в те уравнения, которые не содержат базисных переменных.
Пример. 7.4. Найти
f(x)=-2x1-6x2+
→ min
2x1+2x2
12
x1+2x2
7
x1,x2
0
Решение.
Функция –f(x)
= 2x1+6x2-x
является не строго вогнутой
f1
=
2;
f2
=
6 − 2x2;
f11
=
0;
f12
=
0;
f21
=
0;
f22
=
−2, в матрице Гессе
главные миноры равны: М1=0
(или М1=-2),
М2=0.
Составим функцию Лагранжа:
f(x,λ)
= 2x1+6x2-
.
Определим необходимые условия существования седловой точки


Преобразуем неравенства в равенства
![]()
![]()
Добавим базисные переменные х5, х6 в первые два уравнения и решим следующую задачу


Вспомогательную
целевую функцию (7.45) выразим через
свободные переменные
с помощью уравнений (7.46), (7.47)
![]()
Составляем
симплекс − таблицу. На 1-й итерации
нельзя ввести
в базис, так как в нем находятсях5,
х6,
имеющие одинаковый индекс i
(
).
Вводимх2
-
х1
х2
λ1
λ2
µ1
µ 2
х5
0
0
2
1
-1
0
2
х6
0
2
2
2
0
-1
6
х3
2
2
0
0
0
0
12
х4
1
2
0
0
0
0
7
0
-2
-4
-3
1
1
-8
↑
На
2-й итерации вводим х1,
на 3-ей итерации
.
|
|
х1 |
х6 |
λ1 |
λ2 |
µ1 |
µ 2 |
|
|
х5 |
0 |
0 |
4 |
2 |
-2 |
0 |
4 |
|
х2 |
0 |
1 |
2 |
2 |
0 |
-1 |
6 |
|
х3 |
4 |
-2 |
-4 |
-4 |
0 |
2 |
12 |
|
х4 |
2 |
-2 |
-4 |
-4 |
0 |
2 |
2 |
|
|
0 |
2 |
-4 |
-2 |
2 |
0 |
-4 |
-
х1
х6
λ1
λ2
µ1
µ2
х5
0
0
2
1
-1
0
2
х2
0
½
1
1
0
-1/2
3
х3
2
-1
-2
-2
0
1
6
х4
1
-1
-2
-2
0
1
1
0
1
-2
-1
1
0
-2
-
х4
х6
λ1
λ2
µ1
µ2
х5
0
0
2
1
-1
0
2
х2
0
½
1
1
0
-1/2
3
х3
-2
1
2
2
0
-1
4
х1
1
-1
-2
-2
0
1
1
0
1
-2
-1
1
0
-2
На 4-й итерации получим ответ, так как все pj > 0.
-
х4
х6
λ1
х5
µ1
µ2
λ2
0
0
2
1
-1
0
2
х2
0
½
-1
-1
1
-1/2
1
х3
-2
1
-2
-2
2
-1
0
х1
1
-1
2
2
-2
1
5
0
1
0
1
0
0
0
т.е.
иmin
.
.
