Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методы оптимизации и исследование операций для бакалавров информатики. Часть 2

.pdf
Скачиваний:
187
Добавлен:
26.03.2016
Размер:
7.81 Mб
Скачать

30

 

 

Глава 9. Теория выпуклого программирования

f (→−

λ)X

 

 

]

 

(1

 

 

 

 

 

 

 

 

) <

 

 

 

 

X ) = f [(1

 

 

+ λX

 

 

λ)f (X

) + λf (X

 

 

 

 

<

так какf (→− )

 

 

(→− )

 

 

<

(1

)

(

X

) +

(

X

) =

(

X

)

.

 

 

X

< f X

 

 

 

 

λ

f

 

 

λf

 

 

f

 

→−

Но это противоречит утверждению о том, что X→− — точка ло-

кального минимума, так как при 0 < λ < ε точка X находится в

→−

ε-окрестности точки X .

Доказанное свойство имеет фундаментальное значение для выпуклой оптимизации, поскольку позволяет заменить глобальные условия минимума локальными, основанными на дифференциальных свойствах функций в предположении, что все частные производные существуют и непрерывны.

Дифференциальные

свойства

Вектор частных производных функции

X )

X

многих переменных f (→−

в точке →− на-

зывается градиентом и обозначается как

→− f (→−

 

→−

, . . . ,

∂f (→−

 

.

∂x1

∂xn

X ) =

 

∂f (X )

 

X )

 

T

 

 

 

 

 

 

Из курса математического анализа (см., например, [15, с. 19]) известно, что вектор градиента указывает направление скорейше-

X )

 

X

. Противоположный ему

го увеличения функции f (→−

в точке →−

→− f (→−

 

 

по направлению вектор

X )

называется антиградиентом,

 

он определяет направление скорейшего убывания. Скорость из-

−→

менения f (X ) по направлению, задаваемому произвольным век-

−→

тором d , называется производной по направлению (directional

derivative) и может быть выражена как проекция градиента на выбранное направление:

∂f (→−

= lim

→−

→−

 

→−

=

 

 

 

 

 

 

 

 

X )

 

 

 

f (X

+ t d )

 

f (X )

 

 

 

 

 

 

 

 

 

→−

t

0

 

→−

 

 

 

 

 

 

 

 

 

 

 

d

 

 

 

 

 

t d

 

→− f (→−

→−

 

 

→−

→−

→−

 

 

= pr d

→− f (→−

 

 

X ), d

=

 

 

T f (X ) d

(9.9)

 

 

 

 

 

 

 

.

 

 

→−

X ) =

 

 

→−

 

 

 

 

 

→−

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

d

 

 

 

 

 

d

 

 

 

9.2.. Выпуклые функции и их свойства

31

Вектор градиента имеет еще одну важную геометрическую интерпретацию. Если задана функция нескольких переменных

X )

, то уравнение

f (X ) =

const при различных значениях const

f (→−

→−

задает семейство поверхностей равных значений (равного уровня)

 

 

 

 

 

X )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

функции f (→−

в пространстве переменных →− . Если фиксировать

 

 

X

 

, то уравнение

f (X ) = f (X

 

 

)

определит поверхность

точку →−

0

 

 

→−

 

→− 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

→−

 

 

 

→−

→−

 

)

 

равного уровня, проходящую через точку

X

0. Тогда

f (X

0

есть

вектор внешней нормали к этой поверхности в точке

→− 0, а урав-

нение касательной гиперплоскости к ней в точке →−

X

 

 

 

0

имеет вид

→− f (→−

 

 

→−

 

→−

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

T

X )(X

 

X ) = 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

0 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X )

выпукла и дифференцируема на вы-

 

 

Свойство 6. Если f (→−

пуклом множестве, то для любых двух точек →− →− 0 этого мно-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X , X

 

 

 

 

 

жества

 

 

 

→−

 

 

→−

 

) +

→−

→− →− →−

 

).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f (X )

f (X

0

 

T f (X

0

)(X

X

0

 

 

 

(9.10)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В одномерном случае это свойство совершенно прозрачно: вы-

пуклая функция располагается над касательной прямой в любой точке (рис. 9.8): f (x1) f (x0) + f (x0)(x − x0).

Рис. 9.8. Иллюстрация к свойству 6

Доказательство.

любого 0 λ 0

−→ f [(1 − λ)X

По определению выпуклой функции для

0 +

→−

]

 

(1

→−

0

→−

 

λX

 

 

λ)f (X

 

) + λf (X ).

32

Глава 9. Теория выпуклого программирования

Это неравенство может быть записано по-другому:

→−

0

→− →−

0

)]

 

