Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мотс 2.pdf
Скачиваний:
66
Добавлен:
24.02.2016
Размер:
1.96 Mб
Скачать

На рис. 4.6 F ' (z) < 0 , поэтому следующий интервал, на котором ищется экстремум функции [z, N ] и «секущая» проводится через точки F ' (z) и F ' (N) , находится очередное приближение z1 к экстремуму и т.д.

4.1.4. Методы полиномиальной аппроксимации. Логическая структура по-

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

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

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

Основная идея методов: по информации о m испытаниях (xi , F (xi )), i =1, m строится аппроксимирующий полином ϕ(x) степени n m 1, который

используется для оценивания координаты точки экстремума.

Качество оценок координаты точки оптимума можно повысить двумя методами:

1)использование полинома более высокого порядка;

2)уменьшение интервала аппроксимации.

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

Метод квадратичной аппроксимации. Для трех точек испытаний ( m = 3 )

x1, x2 , x3 в качестве полинома ϕ(x) используется квадратичная функция

 

ϕ(x) = α0 + α1(x x1) + α2 (x x1)(x x2 ) .

(4.11)

Величины α0 , α1 и α2 должны быть такими, чтобы значения ϕ(x) и F(x)

совпадали в трех точках

x1, x2 , x3 .

Значения F(x) в этих точках считаются из-

вестными, т.е.

F(x1) = F1 , F(x2 ) = F2 ,

F(x3 ) = F3 . Так как

ϕ(x1 ) = α0

и

ϕ(x1 ) = F1, то

 

 

 

 

 

 

 

 

 

α0 = F(x1 ) .

(4.12)

При x = x2

имеем

ϕ(x2 ) = α0

+ α1 (x2

x1 ) = F(x1 ) + α1 (x2

x1 ) = F2 ,

от-

сюда

 

 

 

 

 

 

60

 

 

 

 

 

 

 

 

α

=

F2 F1

.

 

 

 

 

 

 

 

 

 

 

 

(4.13)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

x2 x1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вычисляем ϕ(x3 ) в точке x = x3 :

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ϕ(x

3

) = F

+

(F2 F1)(x3 x1)

+ α

2

(x

3

x

)(x

3

x

2

) = F .

 

 

 

1

 

(x2

x1)

 

 

 

 

 

 

 

 

 

 

 

1

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Тогда величина α2 определяется выражением

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

F3 F1

 

 

F2 F1

 

 

 

 

 

 

 

 

α

 

=

 

 

 

 

 

 

.

 

(4.14)

 

 

 

 

 

 

x

 

x

 

 

 

 

 

 

 

 

 

2

 

 

3

2

 

x

3

x

 

 

x

2

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

1

 

 

 

 

 

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

тремума приравнивается к нулю первая производная полинома ϕ(x) :

ddxϕ = α1 + 2α2 x − α2 (x1 + x2 ) = 0 ,

тогда оценочное значение xˆ координаты точки экстремума вычисляется следующим образом:

xˆ =

α2(x1 +x2) −α1

=

x2 +x1

1

(F2 F1)(x3 x2)(x3 x1)

 

.

(4.15)

 

2α2

2

 

2 (F3 F1)(x2 x1) (F2 F1)(x3 x1)

 

 

Как правило, точки x* и xˆ точно не совпадают. При поиске минимума унимодальной функции с высокой степенью точности ε необходимо последовательно применять сначала методы сокращения интервала неопределенности, а затем методы полиномиальной аппроксимации.

Пусть задана совокупность удачных точек a, x0 , b . На рис. 4.7 приведена

блок-схема алгоритма, реализующего поиск минимума унимодальной функции F(x) с использованием квадратичной аппроксимации и метода сокращения ин-

тервала неопределенности.

Метод кубической аппроксимации. Для четырех точек испытаний поиск минимума можно вести с помощью метода кубической аппроксимации. В качестве аппроксимирующего полинома ϕ(x) используется кубическая парабола

ϕ(x) = α

0

+ α x + α

2

x2 + α

x3 .

(4.16)

 

1

3

 

 

61

Начало

ak =a;xk =x0;bk =b

Вычисляются

F1 =F(ak );F2 =F(xk );F3 =F(bk )

Вычисляется xˆ повыражению(4.15)

F(bk)

F(ak)

F(xk) F(xˆ)

ak

xk

xˆ

bk

 

 

да

ak = xk F1 = F2 xk = xˆ F2 = F(xˆ)

 

Вычисляется F(xˆ)

нет

xˆ

да

 

< xk

F(xˆ) < F(xk )

нет

нет F(xˆ) < F(x )

 

 

k

F(bk)

F(ak) F(xk)F(xˆ)

ak xk xˆ bk

bk =xˆ F3 =F(xˆ)

F(ak)

F(x1) F(b1)

F(xˆ)

ak xˆ xk bk

ak =xˆ F1 =F(xˆ)

F(ak)

F(bk)

F(xˆ)

F(xk)

akда xˆ xk bk

bk = xk F3 = F2 xk = xˆ F2 = F(xˆ)

нет

