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

1391

.pdf
Скачиваний:
14
Добавлен:
13.02.2021
Размер:
1.92 Mб
Скачать

121

где

 

d j

длина

шага

по

направлению

 

S j .

Новый

набор направлений

1

2

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S , S , , S строится с помощью процедуры Грамма – Шмидта следующим

образом:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S j , если d

i

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A j n

 

 

если di 0 ,

 

 

 

 

 

 

 

 

 

 

 

di S i ,

 

 

 

 

 

 

 

 

 

 

i j

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A j ,

при j 0 ,

 

 

 

 

 

 

 

 

 

 

 

 

 

B

j

 

 

j 1

 

i

 

i

 

 

(11.78)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A j

( A j )t

S

 

S

,

при j 2

,

 

 

 

 

 

 

 

 

 

i 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

j

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S

B j /

B j

 

,

 

 

где

 

B j

 

[( B j

)t

B j

]1 / 2 - норма вектора.

 

 

 

 

 

 

 

 

Пояснений требуют лишь формулы построения ортонормированных

векторов B j .

Так, в соответствии с процедурой ортогонализации Грамма – Шмидта, если известен набор векторов A1 , A2 , , An , то новая система

ортонормальных векторов B j строится как линейная комбинация этих векторов:

B1 A1 ,

B2 A2 21 A1 ,

j 1

B j A j ji Ai . i 1

Первый вектор новой системы берется, согласно (11.78), совпадающим

с первым вектором старой системы B1 A1 .

Следующие вектора определены как линейная комбинация предыдущих векторов старой системы. Для определения коэффициента 21

второго уравнения образуем произведение ( B2 )t B1 , в результате имеем

( B2 )t B1 ( A2 21 A1 )t B1 0 .

Отсюда получаем

21 [( A2 )t B1 ] /[( A1 )t B1 ] [( A2 )t B1 ] /[( B1 )t B1 ] .

В результате второй вектор новой системы запишется

B2 A2 [( A2 )t B1 ] /[( B1 )t B1 ] A1 ,

или учитывая, что A1 B1 и выражение для нормы вектора, можем записать

122

B2 A2

[( A2

1

1

)t B ] B .

Производя аналогичные операции с последующими уравнениями,

получаем следующее обобщенное выражение

j 1

i

i

B j A j [( A j )t B ] B ,

i 1

что полностью объясняет процедуру формирования новой системы векторов из (11.78). Нормировку, вновь образованных векторов, можно производить последовательно в процессе получения либо в конце процедуры.

Алгоритм Розенброка с линейным поиском по направлению.

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

Начальный этап. Пусть 0 – скаляр, используемый в условии остановки. Выбираем в качестве S1 , S 2 , , S n исходные направления поиска, обычно это столбцы единичной матрицы. Задаѐмся начальным значением X 1

, полагаем Y1 X 1 ,

j k 1 , где j – номер направления поиска,

k – номер

итерации и переходим к основному этапу.

 

 

 

 

 

 

Основной этап:

 

 

 

 

 

 

 

 

 

 

 

Шаг 1.

 

Найти

d j - оптимальное решение задачи минимизации

F( Y j d

j

S j )

в

 

заданном

направлении

и

положить

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y j 1 Y j

d

j

S j . Если j n , то j j 1 и вернуться к шагу 1, иначе

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

перейти к шагу 2.

 

 

 

 

 

 

 

 

 

 

 

Шаг 2. Положить X k 1 Y n 1 - последний вектор,

найденный на

первом

шаге.

Если

 

X k 1 X k

 

,

то

остановиться,

в

противном

 

 

случае

положить

Y 1 X k 1 , заменить

k k 1 ,

положить

j 1 и

перейти к шагу 3.

Шаг 3. Построить новое множество линейно независимых и ортонормированных направлений в соответствии с (11.78). Обозначить

новые направления через S1 , S 2 , , S n и вернуться к шагу 3.

