Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2793.Методы оптимизации..pdf
Скачиваний:
175
Добавлен:
15.11.2022
Размер:
33.68 Mб
Скачать

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

Отметим еще одну модификацию метода Хука — Джив­ са, позволяющую определить точку минимума целевой функции двух переменных за один шаг поиска. Графическая иллюстра­ ция этого метода дана на рис. 6.20. Обратим внимание на то, что процесс поиска точки х 1 в этом варианте совпадает с про­ цессом ее поиска в варианте, представленном на рис. 6.19, б'. Проводя исследующий поиск в точке х 1 с помощью метода ци­ клического покоординатного спуска и выбирая на этапе спуска ускоряющий множитель по условию минимума целевой функ­ ции в установленном направлении спуска, получим точку ж2, совпадающую с точкой минимума рассматриваемой функции.

6.6. Методы Розенброка и Пауэлла

Рассмотрим еще одну стратегию поиска точки минимума ограниченной снизу целевой функции /(ж ), х Шп. Метод, реализующий эту стратегию поиска, также предусматривает проведение исследующего поиска на каждом к-м шаге. Целью исследующего поиска является выбор текущего направления спуска с учетом информации о поведении целевой функции в окрестности точки х к~1, найденной на предыдущем шаге.

Отличие этого метода от метода Хука — Дживса состо­ ит в способе выбора направлений исследующего поиска. Если в методе Хука — Дживса они фиксированы и коллинеарны напра­ влениям векторов стандартного базиса в Rn, то в рассматри­ ваемом методе выбор этих направлений проводят в процессе минимизации целевой функции путем построения на каждом /e-м шаге поиска нового ортонормированного базиса в R71. Ито­ гом выполнения этого этапа является нахождение точки х к, для которой / ( х к) < f(x k~l). Тогда вектор х кх к~ 1 определит на­ правление спуска на к - м шаге.

Такая стратегия поиска впервые была реализовала в I960 году и получила название метода Розенброка*. В первоначаль­ ном варианте метода Розенброка процедура нахождения точки хк (как и в методе Хука — Дживса) была основана на дискрет­ ных шагах исследующего поиска по выбранным направлениям. Опишем модификацию этого метода, в которой на каждом к-м шаге поиска выбор координат точки хк проводят методом мо­ дифицированного циклического покоординатного спуска.

Пусть выбраны начальная точка х° Е и параметр е > О точности поиска. Возьмем в качестве векторов pj, j = 1, n, определяющих направления исследующего поиска на первом шаге, векторы е3 стандартного базиса в Rn. Полагаем k = j 1, хк = а;0 и переходим к основной части алгоритма.

1. Минимизируя функцию ф^к\х) = f(xk+ хрк), находим

значение х ^ Е R, вычисляем хк+1 = хк + х ^ р к и переходим к п.2.

2.Если j < п, то принимаем j := j +1 и возвращаемся к п. 1.

Впротивном случае полагаем хк = хк+1 и переходим к п. 3.

3.Если |xfc хк~г\< е, где е > 0 — достаточно малое чи­ сло, характеризующее точность выполнения этапа исследующе­ го поиска, то дальнейший поиск точки минимума прекращаем, принимая х* « х к и / (х*) « f ( x k). В противном случае перехо­ дим к п. 4.

4.На к-м шаге поиска строим новый ортонормированный базис, векторы pk+1, j = 1, п, которого задают направления исследующего поиска на ( f c + l ) - M шаге. При построении этого базиса используем процесс ортогонализации Грама — Шмидта

ипроводим его следующим образом. Полагаем

p j ,

о ‘ +1 = <

£ х {к)о^

*1 Рг »

*=7

*См.: Базара

Ш е т т и К.

и о

j = l , n .

0-

о

Далее вычисляем

ь‘ +1 = .

 

а&+1

 

 

з = 1;

 

7 — 1

 

 

 

 

 

Е («}&+1 , р -+1)р;fc+i

j = %n,

 

 

г=1

 

 

 

и

 

Ьк.+1

 

 

 

 

 

 

 

 

 

pfc+i = 11___

3 =

1 , П.

 

 

К+Ч

 

После вычисления

векторов р*

, j =

1,п,

переходим к п. 1,

полагая j := 1, x k+l = х к и затем к := к + 1.

На рис. 6.21 иллюстрируются этапы одного шага поиска точки минимума целевой функции двух переменных из началь­ ной точки х°. Отметим, что рассмотренный алгоритм можно модифицировать, вводя дополнительные правила выбора точ­ ки х к на каждом к-м шаге при проведении этапа исследующего поиска (см. 6.4).

