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

Методы оптимизации

..pdf
Скачиваний:
48
Добавлен:
05.02.2023
Размер:
2.15 Mб
Скачать

11

1 Анализ экстремальных задач

1.1 Основные понятия и определения

Математическое программирование в самом общем виде можно определить как задачу оптимизации с ограничениями в пространстве Rn [2]:

f (x) min,

 

x

 

g j (x) 0,

j =1,2,..., J;

(1.1)

hk (x) = 0,

k =1,2,...,K;

 

x D Rn.

Вектор x D имеет компоненты x1, x2,..., xn , которые являются неизвестными задачи (1.1). В дальнейшем, если функция f (x) минимизируется по всем компонентам аргумента x , будем писать просто

f (x) min.

Запись

f (x) max

означает поиск максимума целевой функции (ЦФ). Однако в силу очевидного равенства

max f (x) = −min(f (x)),

(1.2)

не теряя общности, можно рассматривать только задачи на минимизацию. То есть задача максимизации функции сводится к задаче поиска минимума функции F (x) = − f (x).

Запись

f (x) extr означает поиск любого экстремума ЦФ.

·····························································

Функция f (x) называется целевой функцией (ЦФ, функцией

качества, критерием оптимальности), а множество условий g j (x), hk (x) и x D – ограничениями задачи.

·····························································

В качестве D часто выступает выпуклое множество.

12

·····························································

Выпуклым множеством D Rn называют такое множе-

ство, которое вместе с любыми двумя точками x1, x2 D и для произвольного числа µ [0,1] содержит также все точки x , удо-

влетворяющие соотношению

x= µ x1 + (1− µ) x2,

т.е. выпуклое множество должно содержать отрезок, соединяющий любые две точки такого множества [5–6].

·····························································

Примеры выпуклых множеств – куб, квадрат, круг, шар и др. (рис. 1.1).

x1

x2

x2

x1

Выпуклое множество

Невыпуклое множество

Рис. 1.1 – Выпуклость множеств

·····························································

Ограничения задачи

 

g j (x) 0,

j =1,2,..., J;

hk (x) = 0,

k =1,2,...,K;

x D Rn

образуют область допустимых решений (ОДР) S Rn . Точка x S тогда и только тогда, когда она удовлетворяет всем ограни-

чениям задачи.

Решением задачи (1.1) называют любой вектор x , удовлетворяющий ограничениям, т. е. x S .

Локальным экстремумом ЦФ f (x) называют вектор x S ,

если имеет место неравенство [6]

f (x)f (x) {x : x x < ε, ε > 0}

13

или

f(x )f (x) {x: x x < ε, ε > 0}.

Впервом случае имеем локальный минимум, во втором – локальный максимум.

Оптимальным решением или глобальным экстремумом задачи (1.1) называют вектор x* , минимизирующий значение f (x)

на множестве всех решений (глобальный минимум): f (x* )f (x),

или максимизирующий значение f (x) на множестве всех решений

(глобальный максимум):

f (x* )f (x)

для всех x S .

·····························································

В дальнейшем, в силу (1.2), говоря об экстремуме или оптимуме, будем подразумевать минимум, если не оговаривается иное.

·····························································

Всякая точка глобального минимума ЦФ f (x) является од-

новременно и точкой локального минимума этой функции, а точка глобального максимума ЦФ является одновременно и точкой локального максимума. Обратное утверждение, вообще говоря, неверно.

·····························································

Точность. Характеристикой точности полученного решения может служить величина абсолютного отклонения значения минимизируемой функции, достигнутого в точке xk S , от точного значения ее минимума на множе-

стве S :

 

δ(x) = f (xk )f (x* ), x S,

(1.3)

где f (x* ) – либо точное значение минимума ЦФ (f (x* )= min f (x)), либо по-

лученное «точным» алгоритмом.

Ясно, что чем меньше неотрицательная величина δ, тем точнее полученное решение. Недостатком использования абсолютной погрешности является то

14

обстоятельство, что она меняется при умножении ЦФ на положительную константу α : f (x) → α f (x) .

Целесообразнее использовать следующую оценку точности:

c =

f (xk )f (x* )

100%.

(1.4)

f (x* )

Алгоритм называется ε -приближенным, если выполняется неравенство

c ≤ ε.

Унимодальные функции. Многие методы оптимизации применимы только тогда, когда целевая функция f (x) является унимодальной, т. е. любой локальный минимум ЦФ одновременно является и глобальным [6].

Множество функций, унимодальных на отрезке [a,b], обозначим Q[a,b]. Существование локальных минимумов f (x), отличных от абсолютного,

почти всегда затрудняет поиск точки экстремума x* S , поэтому многие приближенные методы применимы тогда, когда любой локальный минимум функции f (x) является одновременно и глобальным. Одним из классов функций, удовлетворяющих этому условию, составляют унимодальные функции.