bk ak <ε

да

Конец

Рис. 4.7. Блок-схема алгоритма поиска минимума унимодальной функции

62

Не нарушая общности, можно предположить, что рассматриваются точки на

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

 

= 0;

xk = k ; xr

= r ; bk = 1, где 0 < k < r < 1.

 

 

Взяв эти точки в качестве узлов аппроксимации, для определения коэффици-

ентов α в полиноме (4.16) можно составить систему линейных уравнений:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

F(ak ) = α0 ;

 

 

 

 

 

 

 

 

 

 

 

 

 

F(xk ) = α0 + α1k + α2k 2 + α3k 3 ;

 

 

 

 

 

 

 

 

 

 

F(x

r

) = α

0

+ α r + α

2

r

2 + α

3

r3 ;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

F(bk ) = α0 + α1 + α2 + α3 ,

 

 

 

 

 

 

из которой можно найти α1, α2 , α3 .

 

 

ϕ(x)

 

определяется

из

 

выражения

 

 

Точка минимума

 

полинома

 

 

 

 

 

dϕ

= α1 + 2α2 x + 3α3 x2 = 0 , тогда оценочное значение

xˆ точки

x*

определится

 

 

 

dx

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

как решение квадратного уравнения

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xˆ

 

=

2α

2

± 4α2

12α α

 

 

(4.17)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

1 3 .

 

 

 

 

 

 

 

 

 

 

 

1,2

 

 

 

 

 

6α3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Для существования решения должно выполняться неравенство α2

3α α

3

. В

 

 

 

d 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

1

 

точке минимума

ϕ

= 2

α

2

 

+ 6α

3

xˆ > 0 .

 

Если

 

интервал

не

единичный,

 

 

 

dx 2

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

то xˆ = ak + (bk ak )xˆ1 .

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

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

Аппроксимирующая кубическая функция записывается в виде

ϕ(x) = α0 + α1 (x x1 ) + α2 (x x1 )(x x2 ) + α3 (x x1 )2 (x x2 ) . (4.18)

Коэффициенты αi подбираются так, чтобы значение ϕ(x) и ее производных в точках x1 и x2 совпадали со значениями F(x) и F ' (x) в этих точках:

63

dϕ

= α

1

+ α

2

(x x ) + α

2

(x x

2

) + α

3

(x x )2 + 2α

3

(x x )(x x

2

) ; (4.19)

 

dx

 

1

 

 

1

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ϕ(x1 ) = F(x1) = α0

;

 

 

 

(4.20)

 

 

 

 

 

ϕ(x2 ) = F(x2 ) = α0 + α1(x2

x1) ;

 

 

 

(4.21)

ϕ' (x1) = F ' (x1) = α1 + α2 (x1 x2 ) ;

ϕ' (x2 ) = F ' (x2 ) = α1 + α2 (x2 x1 ) + α3 (x2 x1 )2 .

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

Далее необходимо действовать по аналогии со случаем квадратичной функ-

ции.

4.2. Поиск безусловного экстремума функций многих переменных

Задача формулируется следующим образом: найти значения переменных x1, x2,…, xn , доставляющие экстремум скалярной целевой функции F(x1, x2,…, xn), если ограничения на переменные отсутствуют. Удобно предположить, что функция F и ее производные существуют и непрерывны.

Рассмотрим некоторые фундаментальные понятия, используемые при поиске экстремума.

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

 

F

 

F

 

F

 

F(x)Т =

 

,

 

,K,

 

 

. Направление вектора градиента совпадает с направле-

 

 

 

 

x1

 

x2

 

xn

 

нием наискорейшего

возрастания функции. Вектор противоположного знака

F(x) называется антиградиентом, его направление совпадает с направлением наискорейшего убывания функции.

Матрица вторых производных 2 F(x) – это симметричная квадратная матрица порядка n вторых частных производных функции F(x). Эту матрицу называют матрицей Гессе и обозначают H (x) = 2 F(x) . Ее элемент, расположенный

на пересечении i-й строки и j-го столбца, равен 2 F .

xix j

64

Необходимые и достаточные условия существования экстремума. Пусть

хТ=[x1 , x2,…, xn] – вектор переменных. Для наличия в точке x* локального минимума (максимума) необходимо, чтобы выполнялось равенство F(x*) = 0 и мат-

рица Гессе H (x*) = 2 F(x*) была положительно (отрицательно) полуопределен-

ной, т.е. xT Hx 0 ( xT Hx 0 ).

Достаточным условием существования минимума (максимума) в точке x* является положительная (отрицательная) определённость матрицы Гессе в этой точ-

ке, т.е. xT Hx > 0 ( xT Hx < 0 ).

Методы решения задач безусловной оптимизации можно разделить на три класса:

1.Методы прямого поиска, основанные только на вычислении значений целевой функции.

2.Градиентные методы, в которых используются значения первых производных F(x).

3.Методы второго порядка, в которых наряду с первыми производными используются также вторые производные функции F(x).

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

4.2.1. Метод Нелдера-Мида. Метод является одним из методов прямого поиска по симплексу. Суть его в следующем.

