Материал: Методы оптимизации в примерах и задачах. Медведь Н.А., Фокин А.А

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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

Источник: https://studfile.net/preview/16565974/