·····························································

Функция f (x) называется унимодальной на отрезке [a,b], если она непрерывна на [a,b] и существуют числа x1 и x2 , причем a x1 x2 b , такие, что:

если a x1, то на отрезке [a,x1] функция f (x) монотон-

но убывает;

если x2 b, то на отрезке [x2,b] функция f (x) монотон-

но возрастает;

при x [x ,x

] имеем

f (x) = f = min f (x).

1

2

 

x [a,b]

 

 

 

·····························································

Отметим, что возможно вырождение в точку одного или двух из отрезков [a,x1], [x1, x2 ] и [x2,b]. Некоторые варианты расположения и вырождения в точку отрезков монотонности и постоянства унимодальных функций представлены на рисунке 1.2.

15

a

x1

x2

b

a

x1 = x2

b

a

x1 = x2 = b

a = x1 = x2

b

 

Рис. 1.2 – Примеры унимодальных функций

 

Очевидно, что в некоторых вырожденных случаях ЦФ

f (x) не является

дифференцируемой на отрезке [a,b].

 

Для проверки унимодальности функции

f (x) на практике обычно ис-

пользуют следующие критерии:

 

если функция f (x) дифференцируема на отрезке [a,b] и производная

f (x) не убывает на этом отрезке, то

f (x) Q[a,b];

если функция f (x) дважды дифференцируема на отрезке [a,b] и вторая производная f ′′(x) 0 при x [a,b] , то f (x) Q[a,b].

Если эти критерии не выполняются, то функция f (x) является мультимодальной или многоэкстремальной.

Выпуклые и вогнутые функции. Функция f (x) выпукла («выпукла вниз») на [a,b], если справедливо неравенство Иенссена

f

 

1

+ (1− µ)x

2

 

 

1

)+ (1− µ)

f (x

2

)

(1.5)

µx

 

 

≤ µf (x

 

для произвольных x1,x2 [a,b]

и µ [0,1]

(рис. 1.3, а).

 

 

 

 

 

 

 

 

16

 

 

 

 

Геометрически это

означает,

что все точки функции f (x)

для

всех

x [a,b]

лежат

ниже

прямой

µf (x1)+ (1− µ) f (x2 ) для

любых

точек

x1, x2 [a,b].

 

 

 

 

 

 

 

На практике обычно используют следующие критерии:

 

 

 

1)

одномерный случай: дважды дифференцируемая функция

f (x) вы-

 

пукла на [a,b], если вторая производная f ′′(x) 0 при всех x [a,b] ;

2)

многомерный случай (критерий Сильвестра): если функция

f (x) два-

 

жды дифференцируема на выпуклом множестве D Rn

и все угловые

 

миноры матрицы Гессе – матрицы вторых производных

H f (x) =

 

= ∂2 f (x)

(xixj ) – положительны при x D , то функция

f (x) вы-

 

пукла на множестве D .

 

 

 

 

 

Если F (x) = − f (x), и при этом функция f (x)

является выпуклой, то

функция

F (x) будет вогнутой («выпуклой вверх»)

(рис. 1.3,

б). Обратное

утверждение также верно. Соответственно, для одномерного случая вторая производная вогнутой функции f ′′(x) 0 . Для многомерного случая учитываем, что при изменении знака функции меняются также знаки всех элементов матрицы Гессе: HF (x) = −H f (x).

·····························································

Какими будут знаки угловых миноров вогнутой функции?

·····························································

а)

б)

Рис. 1.3 – Пример (а) выпуклой и (б) вогнутой функции

17

·····························································

Функция называется строго выпуклой, если неравенство (1.5) является строгим для всех µ (0,1) и x1 x2 .

·····························································

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

n n

n

 

f (x) = ∑∑xiaij xj + bj xj + c,

 

i=1 j=1

j=1

 

или, в матричном виде,

 

 

f (x) = 1 xT Ax + bT x + c,

(1.6)

2

где x и b есть вектор-столбцы размерности n ; A – симметричная матрица (n× n);

c – константа.

Градиент и матрица Гессе функции (1.6) равны, соответственно, grad f (x) = Ax + b,

H f (x) = A.

Таким образом, для того чтобы функция (1.6) была выпуклой в Rn , достаточно, чтобы матрица A была положительно определена.

·····························································

Критерии определенности матриц (теорема Сильвестра) [9]. Положительная определенность:

все диагональные элементы матрицы должны быть положительны;

все ведущие главные определители должны быть поло-

жительны.

Положительная полуопределенность:

все диагональные элементы неотрицательны;

все главные определители неотрицательны.

Главный определитель – это определитель главного минора.

·····························································

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

18

∆ = a

> 0, ∆

 

=

a11

a12

> 0, K, ∆

 

=

 

A

 

> 0.

 

 

 

 

1 11

 

2

 