Как видно из приведенного алгоритма, при его реализации необходимо запоминать текущие направления и значения оптимальных шагов одномерных поисков, из которых в соответствии с первой частью выражений (11.78), строятся предварительные вектора новых направлений, ортогонализуемые затем с помощью процедуры Грамма - Шмидта.

Дискретный вариант алгоритма Розенброка. Теперь рассмотрим алгоритм Розенброка с дискретным шагом. Как уже отмечалось, предложенный Розенброком метод не использует одномерную минимизацию, вместо этого

123

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

Приведем алгоритм этого варианта метода.

 

 

 

Начальный этап. Выбрать

число 0 , для

остановки

алгоритма,

коэффициент

растяжения 1 ,

обычно

3 и

коэффициент сжатия

( 1, 0 ),

обычно 0.5 . Взять в

качестве

S1 , S 2 , , S n

исходные

направления поиска, обычно это столбцы единичной матрицы и выбрать

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 , 2 , , n

0 -

начальную длину шага вдоль каждого из направлений,

например 5% от номинального значения. Выбрать начальную точку

X 1 ,

положить Y1 X 1 ,

j k 1 ,

 

где j - номер направления поиска, k -

номер

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

итерации. Положить j j

 

для всех

 

j и перейти к основному этапу.

 

 

 

 

Основной этап:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Шаг

1.

Если

F( Y j

j

S j

) F( Y j ),

то

шаг

по

 

j -

 

му

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

направлению

считается

успешным.

Положить Y j 1 Y j

j

S j

и

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

заменить

 

j

на

j

. Если

 

же

F( Y j

j

S j ) F( Y j ), то

шаг

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

считается неудачным,

при этом положить Y j 1

Y j

и

j

заменить на

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

j . Если

j n , то

j j 1 и повторить шаг 1, в противном случае,

 

т.е. при j n , перейти к шагу 2.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Шаг 2. Если F( Y n 1 ) F( Y 1 ),

т.е. если хотя бы один спуск по

 

направлениям на шаге 1 оказался успешным,

то положить Y 1 Y n 1 -

 

последний вектор найденный на первом шаге,

j 1 и повторить шаг 1.

 

Пусть F( Y n 1

) F( Y 1 ), т.e. если каждый из n последних спусков по

 

направлениям на шаге 1 были неудачными. Если F( Y n 1

) F( Y 1 ),

т.е.

 

по крайней мере, один удачный спуск встретился в течение

 

k -

той

 

итерации на шаге 1, то перейти к шагу 3. Если F( Y n 1 ) F( X k ) , т.е.

 

не было ни одного удачного спуска по направлениям, то остановиться.

 

При этом

X k

является приближенным оптимальным решением, если

 

 

 

j

 

 

для

 

всех

j .

 

 

В противном случае

положить

Y 1 Y n 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

последний вектор найденный на первом шаге,

j 1 и перейти к шагу 1.

 

 

 

 

 

Шаг 3. Положить X k 1 Y n 1 - последний вектор, найденный на

 

первом

шаге.

Если

 

X k 1 X k

, то остановиться;

в

противном

 

случае, вычислить d1 , d2 , , dn из соотношения X k 1

 

 

n

 

 

 

 

 

X k

d j

S j ,

j 1

построить новые направления, в соответствии с (11.78), обозначить их

124

через S1 , S 2

 

j , положить Y 1 X k 1 ,

, , S n , положить j j для всех

заменить k k 1 , положить j 1 и перейти к шагу 1.

 

Заметим, что

дискретные шаги выбираются вдоль n направлений

поиска на шаге 1.

Если движение вдоль S j оказалось успешным, то

 

 

 

j

заменяется на j , если же на этом направлении постигла неудача, то

j

заменяется на j . Так как 0 , то неудача приводит к сдвигу в обратном направлении вдоль j - го вектора на следующей реализации шага 1. Отметим

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

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

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

S i

и S j

считаются сопряженными относительно

положительно

определенной матрицы G , если

 

 

 

 

( S i )t G S j 0 ,

(11.79)

при

i j .

Условие сопряжения

