Если множество 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