В области допустимых значений переменных выбирается начальная точка и оценивается значение целевой функции в определённых точках, окружающих базовую. «Наилучшая» из исследуемых точек принимается начальной на следующем шаге. В качестве точек эксперимента выбираются вершины симплекса. Симплекс в N-мерном пространстве представляет собой многогранник, образованный N+1 равноотстоящими друг от друга точками-вершинами. В случае двух переменных симплексом является равносторонний треугольник, в трёхмерном пространстве треугольная пирамида и т.д.

На рис. 4.9, а в виде равностороннего треугольника с вершинами x0, x1 и x2 приведен симплекс для функции двух переменных. В каждой из вершин симплекса оценивается значение целевой функции и при поиске минимума определяется вершина, которой соответствует наибольшее значение функции. Пусть это будет вершина x1. Далее находится середина отрезка x0 x2 (центр тяжести) xC, и точка x1 проецируется через неё в новую точку x3, которая используется в качестве вершины при построении нового симплекса ( x0 x2 x3 ).

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

65

x0

 

 

x0

 

 

 

x1

x3

x1

 

x

нов

z

xC

 

xC

 

 

 

 

 

 

 

x2

 

 

x2

 

 

а

 

 

б

 

 

x0

 

 

 

 

 

 

x1

z

x

нов

 

 

 

xC

 

 

 

 

 

 

 

 

 

 

x2

 

 

 

 

 

 

в

 

 

 

 

Рис. 4.9. Растяжение и сжатие симплекса:

а – нормальное отражение, α = 2 ; б – растяжение, α = 3; в – сжатие, α = 1,5

Для построения симплекса, кроме начальной точки, необходимо задать масштабный множитель (коэффициент) α. При α = 1 ребра симплекса имеют единичную длину.

В N-мерном пространстве координаты вершин вычисляются по формуле

x0

+ δ1,

если

j i,

 

j

 

 

 

xi =

 

+ δ2 ,

если

j = i,

x0

 

j

 

 

 

Здесь

δ1

 

(N +1)1 / 2 + N 1

α;

=

N 2

 

 

 

 

 

i =

1, N

, j =

1, N

.

(4.22)

δ2

 

(N +1)1 / 2

1

α.

=

N 2

 

 

 

 

 

Пусть xk – точка, подлежащая отражению. Центр тяжести остальных N точек

расположен в точке xc =

1

N

i k . Отражение вершины симплекса осуществ-

xi ,

N

 

i

 

 

ляется вдоль прямой, проходящей через xk, xc, и задается формулой

 

 

 

 

x = xk + α(xc xk ).

(4.23)

66

При α = 0 получаем исходную точку xk , при α = 1 получаем центр тяжести xС. Для того чтобы отражение было симметричным, для получения новой вершины хНОВ принимают α = 2 , тогда xнов = 2xc xk предыд.. Проиллюстрируем вычислительную схему метода на примере функции, зависящей от двух переменных.

Пример 4.4. Минимизировать F(x) = x2

2x

+ x

2

2 4x

2

+5.

 

 

 

 

 

 

1

 

 

1

 

 

 

Пусть x0 =[0,0] и

α = 2 . Тогда

 

 

 

 

 

 

 

 

 

 

δ =

 

3 +1

2

=1,932;

δ

 

=

 

3 1

2 = 0,518 .

 

 

2

 

 

 

1

 

 

 

 

2

 

 

 

 

 

2 2

 

 

 

 

 

 

2

 

 

 

На основании этих значений вычисляются координаты двух других вершин симплекса:

x11 = x10 + δ1 =x12 x20 + δ2

x12 = x10 + δ1 =x22 x20 + δ2

0 + 0,518

0,518

 

+1,932

 

=

;

0

 

1,932

 

 

 

 

 

 

0 +1,932

 

1,932

 

 

 

 

=

.

0

+ 0,518

0,518

 

 

 

 

 

Целевая функция в вершинах симплекса определяется следующими величинами: F(x0 ) = 5 ; F(x1 ) = 0,237; F(x2 ) =3,066 . Максимальное значение функция цели имеет в вершине x0, поэтому точку x0 необходимо отразить относительно

центра тяжести двух остальных вершин симплекса

xc =

1

(x1 + x2 ) , тогда новая

 

 

 

 

 

 

 

 

 

 

 

2

 

точка x3 при α = 2 определится выражением x3 = 2xc + x0 = x1 + x2 x0:

x3

 

0,518

1,932

 

 

0

2,45

 

1

 

=

 

+

 

 

=

.

 

3

 

1,932

 

0,518

 

0

2,45

x2

 

 

 

 

 

 

 

 

 

В полученной точке F(x3 ) = 2,3 , т.е. наблюдается уменьшение целевой

функции.

В новом симплексе x1, x2 и x3 наибольшее значение F(x) соответствует точке x2, поэтому её следует отразить относительно центра тяжести точек x1 и x3. Итерации продолжаются до тех пор, пока разности между значениями функции в вершинах становятся достаточно малыми.

67