3172
.pdf
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ij x j |
xn i |
i , |
i 1, m |
|
|
|
|
|
|
|
|||||||||
|
j 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(5.1.3) |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x j |
0, |
j |
|
1, n |
m |
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
j x j |
0, |
|
j 1, n |
||||||
|
i xn i |
0 i 1, m, |
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
i |
0, |
i |
1, m, |
|
|
j |
0, j |
1, n . |
|
|
||||||||||
Решение |
(x1, x2 ,...,xn+m , 1,..., |
m , |
1,..., n ) |
данной системы |
|||||||||||||||||
n m линейных |
уравнений |
|
содержит, |
по крайней |
мере n |
m |
|||||||||||||||
нулевых координат. |
Задачу нахождения |
решения системы |
без |
||||||||||||||||||
|
|
____ |
|
|
|
|
|
|
|
|
|
____ |
|
|
|
|
|
|
|
|
|
условий i xn i |
0, |
i=1,m и |
|
|
j xj |
0, |
j=1,n |
можно свести к |
нахождению допустимой базисной точки методом искусственного базиса в специально построенной задаче линейного программирования
z1 z2 |
... |
|
z n |
z n 1 |
... |
z n m |
min |
|||
n q ij x j |
n |
|
|
|
|
|
|
|
|
|
i |
ij |
j |
z j |
b j , j 1, n |
||||||
i 1 |
i 1 |
|
|
|
|
|
|
|
|
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ij x j |
x n i |
|
z n i |
i , i 1, m |
|
|
|
|||
j 1 |
|
|
|
|
|
|
|
|
|
|
x j |
0, z j |
0 |
|
j |
1, n |
m |
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
||
i |
0, |
i |
1, m, |
j |
0, |
j |
1, n . |
||||||
При реализации метода искусственного базиса следует |
|||||||||||||
учитывать условия |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_____ |
|
|
|
|
|
____ |
||||
ш xn i |
0, |
i=1,m, |
|
|
j xj |
0, |
|
j=1,n, |
|||||
т.е. не включать в базисные переменные одновременно |
|
i и xn i с |
|||||||||||
одним и тем же номером i |
и переменные |
j |
и xj с одинаковым |
||||||||||
номером j . |
|
|
|
|
|
|
|
|
|
|
|
|
|
Пример. Решить задачу квадратичного программирования: |
|||||||||||||
x 2 |
2x x |
2 |
|
2x 2 |
2x |
|
6x |
2 |
|
min |
|||
1 |
|
1 |
|
2 |
1 |
|
|
|
|
133
x1 |
x2 |
2 |
|
|
x1 2x2 2 |
||
x1 |
0, x2 |
0. |
|
Решение. Целевая функция данной задачи является |
|||
квадратичной с матрицей |
|
||
A |
1 |
1 |
|
1 |
2 |
||
|
Так как определители главных миноров данной матрицы
1 |
1, |
2 |
1 |
положительны, то данная матрица является |
|
|
|
положительно определенной, а целевая функция выпуклой. Следовательно, данная задача является задачей выпуклого программирования и для ее решения можно применить описанный выше метод решения. Система равенств (5.1.3) запишется для рассматриваемой задачи в виде:
2x1 |
2x2 |
1 |
2 |
1 |
2 |
|
|
2x1 |
4x2 |
1 |
2 2 |
2 |
6 |
||
x1 |
x2 |
x3 |
2 |
|
|
|
|
x1 |
2x2 |
x4 |
2 |
|
|
|
|
x1 , x2 , x3 , x4 , 1 , |
2 , 1 , |
2 |
0 |
||||
1x1 |
2 x2 |
1x3 |
2 x4 |
0. |
|
|
Найдем допустимое базисное решение этой системы, путем решения вспомогательной задачи линейного программирования с искусственными переменными
x5 |
x6 |
max |
|
|
|
2x1 |
2x2 |
1 |
2 |
1 x5 |
2 |
2x1 |
4x2 |
1 |
2 2 |
2 |
x6 6 |
x1 x2 x3 2
134
|
|
|
|
x1 |
|
2x2 |
x4 |
2 |
|
|
|
|
|
|
|
|
||
|
|
|
x1, x2 , x3 , x4 , |
1, |
2 , 1, |
2 |
|
0, |
|
|
|
|||||||
взяв |
|
в |
качестве |
первоначального |
базисного |
множества |
||||||||||||
J |
{5, 6,3, 4}.. Приведем последовательность симплексных таблиц. |
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cB |
|
J |
xB |
x1 |
|
|
x2 |
|
x3 |
x4 |
|
|
λ1 |
|
|
λ2 |
μ1 |
μ2 |
-1 |
|
5 |
2 |
2 |
|
|
-2 |
|
0 |
0 |
|
1 |
|
-1 |
-1 |
0 |
||
-1 |
|
6 |
6 |
-2 |
|
|
4 |
|
0 |
0 |
|
1 |
|
2 |
0 |
-1 |
||
0 |
|
3 |
2 |
1 |
|
|
1 |
|
1 |
0 |
|
0 |
|
0 |
0 |
0 |
||
0 |
|
4 |
2 |
-1 |
|
|
2 |
|
0 |
1 |
|
0 |
|
0 |
0 |
0 |
||
|
|
|
-8 |
0 |
|
|
-2 |
|
0 |
0 |
|
|
-2 |
|
|
-1 |
1 |
1 |
-1 |
|
5 |
4 |
1 |
|
|
0 |
|
0 |
1 |
|
1 |
|
-1 |
-1 |
0 |
||
-1 |
|
6 |
2 |
0 |
|
|
0 |
|
0 |
-2 |
|
1 |
|
2 |
0 |
1 |
||
0 |
|
3 |
1 |
3/2 |
|
|
0 |
|
1 |
-1/2 |
|
0 |
|
0 |
0 |
0 |
||
0 |
|
2 |
1 |
-1/2 |
|
1 |
|
0 |
½ |
|
0 |
|
0 |
0 |
0 |
|||
|
|
|
-6 |
-1 |
|
|
0 |
|
0 |
1 |
|
|
-2 |
|
|
-1 |
1 |
1 |
-1 |
|
5 |
10/3 |
0 |
|
|
0 |
|
-2/3 |
4/3 |
|
1 |
|
-1 |
-1 |
0 |
||
-1 |
|
6 |
2 |
0 |
|
|
0 |
|
0 |
-2 |
|
|
1 |
|
2 |
0 |
-1 |
|
0 |
|
1 |
2/3 |
1 |
|
|
0 |
|
2/3 |
-1/3 |
|
0 |
|
0 |
0 |
0 |
||
0 |
|
2 |
4/3 |
0 |
|
|
1 |
|
1/3 |
1/3 |
|
0 |
|
0 |
0 |
0 |
||
|
|
|
-16/3 |
0 |
|
|
0 |
|
2/3 |
2/3 |
|
|
-2 |
|
|
-1 |
1 |
1 |
-1 |
|
5 |
4/3 |
0 |
|
|
0 |
|
-2/3 |
10/3 |
|
0 |
|
-3 |
-1 |
1 |
||
0 |
|
λ1 |
2 |
0 |
|
|
0 |
|
0 |
-2 |
|
1 |
|
2 |
0 |
-1 |
||
0 |
|
1 |
2/3 |
1 |
|
|
0 |
|
2/3 |
-1/3 |
|
0 |
|
0 |
0 |
0 |
||
0 |
|
2 |
4/3 |
0 |
|
|
1 |
|
1/3 |
1/3 |
|
0 |
|
0 |
0 |
0 |
||
|
|
|
-4/3 |
0 |
|
|
0 |
|
2/3 |
-10/3 |
|
|
0 |
|
|
3 |
1 |
-1 |
0 |
|
4 |
4/10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
λ1 |
28/10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
1 |
4/5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
2 |
6/5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
|
|
0 |
|
0 |
0 |
|
|
0 |
|
|
0 |
0 |
0 |
В последней симплексной таблице мы получили допустимое базисное решение
135
x , x |
|
, x |
|
, x |
|
, |
|
, |
|
, |
|
, |
|
4 |
, |
6 |
,0, |
2 |
, |
14 |
,0,0,0 |
|
2 |
3 |
4 |
1 |
2 |
1 |
2 |
|
|
|
|
|
|||||||||||
1 |
|
|
|
|
|
|
5 |
5 |
5 |
5 |
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
. |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Поэтому искомое решение задачи квадратичного программирования
имеет вид x* |
4 |
, |
6 |
с значением целевой функции |
|
5 |
5 |
||||
|
|
|
f * f (x* ) |
36 |
. |
|
|
|
5 |
|
|
|
||
|
|
|
|
|
|
Задачи для самостоятельного решения |
|
||||
1. |
Решить |
следующие |
задачи |
квадратичного |
|
программирования: |
|
|
|
||
5.1.1) |
|
(x 4)2 |
(x 2)2 |
min |
|
|
1 |
2 |
|
|
x1 x2 3 x1 2x2 4 x1 0, x2 0
5.1.2) 2x1 3x2 2x22 max
x1 4x2 4 x1 x2 2 x1 0, x2 0
5.1.3) 20x1 x22 max
x1 x2 0
x1 2x2 2 x1 0, x2 0
136
5.2. Задача выпуклого программирования с линейной целевой функцией
5.2.1. Постановка задачи выпуклого программирования с линейной целевой функцией
Пусть имеется задача выпуклого программирования с линейной целевой функцией:
cxT |
max |
|
|
|
|
|
____ |
|
(5.2.1) |
: fi (x) bi , |
i=1,m. |
|
|
|
З а м е ч а н и е |
1 . |
Любая |
задача |
выпуклого |
программирования может быть записана в виде (5.2.1). Действительно, если есть задача с нелинейной целевой
функцией |
|
|
|
|
|
|
|
|
|
|
|
(x) |
|
max |
|
|
|
||
|
|
|
|
|
|
_____ |
|
|
|
|
fi (x) |
bi , i=1,m, |
|
|
|||||
то она может быть переписана следующим образом: |
|
||||||||
|
|
|
max |
|
|
|
|
|
|
|
|
|
(x) |
0, |
|
|
|
|
|
|
|
|
|
|
|
_____ |
|
|
|
|
fi (x) |
|
bi , |
i=1,m. |
|
|
|||
Для решения задач вида (5.2.1) применяется метод секущих |
|||||||||
плоскостей, |
основанный |
на |
приближении |
всех нелинейных |
|||||
функций |
fi (x) линейными |
с использованием |
разложения по |
||||||
формуле Тейлора: |
|
|
|
|
|
|
|
|
|
|
fi (x) |
|
fi (x0 ) |
|
fi (x0 )(x x0 )T . |
|
|||
Рассмотрим задачу |
|
|
|
|
|
||||
|
cxT |
|
|
max |
|
|
|
|
|
|
|
|
|
(x0 ) |
|
(x0 )(x x0 )T |
|
_____ (5.2.2) |
|
|
1 |
: |
f |
f |
b , |
i=1,m . |
|||
|
|
i |
|
|
i |
|
i |
|
137
Если множество 1 ограничено, то задача (5.2.2) всегда разрешима (в противном случае может оказаться, что
sup cxT |
|
|
, |
|
|
|
|
1 |
|
|
|
|
|
даже если задача (5.2.1) разрешима). |
||||||
Так как функции |
fi (x) |
|
выпуклы вниз, справедливо |
|||
неравенство |
|
|
|
|
|
|
f |
(x) |
f |
(x0 ) |
f |
(x0 )(x x0 )T b . |
|
i |
|
i |
|
|
i |
i |
Следовательно |
|
|
1. . Пусть x1 - решение задачи (5.2.2). |
|||
тогда |
|
|
|
|
|
|
1)если точка x1 допустима в задаче (5.2.1), то она является оптимальным решением этой задачи (поскольку
это экстремум той же целевой функции на более широком множестве);
2) если x1 , то в задаче (5.2.2) добавляются новые линейные ограничения:
f |
i |
(x1 ) |
|
f |
i |
(x1 )(x x1 )T |
b , i :{ f |
i |
(x1 ) b } |
. |
|||
|
|
|
|
|
|
i |
|
|
i |
||||
Эти ограничения обладают следующими свойствами: |
|
||||||||||||
a) Точка |
x1 |
не удовлетворяет этим ограничениям; |
|
|
|||||||||
b) во всех точках множества |
они выполняются. |
|
|
||||||||||
Таким образом, |
получаем |
новое |
множество |
|
2 |
, такое |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
что |
|
2 |
1. Далее итерационный процесс повторяется. |
||||||||||
Доказано, |
что |
генерируемая |
таким |
образом |
последовательность |
{ xk } решений ЗЛП сходится к оптимальной точке исходной задачи. Рассмотрим алгоритм.
138
5.2.2. Метод секущих плоскостей.
Алгоритм метода секущих плоскостей
Шаг 1. Задать x0 |
(не обязательно допустимое), |
(точность |
|||||||||||
|
попадания в допустимую область). |
|
|||||||||||
Шаг 2. |
Положить k 1 |
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
____ |
|
1 |
{x : f |
i |
(x0 ) |
f |
|
(x0 )(x |
x0 )T b , i=1,m}. |
|||||
|
|
|
|
|
|
i |
|
|
i |
|
|||
Шаг 3. |
Найти xk - решение задачи линейного |
|
|||||||||||
|
программирования |
|
|
|
|
|
|
||||||
|
cxT |
max |
|
|
|
|
|
|
|
||||
|
x |
|
k . |
|
|
|
|
|
|
|
|
|
|
Шаг 4. |
Если |
|
|
i : f |
(xk ) |
|
|
b |
, то останов x* xk . |
||||
|
|
|
|
|
|
i |
|
|
|
i |
|
|
|
Шаг 5. |
Положить |
|
|
|
|
|
|
|
|
|
|
||
|
|
л 1 |
|
k |
{x : f |
i |
(xk ) |
f |
(xk )(x xk )T |
b , |
|||
|
|
|
|
|
|
|
i |
|
i |
||||
|
i : f |
(xk ) |
|
|
b }; |
|
|
|
|
|
|
||
|
|
i |
|
|
|
i |
|
|
|
|
|
|
|
k=k+1 . Перейти к шагу 3.
Пример 1. Решить методом секущих плоскостей задачу
139
(x) x1 x2 max f1 (x) 2x1 x22 1,
f |
2 |
(x) |
0.8x2 |
2x 9, |
|
|
||
|
|
|
1 |
2 |
|
|
||
x1 |
, x2 |
0. |
|
|
|
|
||
Решение. |
Выберем |
x0 (5, 4). |
Вычислим |
|||||
f1 (x) ( 2; 2x2 ), |
|
f2 (x) |
(1.6x1; 2). Тогда |
|
f (x) |
6 ( |
2;8)(x |
5; x |
4)T |
2x |
8x |
16, |
|||
1 |
|
|
|
1 |
2 |
|
1 |
2 |
|
|
f |
2 |
(x) |
28 |
(8; 2)(x |
5; x |
4)T |
8x |
2x |
20. |
|
|
|
|
|
1 |
2 |
|
1 |
2 |
|
|
Решим графически задачу линейного программирования: |
||||||||||
x1 x2 |
max |
|
|
|
|
|
||||
|
|
2x1 |
8x2 |
15 |
|
|
|
|
|
|
8x1 |
2x2 |
29 |
1 |
|
|
|
|
|||
|
|
|
|
|
||||||
x1, x2 |
0 |
|
|
|
|
|
|
|
||
Ее решением является точка x1 |
(2.97; 2.62). |
|
|
|
|
|||||
|
|
|
|
|
140 |
|
|
|
|
|
Однако в этой точке нарушаются первое и второе ограничения, причем величина невязок достаточно велика, поэтому строим отсекающие плоскости
0.92 |
( 2; 5.24)(x |
|
2.97; x |
2 |
2.62)T |
15 |
||
|
|
1 |
|
|
|
|
||
12.3 |
(4.75; 2)(x |
|
2.97; x |
2 |
|
2.62)T |
9 |
|
|
|
1 |
|
|
|
|
|
|
Добавляем эти ограничения к задаче линейного |
||||||||
программирования |
и |
находим |
|
|
следующее |
решение |
x2 (2.52; 2.05), которое уже является хорошим приближением к
оптимальной точке. Хотя в этой точке по прежнему оба ограничения нарушены, величина невязок не превосходит 0.1,
поэтому положим x* x2.
Пример 2. Решить методом секущих плоскостей задачу
(x) |
x1 |
|
x2 |
max |
f (x) |
x |
2 |
x2 |
9. |
1 |
1 |
2 |
|
141
Решение. |
Выберем |
x0 |
(2, 3). |
Вычислим |
|||
f1 (x) |
(2x1; 2x2 ). Тогда |
|
|
|
|
|
|
f (x) |
13 (4;6)(x |
2; x |
3)T |
4x |
6x |
13. |
|
1 |
1 |
2 |
|
1 |
2 |
|
|
|
Решим графически задачу линейного программирования: |
||||||
|
x1 |
x2 |
max |
|
|
|
|
|
1 : |
4x1 |
6x2 |
22. |
|
|
|
Из графика видно, что в направлении вектора-градиента целевой
функции допустимое множество не ограничено, sup (x) |
, |
||||||||
|
|
|
|
|
1 |
|
|||
т.е. ЗЛП решения не имеет. Однако исходная задача разрешима, |
|
||||||||
x* |
3 |
|
, |
3 |
|
. |
|
||
|
|
|
|
|
|
|
|||
2 |
2 |
|
|||||||
|
|
|
|
|
|
Этот |
пример |
иллюстрирует |
существенность |
требования |
|
ограниченности множества |
1. |
|
|
5.3. Задача выпуклого программирования с линейными ограничениями. Метод линеаризации (Франка Вулфа)
Рассмотрим задачу минимизации выпуклой нелинейной функции на множестве, задаваемом линейными ограничениями:
f (x) min
Ax b x 0
Метод линеаризации основан на замене в окрестности точки
xk нелинейной функции f (x) |
линейной функцией c xT . . Из |
|
k |
формулы Тейлора следует, что |
|
f (x) f (x k ) |
f (x k )(x x k )T . |
142