напоминает условие

ортогональности

векторов S i

и S j

 

 

 

 

( S i )t

S j 0 ,

(11.80)

где матрица G , подразумевается единичной. Это дает основание воспользоваться для выбора сопряженных направлений известной процедурой Грамма - Шмидта для ортогонализации пространства векторов,

подразумевая вектор G S j , ортогональным вектору S i

 

( S i )t ( G S j ) 0 .

(11.81)

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

125

F 0 S 0 ;

 

F1 S1 K

S 0 ;

10

k

F k S k Ki , k 1 S i 1 ,

i 1

(11.82)

где 1 k n 1 .

Так как первое направление поиска определено, второе направление находится из обобщѐнного условия ортогональности (11.81)

( F1 )t G S 0 ( S1 K10 S 0 )t G S 0 0 .

Коэффициент K10 можно рассчитать из выражения

K10 [( F1 )t G S 0 ] / [( S 0 )t G S 0 ] ,

если известна матрица G .

Подставив найденный коэффициент во второе уравнение системы (11.82), определяем первое направление за исходным направлением

S1 F1 [( F1 )t G S 0 )] / [( S 0 )t G S 0 ] S 0 .

Из последующих уравнений (11.82) определим коэффициенты Kij , путѐм

последовательного умножения на предыдущие выделенные направления и используя обобщѐнное условие ортогональности

Kij [( F i )t G S j ] / [( S j )t G S j ] ,

(11.83)

где j 0 ,1, , i 1 .

Соответственно, новое сопряжѐнное направление определиться из выражения

S i F i [( F i )t G S 0 )] / [( S 0 )t G S 0 ] S 0

(11.84)

[( F i )t G S i 1 ] / [( S i 1 )t G S i 1 ] S i 1 .

Таким образом, для вычисления нового сопряженного направления

поиска необходимо уметь вычислять вектор градиента в текущей точке F i и матрицу Гессе G .

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

G S i ( F i 1 F i ) / d

.

(11.85)

i

 

 

Подставляя (11.85) в (11.83), получаем

 

 

Kij [( F i )t ( F j 1 F j )] /[( S j )t ( F j 1

F j )] .

Учитывая условие ортогональности направления поиска и сопряженности градиента (11.48), а также тот факт, что в окрестности минимума градиенты в соседних точках минимума практически ортогональны, т.е. следующее

126

направление поиска совпадает с направлением градиента в предыдущей точке, видим, что практически отличными от нуля будут коэффициенты Kij ,

при j i 1

Ki ,i 1 [( F i )t F i ] /[( S i 1 )t

F i 1 ] .

 

Теперь рассмотрим произведение ( S k )t F k . Согласно (11.82)

 

k

 

 

S k F k Ki ,k 1 S i 1 .

 

i 1

 

 

Образуя рассматриваемое произведение, получим

 

 

k

 

 

( S k )t F k [ F k Ki ,k 1 S i 1 ]t F k .

 

i 1

 

 

Учитывая условия сопряжения (11.79), получаем

 

 

( S k )t F k ( F k )t F k .

 

(11.86)

В результате, коэффициенты разложения по ортогональным

 

направлениям, запишутся

 

 

i Ki , i 1 [( F i )t F i ] /[( F i 1 )t

F i 1 ] ,

(12.87)

что полностью соответствует полученному ранее соотношению (11.51), с учѐтом знаков коэффициентов в (11.47) и (11.82). Используя (11.82) и (11.87), перепишем соотношение (11.84) в виде

S i F i

i

S i 1

,

(11.88)

 

 

 

 

которое для определения нового направления не требует вычисления матрицы Гессе.

Обобщим изложенный материал, представив общий алгоритм, метода сопряжѐнных градиентов.

1.Полагаем k 0 и выбираем точку начального приближения X 0 , полагая S 0 F( X 0 ).

2.Вычислим F( X k ) и F( X k ) при k 0 .

3.Определяем направление поиска

S k F( X k ) [( F k )t F k ] /[( F k 1 )t F k 1 ] S k 1