a21

a22

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

Соответственно, если у положительно определенной матрицы изменить знаки всех элементов (A′ = −A), то она станет отрицательно определенной. Если это сделать для положительно полуопределенной матрицы, то она станет отрицательно полуопределенной.

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

∆ = a < 0,

 

=

 

a11

a12

 

> 0,

 

=

a11

a12

a13

< 0, K,

 

= (1)n

 

> 0.

 

 

 

 

 

 

 

 

 

 

a

a

a

 

A

1 11

2

 

 

a

a

 

 

3

 

21

22

23

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

21

22

 

 

 

 

a31

a32

a33

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

·····························································

Каким будет критерий отрицательной полуопределенности матрицы?

·····························································

·····························································

Стационарной точкой функции f (x), где x Rn , называет-

ся такая точка x , в которой функция непрерывна, а ее градиент

обращается в ноль:

grad f (x) x=x = 0.

Критический точкой функции f (x), или подозрительной

на экстремум точкой, называется точка x , которая либо является стационарной, либо градиент в ней

grad f (x) x=x

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

·····························································

Для функций скалярного аргумента, соответственно, исследуют производную, а не градиент.

19

·····························································

Если критическая точка не соответствует локальному экс-

тремуму (минимуму или максимуму), то она является седловой

точкой.

·····························································

······················ Пример 1.1 ························

Дана функция f (x) = −x12 + x22 + x1x2 + x1 + x2 . Классифицировать точку x = (0,2;0,6)T .

Решение.

Вычислим градиент функции в точке x = (0,2;0,6)T :

grad

2x1 + x2 +1

 

 

 

0

f (x) =

 

 

 

 

=

.

 

x1 + 2x2 +1

 

 

0,2

 

 

0

 

 

 

x=

−0,6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таким образом, точка x = (0,2;0,6)T

является подозрительной на экс-

тремум. Для того чтобы идентифицировать эту точку, т. е. определить, является ли она точкой максимума (минимума) или седловой точкой, вычислим матрицу Гессе:

 

 

2 f

2 f

 

 

 

 

 

 

 

x12

 

 

2

1

 

 

H =

 

x1x2

 

2 f

2 f

 

=

1

2

.

 

 

 

 

 

 

 

 

x2

 

 

 

 

 

 

x

x

 

 

 

 

 

 

 

 

 

 

 

 

 

2

1

 

2

 

 

 

 

 

Минор первого порядка 1 = −2 < 0 , минор второго порядка 2 = −2 2 1 1= −5 < 0. Следовательно, матрица Гессе не является ни положительно определенной, ни отрицательно определенной. Поэтому точка x = (0,2;0,6)T является седловой точкой.

·······································································

······················ Пример 1.2 ························

Дана функция

f (x) = x2

+ x2

+ x x

+ x + x

. Классифицировать точку

 

1

2

1

2

1

2

 

x = (13;13)T .

20

Решение.

Вычислим градиент функции в точке x = (13;13)T :

grad

2x + x +1

 

 

0

f (x) =

1 2

 

 

 

=

.

 

x1

+ 2x2

+1

 

−1/3

 

0

 

 

 

 

x=

 

 

 

 

 

 

 

 

 

 

 

 

 

 

−1/3

 

 

Таким образом, точка x = (1 3;1 3)T

является стационарной. Для того

чтобы идентифицировать эту точку, вычислим матрицу Гессе:

 

 

 

2 f

2 f

 

 

 

 

 

 

x12

 

 

2

1

 

 

 

H =

 

 

x1x2

 

 

2 f

2 f

 

=

.

 

 

1

2

 

 

 

 

 

 

x2

 

 

 

 

x

x

 

 

 

 

 

 

 

 

 

 

2

1

 

2

 

 

 

Минор первого порядка

1 = 2 > 0, минор второго порядка 2 = 2 2 −

1 1= 3 > 0. Следовательно, матрица Гессе является положительно определенной. Поэтому точка x = (13;13)T является точкой минимума.

·······································································

······················ Пример 1.3 ························

Дана функция f (x) = −x12 x22 + x1x2 + x1 + x2 . Классифицировать точку x = (1;1)T .

Решение.

Градиент функции в точке x = (1;1)T равен

grad

2x + x +1

 

0

,

f (x) =

1 2

 

 

=

 

 

 

x1

+ 2x2 +1

1

 

0

 

 

 

 

 

 

x=

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

т. е. точка x = (1;1)T является стационарной. Идентифицируем эту точку:

 

 

2 f

2 f

 

 

 

 

 

 

 

x12

 

 

−2

1

 

 

H =

 

x1x2

 

2 f

2 f

 

=

1

−2

.

 

 

 

 

 

 

 

 

x2

 

 

 

 

 

 

x

x

 

 

 

 

 

 

 

 

 

 

 

 

 

2

1

 

2