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

Для сравнения укажем, что при I = 1,0 поиск с помощью нере­ гулярного симплекса приводит к минимуму за N = 25 шагов, причем ж* « (0,999, 1,005), f{x*) « 5,85 •10“ 4. В то же вре­ мя при Z= 1,75 симплекс не в состоянии изменить свою форму так, чтобы, пвытянувшись11 вдоль оврага, успешно продолжить поиск точки минимума*(см. рис. 6.13, б). Поиск заканчивает­ ся за N = 14 шагов в точке ж14 = (0,237, —0,017), в которой /(ж 14) = 0,635. Аналогичная ситуация наблюдается и в случае I= 0,4, причем преждевременное окончание поиска после N = 24 шагов приводит в точку ж24 = (0,645, 0,404) со значением целе­ вой функции /(ж 24) = 0,127.

К преждевременному окончанию процесса поиска может приводить изменение других параметров алгоритма. Напри­ мер, это происходит при е = 0,01, Z= 1 ,0, если выбрать коэффи­ циент сжатия 7 = 0,25. Поиск завершается за N = 26 шагов в точке ж26 = (0,671, 0,409) со значением целевой фукнкции /(ж 26) =0,125.

6.4. Циклический покоординатный спуск

Поиск точки ж*, в которой функция /(ж) достигает наи­ меньшего значения, можно описать рекуррентным соотноше­ нием

x k = x k~l +otkUk, к е N,

(6.8)

где ж0 начальная точка; uk — единичный вектор, опреде­ ляющий направление спуска на к-м шаге; а* > 0 — длина шага спуска, т.е. расстояние в направлении вектора uk, отделяющее точку ж*"1 от новой точки х к. Различные методы отличаются друг от друга способом выбора направления спуска и значе­ ния а*.

Поиск точки ж* обычно прекращают при выполнении одно­ го или обоих неравенств:

|ajfc_ajfc“1|= afc<e1,

|/(®fc) - /(®fe_1)| < е2,

(6.9)

где €\ и £2 — заданные параметры точности поиска.

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

Пусть е*, г 1,п, — стандартный базис в W1. Выберем начальную точку ж0. Поиск точки минимума функции в мето­ де циклического покоординатного спуска проводят в соответ­ ствии с рекуррентным соотношением

xk = x )~l + Qkv

j = T 7 n .

(6.10)

Значение ak Е К находят из решения задачи одномерной мини­ мизации (см. 2)

<рк{а) -¥ min,

<Pj{a) = /(ж *-1 + a e j).

(6.11)

Подчеркнем, что индекс j изменяется циклически, пробегая на каждом шаге покоординатного спуска все значения от 1 до п, причем значение аk в отличие от значения а* в (6.8) может быть как положительным, так и отрицательным.

Пусть выбраны значения е\ и (или) €2 в (6.9) и перед fc-м шагом циклического покоординатного спуска по найденной на предыдущем шаге точке x k~l вычислено значение f { x k~l) целевой функции (на первом шаге значение /(ж 0) вычисляют в выбранной начальной точке ж0). Тогда для каждого значения j = 1, п из решения задачи (6.11) находят значение ак и затем вычисляют

п

(6.12)

xk = xk~1 + '52(Jjej

з=1

и значение f { x k). Далее проверяют выполнение условий (6.9) или того из них, которое выбрано в качестве условия прекра­ щения поиска. При положительном результате поиск точки х*

минимума функции f(x) прекращают на fc-м шаге и принима­ ют х* « х к и f(x*) « f { x k). В противном случае переходят к следующему шагу метода, полагая к: = к+ 1 .

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

 

71

=

® еКП-

 

Э=1

В этом случае решение задачи минимизации можно получить за один шаг поиска.

В самом деле, так как

71

П

/(* * ) = “ } $ /( * ) = 2

= Е М Х;)>

i=i 3

j=i

то достаточно на первом шаге поиска последовательно решить п задач одномерной минимизации функций hj(xj), j 1, п, что позволит найти все п координат х* искомой точки х*.

Для функций более общего вида может нарушаться да­ же условие релаксационности последовательности {®fc}, т.е. j { x k~1) - f { x k) > 0 для некоторых номеров к. Поэтому обычно используют модификацию этого метода, состоящую в следую­ щем. На каждом шаге при спуске по очередной координате Xj учитывают результаты, полученные на этом шаге для коорди­ нат xi, I = 1, j 1. В этом случае значение ак находят из реше­

ния задачи (6.11), в которой полагают <рк(а) =

+ ае; ),

где

 

з- 1

 

_„к—1

 

. \ А

 

Xj-i

= X

+ /

 

 

 

1=1

 

После перебора всех п координат вычисляют х к = х к_г + акеп. Рис. 6.14 иллюстрируют этапы покоординатного спуска для первых двух шагов метода в случае функции двух переменных.

Рис. 6.14

Рис. 6.15

Пример 6.4. С помощью модифицированного метода ци­ клического покоординатного спуска найдем решение задачи минимизации функции

f{xi,X2 ) = Qx\ - 4X IX 2 + 3^2 + 4>/5(rci + 2ж2) + 22,

рассмотренной в примерах 6.1 и 6.2. В качестве начальной выберем точку х° = (—2, 1), в которой /(® °) = 57, а в первом из условий (6.8) прекращения поиска положим е* = 0,01.

На рис. 6.15 дана графическая иллюстрация первых двух шагов процесса поиска точки минимума х* — (—л/5, —2л/5) этой функции, а в табл. 6.3 приведены результаты вычислений (заметим, что у/Ъ« 2,2361). Из этих результатов видно, что при заданной точности поиска решение задачи получается за шесть шагов. #