и нормируем вектор направления поиска к единичной длине S k S k / S k .

4.

В направлении поиска S k найдем длину шага d k такую, что или

 

 

 

F( X k d

k

S k

) F( X k ) ,

 

 

 

 

 

 

 

или функция F( X k d

k

S k ) минимальна в направлении S k .

 

 

 

 

 

 

 

5.

Вычислим:

 

 

 

 

 

 

 

 

 

X k d

k

S k ;

 

 

 

 

 

 

 

X k 1 X k X k .

127

6. Если

 

F( X k 1 X k )

 

 

1

и

 

X k

 

 

2

, то процесс сошелся, иначе

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

положим k k 1 и перейдем к шагу 2.

Применение соотношений (11.87) и (11.88) для не квадратичной функции, обеспечивает линейную сходимость, до тех пор, пока направление поиска не начнет периодически повторятся.

Рассмотренный алгоритм прост для реализации и требует умеренный объем оперативной памяти, необходимо запоминать только предыдущее направление поиска и предыдущий градиент. Этот алгоритм часто используют для задач, имеющих большое число переменных. В литературе данный метод известен под названием метода сопряженного градиента Флетчера и Ривса. Известны и другие версии метода сопряжѐнного градиента с лучшей сходимостью, но требующие несколько большей памяти. При этом модификации подвергается формула определения направлений поиска (11.87) и изменяется последовательность шагов алгоритма.

Вариант алгоритма, использующий соотношения (11.83) и (11.84), практически не используется из-за необходимости вычисления матрицы Гессе G .

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

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

Исходным моментом обоснования метода является разложение целевой функции F( X ) в ряд Тейлора с удержанием первых трех членов ряда и

записи его в виде

F( X k X ) F( X k

) ( X k ) F k 1 / 2 ( X k ) G k X .

(11.89)

Найдем минимум разности, стоящей в левой части, дифференцируя

(11.89) по X и приравнивая результат к нулю

 

[ F( X k X ) F( X k )] / X F k G k X 0 ,

 

откуда

 

 

 

 

 

 

 

 

 

 

 

G k X F k ,

(11.90)

Формально решение (11.90) можно записать

 

X ( G k ) 1 F k H k F k ,

(11.91)

где H G 1 . Направление поиска теперь полагаем совпадающим с вектором

d

k

S k X k H k F k ,

(11.92)

 

 

 

 

 

 

 

откуда новое значение вектора X можно записать в виде

 

X k 1 X k d

k

S k X k d

k

H ( X k ) F( X k ).

(11.93)

 

 

 

 

 

 

128

В данном методе матрица H ( X k ) является аппроксимацией обратной матрицы Гессе ( G k ) 1 и часто называется матрицей направлений. Для

аппроксимации обратной матрицы Гессе используются различные соотношения, не требующие вычисления вторых частных производных F( X ) и обращения матрицы.

Вспомним соотношение (11.38), справедливое для квадратичных функций, и перепишем его в виде

F( X k 1

) F( X k ) G( X k ) ( X k 1 X k ).

(11.94)

Формальное решение (11.94) запишется

 

( X k 1 X k

) H ( X k ) [ F( X k 1 ) F( X k )] ,

(11.95)

где H ( X k ) G 1 ( X k ). Вводя обозначения

 

 

X k X k 1 X k ,

 

 

Qk F k 1 F k ,

 

соотношение (11.95) перепишем в виде

 

 

X k H ( X k ) Qk .

(11.96)

Отметим, что для квадратичной функции F( X ) матрицы G и H постоянны,

поэтому (11.96) можно рассматривать как систему, используемую для оценки H( X ) , при известных значениях F( X ) , F( X ) и X . Для решения этой

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

В довольно большой группе методов G 1 ( X k 1 ) аппроксимируется с

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

G 1 ( X k 1 ) H ( X k 1 ) [ H k H k ] ,

(11.97)

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

метрики. Для обеспечения сходимости H k 1