Пример 6.6. Используем метод Розенброка для минимиза­ ции функции из примеров 6.4 и 6.5. Выберем начальную точку

х° = (—2, 1) и точность поиска е 0,01. Графическая иллюстра­ ция первых трех шагов метода дана на рис. 6.22. Результаты поиска точки минимума по методу Розенброка приведены в табл. 6.7.

 

 

Рис. 6.22

 

 

 

 

 

 

 

 

Таблица 6.7

к

х к

f { x k)

к

х к

л » * )

1

(-0,412, -3,259)

-12,482

5

(-2,168, -4,444)

-27,977

2

(—2,020, —3,178)

-23,817

6

(—2,219,

-4,428)

-27,996

3

(-1,834, -4,234)

-27,245

7

(-2,233,

-4,472)

-28,000

4

(—2,159, —4,177)

-27,794

 

 

 

 

Из табл. 6.7 видно, что для рассматриваемой функции ис­ пользование метода Розенброка не приводит к повышению эффективности поиска по сравнению, например, с модифици­ рованным методом циклического покоординатного спуска (см. пример 6.4), поскольку при той же точности поиска необходи­ мое число N шагов поиска не уменьшается.

Рассмотрим еще один алгоритм прямого поиска, предло­ женный в 1964 году и называемый обычно методом Пауэлла* Предварительный этап и первые два пункта основной части этого алгоритма практически совпадают с алгоритмом метода Розенброка. Отличие состоит в построении системы векторов, определяющих направления спуска на каждом последующем ша­ ге поиска и проявляется начиная с п. 3 описанного выше алго­ ритма метода Розенброка. В методе Пауэлла вычисления в п. 3 носят итерационный характер. Поэтому на предварительном этапе для номера %итерации принимают г = 1.

1. Минимизируя функцию ф^к\>с) = f (x k + хр^?), находим

значение xj^ G К, вычисляем ж*+1 = Щ + и переходим

кп. 2.

2.Если j < п, то полагаем j := j + 1 и возвращаемся к п. 1.

Впротивном случае переходим к п. 3.

3.Полагаем р = ж*+1 — х к и находим значение х, миними­

зируя функцию ^>(х) = f(x k+l + хр), а затем вычисляем Z{ =

= x k+i + хр. Если г < п,

то для всех j = 1, n 1 заменяем р к

на р*+1, полагаем р£ = р,

= «*, j = 1, г := г + 1 и переходим

к п. 1 рассматриваемого алгоритма. В противном случае, т.е. при %= гг, переходим к п. 4.

4. Принимаем х к = zn. Если |ж* —ж*-1 ! < £, то вычисления прекращаем и полагаем ж* « ж* и /(ж*) « f ( x k). В противном случае считаем, что ж*-1 = х к, г = 1, j = 1, к := А; + 1, и возвращаемся к п. 1 рассматриваемого алгоритма.

Рис. 6.23 иллюстрирует один шаг поиска точки миниму­ ма целевой функции двух переменных из начальной точки ж0. Можно доказать, что в случае квадратичной целевой функции /(ж) = (Q x, ж)/2 + (с, ж) с положительно определенной матри­ цей Q с помощью алгоритма метода Пауэлла за один шаг поиска строится система векторов р^, j = 1, п, сопряженных относи­ тельно этой матрицы. При этом точка ж1, полученная в конце

"См.: Базара М., Шеттпи К.

Рис. 6.23

первого шага, совпадает с искомой точкой х* минимума такой целевой функции. Покажем это на конкретном примере.

Пример 6.7. Используем метод Пауэлла для минимизации ранее рассмотренной функции (см. примеры 6.1, 6.4-6.6). Вы­ берем начальную точку х° = (—2, 1) и точность поиска е = 0,01. Графическая иллюстрация метода представлена на рис. 6.24. На рисунке видно, что точка х* минимума целевой функции достигается за один шаг поиска. В результате этого поиска по­ лучаем х* и (—2,236, —4,472) и f(x*) « —28,0, что с точностью 5•10"5 совпадает с точным решением (—\/5, —2\/б) задачи. #

Известно много модификаций метода Пауэлла. На рис. 6.25 представлена одна из таких модификаций в применении к функции из примеров 6.1, 6.4-6.7. В качестве начальной вы­ брала точка х° = (1, 1). Алгоритм, реализующий этот вариант метода Пауэлла, включает проведение на каждом к-м шаге по­ иска одной дополнительной итерации циклического покоорди­ натного спуска в направлении вектора* рп. При минимизации

*См.: Реклейтпис Г ., Рейвиндран А ., Р эгсдел К ., а также: Химмелъ-

блау Д .