→−

0) + λ[f (→−

→−

0

)].

(9.11)

f [X

 

+ λ(X X

 

 

f (X

X )

 

f (X

 

 

Введем обозначения для направления и длины шага:

d

=

→−

→−

0 ,

→−

 

X

X

 

 

 

 

 

 

 

 

 

→−

→−

0

 

 

 

X

 

X

 

 

→− →−

t = λ X − X 0 .

С учетом этого (9.11) перепишется в виде

 

 

f (→−

→−

 

→−

0

)

 

 

 

 

 

 

→− →−

0

X

+ t d )

f (X

 

 

→−

→−

0

).

 

t

 

 

 

X X

 

 

 

 

 

 

 

 

f (X )

 

f (X

 

−→

Переходя к пределу при t → +0 и учитывая, что d = 1, слева получаем производную по направлению:

−→ −→ −→ ∂f (X 0)X X 0 −→

∂ d

X )

f (X

0

).

(9.12)

f (→−

→−

 

Но производная по направлению равна проекции градиента на данное направление:

∂f (→−

 

)

 

→−

→−

 

→−

 

→−

→− →− →−

 

)

 

 

X

0

=

 

T f (X

0

) d

=

 

 

T f (X

0

)(X

X

0

.

(9.13)

→−

 

 

 

 

 

 

 

 

 

→− →− 0

 

 

 

d

 

 

 

 

d

 

 

 

 

 

 

X

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Подставляя (9.13) в (9.12), получаем (9.10).

Переходим к частным производным второго порядка. Матрица вторых частных производных (если они существуют), вычислен-

ных в точке

→−

, называется матрицей Гессе

3

или гессианом и

 

X

 

 

 

обозначается как

3Людвиг Гессе (Hesse, Ludwig Otto; 1811–1874) — немецкий математик, изучавший эту матрицу. Сам Гессе пользовался термином «функциональные детерминанты».

9.2.. Выпуклые функции и их свойства

 

 

 

 

 

 

 

 

33

 

 

 

 

2

 

 

 

 

 

f (→−

 

 

→−

 

 

 

 

 

 

 

 

 

∂x1

∂x1 . . .

 

∂x1

∂xn

 

 

 

 

 

 

 

 

 

 

2

 

X )

 

 

2f

(X )

 

 

 

 

X ) =

 

2f (X ) =

∂ f (→− )

=

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

→− →−

2

 

X

 

2f (X )

 

 

 

 

 

 

 

 

 

 

 

 

H(→−

 

→−

 

X

 

 

 

 

f (→− )

 

 

→−

 

.

 

 

 

 

 

 

 

 

 

 

 

. . . . . . . . .

 

 

 

 

 

 

 

X ∂X

 

 

 

 

 

. . .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

∂xn∂x1

 

∂xn∂xn

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X )

вы-

Свойство 7. Дважды дифференцируемая функция f (→−

 

пукла (строго выпукла) в окрестности точки →−

тогда и только

 

 

 

 

 

 

X )

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

неотрицательно (положи-

тогда, когда ее матрица Гессе H(→−

тельно) определена в этой точке.

Доказательство не приводим, его можно найти в любом учебнике по математическому анализу.

Напомним, что положительная (неотрицательная) определен-

ность матрицы A = (aij ) означает, что для любого вектора →−

 

 

i

 

 

 

 

Z

Z T A Z =

a

 

z

z

 

квадратичная форма →−

→−

j

ij

i

 

j строго положитель-

на (неотрицательна). Для проверки матрицы на положительную определенность существует критерий Сильвестра: матрица является положительно (неотрицательно) определенной, если все ее угловые миноры положительны (неотрицательны).

Квадратичная

Исключительно важную роль в нелинейном

функция

программировании играет многомерная квадратичная функция, общий вид которой вклю-

чает квадратичную, линейную составляющие и свободный член:

 

n n

n

 

1

 

 

 

X

d x x

+ c x

+a =

X T DX + c T X +a,

(9.14)

 

Q(→− ) =

ij i j

j j

 

2 →−

→− →− →−

 

i=1 j=1

i=1

 

 

 

 

 

где D — симметричная квадратная матрица (матрица квадратичной формы). Градиент и матрица Гессе для квадратичной функ-

ции равны соответственно

+

 

H(→− ) = 2

→− f (→− ) = →−

→−

 

X DX

 

 

 

 

c , X D.

34 Глава 9. Теория выпуклого программирования

Таким образом, выпуклость квадратичной функции целиком определяется определенностью матрицы D.

Можно показать (см., например, [16, с. 214]), что путем переноса начала координат в точку

−→ = 1 1−→

X 2 D c

можно избавиться от линейной составляющей, и в новой системе

координат →− функция (9.14) превращается в простую квадра-

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X :

тичную форму со свободным членом a , не зависящим от →−

→−

 

) =

→−

 

→−

 

+

 

 

 

 

 

 

 

=

 

1

c

 

 

c .

Q(X

 

 

X

 

T DX

 

 

 

,

где

 

 

 

4

→−

T d

→−

 

 

 

 

 

a

 

 

a a

 

 

 

 

1

 

Далее, поворотом координатных осей полученную квадратич-

ную форму можно привести к каноническому виду

 

 

 

 

 

 

Q(−→

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

) =

 

λ

(x

 

)2 + a

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=1

 

 

 

 

 

 

 

 

 

 

 

 

где λi — собственные числа матрицы D.

Форма поверхности равных значений целевой функции (в двумерном случае — изоцелевых линий) целиком определяется опре-

деленностью матрицы D и ее собственными числами.

→−

Если матрица положительно определена, то Q(X ) выпукла, все собственные числа вещественны и положительны. Поверхности равных уровней такой функции представляют собой много-

мерные концентрические эллипсоиды (в двумерном случае — эл-

→− →−

липсы) с центром в X , являющейся точкой минимума Q(X ). Размеры главных осей эллипсоидов определяются собствен-

ными числами M = λ1 λ2 · · · λn = m. Таким образом, степень сплющенности эллипсоидов определяется отношением наибольшего и наименьшего собственных чисел матрицы D, которое называется числом обусловленности (conditional number) матрицы и обозначается cond(D). Если cond(D) = Mm 1, то поверхности равных уровней близки к сферическим, если же cond(H) 1,

9.2.. Выпуклые функции и их свойства

35

то матрица относится к классу плохо обусловленных, вследствие чего эллипсоиды равных уровней сильно вытянуты. Как мы увидим в дальнейшем, плохая обусловленность существенно усложняет задачу минимизации квадратичной функции.

Направления главных осей эллипсоидов определяются собственными векторами, соответствующими собственным числам, при этом наибольшей полуоси соответствует наименьшее собственное число и наоборот.

П р и м е р 1. Пусть квадратичная функция двух переменных задана выражением

Q(x1, x2) = x21 + 3x22 + 2x1x2 4x1 6x2 + 4.5.

Отсюда

1

3

,

→−

=

6

D = 1

1

 

c

 

4 , a = 4.5.

Угловые миноры матрицы D положительны:

1 > 0,

1 3

> 0,

 

 

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

следовательно, функция Q(x1, x2) строго выпукла во всей бесконечной области определения. Для нахождения собственных чисел составим характеристическое уравнение

I = 1 λD − λ

1

3

1

λ

= λ2 4λ + 2 = 0.

 

 

 

Решая его, получаем M = λ1 = 3.4142; m = λ2 = 0.5858. Число

обусловленности cond(D) 5.83, следовательно, отношение боль-

ших и малых полуосей эллипсов равно cond(D) 2.41.

На рис. 9.9 изображено семейство изолиний данной квадратичной функции, при этом координаты общего центра эллипсов

36

 

 

Глава 9.

Теория выпуклого программирования

находятся в точке

 

→−

= 2

1

3

 

6 0.5

→−

 

 

2 D

1

X

 

=

1

 

1

c

1

1

1

4 = 1.5 .

 

 

 

 

 

 

 

 

Рис. 9.9. Пример выпуклой квадратичной функции

Для нахождения направлений главных осей эллипсов определим собственные векторы матрицы D, соответствующие найденным ранее собственным числам. Воспользовавшись процедурой вычисления собственных чисел матрицы из пакета MATLAB, получаем

→−

1

→−

2

= (

0.9239, 0.3827)T .

v

 

= (0.3827, 0.9239)T , v

 

 

Углы между направлениями главных осей эллипсоидов и любой из координатных осей можно измерить, применив формулу для

9.2.. Выпуклые функции и их свойства

37

вычисления углов между двумя векторами в евклидовом про-

странстве:

 

cos ϕ =

→− →− .

 

 

 

 

 

 

 

 

 

X , Y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

→− · →−

 

 

 

 

 

→−

→−

 

−→

 

X

Y

 

 

 

= →−

1 =

Если положить

1,

= →− 1

и учесть, что →−

1

 

X

= v

 

Y

 

e

 

 

v

 

e

 

= 1, получим выражение для угла между малой полуосью эллипса (ей соответствует б´ольшее собственное значение λ1) и осью абсцисс

cos ϕ = →−

1

→−1

0

v

 

, e

= (0.3827, 0.9239) 1 = 0.3827.

Отсюда ϕ = 67, 5(см. рис. 9.9). Заметим, что для случая двух переменных угол наклона эллипса можно определить непосред-

ственно по матрице D квадратичной формы: tg 2ϕ = 2d12

d11 − d22

[18, с. 66].

Продолжим пример и посмотрим, как ведет себя градиент.

→−

Возьмем точку X 0 = (3, 0.5)T . Градиент функции в этой точке равен

 

 

 

→−

 

 

 

6 1

3 0.5 9

→− Q(→−

0

) = c

→−

0

=

4

+ 2

1

1

3

=

9

 

X

 

+ 2DX

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

и направлен, как видно, влево и вниз. Соответственно вектор антиградиента направлен вправо и вверх (из-за недостатка места длины векторов на рисунке уменьшены).

Построим касательную к изолинии в данной точке. Ее уравнение имеет вид

→− Q(X0)(→− →− 0) = 9

T

x2

 

 

0.5

 

T

X

X

9

 

x1

+ 3

= 0.

 

 

 

 

 

 

 

 

 

 

 

Выполняя скалярное произведение, получаем уравнение прямой 9x1 9x2 22.5 = 0. Если привести его к виду уравнения в

38

Глава 9. Теория выпуклого программирования

 

отрезках, получим

x1

 

+

x2

 

= 1. То есть касательная отсекает

2.5

2.5

 

 

 

 

 

на осях координат x1, x2 отрезки 2.5 и 2.5, что мы и видим на

рис. 9.9.

 

 

 

 

 

 

 

 

П р и м е р 2. В качестве контрпримера рассмотрим квадратичную функцию Q(x1, x2) = x21 +3x22 +4x1x2, заданную матрицей

D =

1

2

.

2

3

 

 

Данная матрица не удовлетворяет критерию Сильвестра и имеет собственные числа λ1 = 0.24, λ2 = 4.23. Как следствие, функция невыпукла, ее изоцелевые линии представляют семей-

ство гипербол с общим центром в начале координат (рис. 9.10).

→−

Точка X = (0, 0)T является седловой точкой (saddle point), так как в ней функция Q(x1, x2) имеет минимум по одному направлению и максимум по другому.

100

80

60

40

20

5

0

 

 

 

 

 

−20

 

 

 

 

0

 

 

 

 

 

4

2

0

−2

−4

−5

3

2

1

0

−1

−2

−3

− 2

−3 −2 −1 0 2

6 10

20

30

40 50

60 70

6

2 0

− 1

−2

20

10 6 2 0

0 2 6 10

20

30

40 50

 

 

 

50

 

 

 

40

 

 

 

30

 

 

 

20

 

 

 

10

 

 

 

6

 

0

 

2

 

 

 

 

 

 

1

 

 

2

 

 

0

 

 

6

 

 

 

 

 

10

 

 

20

 

0

 

 

2

0

2 6

70 60

50 40

30 20

10 6 2

−2

− 3 − −2 1 0

Рис. 9.10. Трехмерный рельеф и изолинии невыпуклой квадратичной функции двух переменных

Оптимизация без ограничений

9.3.. Классические задачи оптимизации

39

9.3. Классические задачи оптимизации

Прежде чем исследовать общую задачу выпуклого программирования (9.1), рассмотрим ее упрощенные варианты, изучаемые в классическом курсе математического анализа. Все участвующие в постановке задач функции предполагаются при этом г л а д к и м и, т. е. непрерывно дифференцируемыми.

В простейшем случае ограничения на оптимизируемые переменные отсутствуют, и мы имеем задачу минимизации функции мно-

гих переменных в неограниченной области

−→

f (X ) = f (x1, . . . , xn) min, 0 < xj < ∞, j = 1, . . . , n.

Вкурсе математического анализа доказывается [15, с. 31], что

не о б х о д и м ы м условием локального минимума является равенство нулю всех частных производных (теорема Ферма):

→−

∂f (X ) = 0, j = 1, . . . , n. (9.15) ∂xj

Это равенство является условием первого порядка (first order condition) и может быть записано в компактной векторной форме

→− f (→−

 

 

X ) = 0.

(9.16)

 

Точки →−X , удовлетворяющие условию первого порядка, называются стационарными. Однако стационарность не обязательно связана с минимумом, стационарными являются точки как минимума, так и максимума, а также точки перегиба одномерных функций или седловые точки в многомерном случае.

Д о с т а т о ч н ы м условием локального минимума является

→−

положительная определенность матрицы Гессе H(X ) в стационарной точке. Этот факт представляется достаточно очевидным, так