должна быть положительно

определѐнной и удовлетворять уравнению (11.96).

 

Пусть на ( k 1 ) - ом шаге известны

X k , F k , F k 1 ,

H k и

необходимо определить H k 1 , удовлетворяющую соотношению

 

H k 1 Qk 1 / X k .

(11.98)

Так как H k H k 1 H k , то уравнение (11.98) перепишется в виде

 

H k Qk 1 / X k H k

Qk .

(11.99)

Прямой подстановкой результата, можно показать, что уравнение (11.99)

имеет следующее решение

 

 

H k 1 / X k Y t /( Y t Qk ) H k Qk Z t /( Z t Qk ),

(11.100)

129

где Y и Z – произвольные векторы размерности n . Если при 1 / 1

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

направлений X k и

H k Qk , а именно

 

Y Z X k H k Qk ,

(11.101)

то это соответствует, так называемому, алгоритму в модификации Бройдена. При этом (11.100) перепишется в виде

H k ( X k H k Qk ) ( X k H k Qk )t /[( X k H k Qk )t Qk ] .

 

(11.102)

Если же комбинация удовлетворяет соотношениям

 

Y X k ,

(11.103)

Z H k Qk ,

(11.104)

то H k 1 , с учѐтом (11.100), запишется в виде

 

H k 1 H k X k Y t /( Y t Qk ) H k Qk Z t /( Z t Qk ) ,

(11.105)

что и соответствует описываемому алгоритму Дэвидсона-Флетчера-Пауэла. Допустимы и другие подстановки векторов, на которых мы не будем

останавливаться. Если шаги X k определяются последовательно путѐм минимизации F( X ) в направлении S k , то все методы, с помощью которых

вычисляют симметрическую матрицу H k 1 , удовлетворяющую (11.98), для квадратичной функции дают взаимно сопряжѐнные направления.

Метод Дэвидона-Флетчера-Пауэла попадает в общий класс квазиньютоновских процедур, в которых направления поиска задаются в

виде H k F k , т.е. совпадают с направлением градиента, отклонѐнным в результате умножения на H k . На следующем шаге, матрица направлений

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

коррекции ранга 2 .

 

 

 

Рассмотрим

конкретно

алгоритм

Дэвидона-Флетчера-Пауэла

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

Алгоритм включает в себя два этапа:

 

 

 

Начальный

этап. Пусть

0

константа для

остановки.

Положить

j k 0 , где

j

номер

текущего

направления,

а

k – номер

итерации.

Выбрать начальную точку X 0

и симметричную начальную положительно

определѐнную

матрицу

H 0 ,

например, равную

единичной

и принять

Y 0 X 0 и перейти к основному этапу.

 

 

 

Основной этап.

 

 

 

 

 

 

130

Шаг

1.

Если

F( Y j )

,

 

то

остановиться, в противном случае,

положить

S j H j F( Y j

) и взять в качестве

d

j

оптимальное решение

 

 

 

 

 

 

 

 

 

 

 

 

 

 

задачи минимизации

F( Y j

d

j

S j

),

при d 0 .

Если

j n , то перейти к

 

 

 

 

 

 

 

 

 

 

 

 

 

 

шагу 2. Если

j n 1 , то

положить

Y 0 X k 1

Y n

последний вектор,

найденный на первом шаге, заменить k

на k 1 , положить j 1 и повторить

шаг 1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Шаг 2. Построить H j 1 , следующим образом

 

 

 

 

H j 1 H j Y j ( Y j )t /[( Y j )t

Q j ] Z j ( Z j

)t /[( Z j )t Q j ] ,

где

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y j d

j

S j X j ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Z j H j Q j H j [ F( Y j 1 ) F( Y j )] .

Заменить

j j 1 и перейти к шагу 1.

 

 

 

 

 

Таким образом, метод Дэвидона-Флетчера-Пауэла основан на аппроксимации обратной матрицы Гессе, входящей в выражение для нового направления поиска, исходя из предположения о квадратичности целевой функции.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]