Материал: Бородакий Нелинейное программирование в современных задачах оптимизации 2011

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

Рис. 1.14. Блок-схема метода покоординатного спуска с удвоением шага

Задача 2. Найти методом покоординатного спуска с одномерной минимизацией по каждой координате минимум функции

f (x) = x12 + x22 4x1 +5

с точностью ε = 0,01.

41

Решение. Схему решения задачи можно представить в виде следующей последовательности действий.

Выберем начальную точку с координатами: x10 =1, x20 =1.

Значение целевой функции, соответствующее этой точке f 0 = 4 .

Цикл k = 0 . Итерация i =1:

 

 

 

 

x1 меняется;

 

 

 

 

x2 =1,

 

 

 

 

необходимо найти min{f (x1 ) = x12 4x1 + 7}.

x1

 

 

 

 

 

Из условия экстремума:

 

 

 

 

 

 

 

f

= 2x 4 = 0 x = 2 .

 

 

 

 

 

x1

1

1

 

 

Итак:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

= 2;

f 1 = 3,

 

f 1 f 0

 

=1 > ε .

1

 

 

 

 

 

x2

=1,

 

 

 

 

 

 

 

 

 

 

 

 

Итерация i = 2 :

x1 = 2;

x2 меняется,

необходимо найти min{f (x2 ) = x22 +1}.

x2

Из условия экстремума:

xf2 = 2x2 = 0 x2 = 0 .

Итак:

 

 

 

 

 

 

 

x

= 2;

f 2

=1,

 

f 2 f 1

 

= 2 > ε .

 

 

1

 

 

 

x2 = 0,

 

 

 

 

 

 

 

 

 

 

 

 

Цикл k =1 .

 

 

 

 

 

 

 

Соответственно:

 

 

 

 

 

 

 

итерация i =1:

 

 

 

 

 

 

 

x1 меняется;

x2 = 0.

42

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

{ f (x1 ) = x12 4x1 +5}.

Минимум этой функции достигается при x1 = 2 , а само

значение критерия

f 3 = f (x

= 2, x

= 0) =1.

Итак:

 

 

 

 

 

1

2

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

= 2;

f 3

=1,

 

f

3 f 2

 

= 0 < ε .

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

*

x2 = 0,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= 0;

 

 

 

 

 

 

 

 

Ответ:

x

 

f * =1.

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

*

= 0.

 

 

 

 

 

 

 

 

 

x2

 

 

 

 

 

 

 

 

Линии уровня, соответствующие рассматриваемой функции приведены на рис. 1.15.

Рис. 1.15. Линии уровня функции

f (x) = x12 + x22 4x1 +5

1.3.1.2. Метод ортонормальных направлений (метод Розенброка)

В этом методе в каждом цикле производится поиск вдоль n взаимно ортогональных направлений. После завершения цикла с помощью процедуры Грама – Шмидта строится новая система ортогональных направлений. Преимущество этого метода состоит в следующем. Если целевая функция имеет узкий искривленный гребень (точнее, овраг), то поиск по n взаимно ортогональным направлениям эффективен тем, что результирующее направление стремится расположиться вдоль оси оврага. Это существенно ускоряет процесс по сравнению с методом покоординатного спуска.

43

Рассмотрим процедуры, выполняемые на k -м цикле метода. Пусть в начале цикла имеется точка x0k , числа λ1 , λ2 , , λn

 

 

 

ˆk

ˆk

ˆk

– единичные

векторы,

задающие

длины шагов, S1 ,

S2

,, Sn

направления

 

поиска

экстремума.

(Для

первого

цикла

x01 ,

λ1 , λ2 , , λn

выбираются произвольно, направления, как правило,

совпадают с координатными осями.)

 

 

 

 

 

 

 

 

ˆk

делается шаг λ1 λ1 .

 

 

 

 

В направлении S1

 

 

 

 

Если

 

k

ˆk

)

 

k

то

шаг считается

успешным

и

f (x0

1S1

f (x0 ) ,

 

 

 

 

 

 

 

 

k

k

k

ˆk

. Величина

полученная точка занимает место x0

, т.е. x0

= x0 1S1

λ1 умножается на

 

число

α (α > 1, обычно α = 3),

т.е. теперь

λ1 = αλ1 .

 

ˆk

 

 

 

 

 

 

 

 

 

 

Если

k

 

)

 

k

) , то шаг считается неуспешным, точка

f (x0

+ λ1S1

> f (x0

x0k остается без изменений, а величина λ1 умножается на число β

(β < 0, обычно β = −0,5 ), т.е. λ1 = βλ1 .

Далее та

же

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

направлений

ˆk

ˆk

S2 ,, Sn . В результате будет получена новая точка

x0k и совокупность шагов λ1 , λ2 , , λn тоже новая. Затем снова

ˆk

и задаем шаг либо αλ1 , либо

возвращаемся к направлению S1

βλ1 в зависимости от того, успешным или неуспешным был шаг до

этого.

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

Второй этап цикла состоит в выборе исходных данных для следующего цикла.

В качестве начальной точки следующего цикла x0k +1 берется последняя успешная точка.

В качестве шагов λi , i =1, n, – последние получившиеся значения. После этого выбираются новые направления.

44

Строится система векторов:

 

ˆk

ˆk

ˆk

 

 

q1 = Λ1S1

+ Λ2 S2 +…+ Λn Sn ;

 

 

q2

=

ˆk

ˆk

;

 

Λ2 S2

+…+ Λn Sn

 

 

 

ˆk

 

qn

=

 

,

 

Λn Sn

здесь Λi – алгебраическая сумма длин успешных шагов по i-му

направлению.

Если изобразить условно направления на плоскости, то получим схему, показанную на рис. 1.16.

Рис. 1.16. Графическое представление метода Розенброка на одной из итераций

Как видно из рисунка, вектор q1 соединяет точку, в которой

процесс находился в начале цикла, с точкой, в которую он попал в конце цикла.

Данная система векторов q1 ,, qn ортогонализируется с

помощью процедуры Грама – Шмидта.

В качестве начального (первого) направления принимается q1

(так как это направление располагается вдоль предполагаемого гребня функции).

Процедура ортогонализации Грама – Шмидта. Пусть имеем n

векторов q1 , , qn . Необходимо получить n единичных

ˆk

ˆk

ортогональных векторов S1

,, Sn .

 

45

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