Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2222.doc
Скачиваний:
91
Добавлен:
12.03.2015
Размер:
1.25 Mб
Скачать

2.2.3. Метод Хука - Дживса

Эффективность решения задачи (2.1) рассмотренными ме­тодами покоординатного спуска можно повысить, если допол­нить описанные алгоритмы периодически повторяющимся поис­ком точки минимума в направлении вектора Хкк" из точек Хк, k = sn, гдеs -количество выполненных внешних итераций. Такой подход и лежит в основе метода Хука - Дживса.

Алгоритм метода Хука -Дживса содержит две основные про­цедуры:

  1. Исследующий покоординатный поиск в окрестностиданной точки с целью определения направления убыванияфункции/(Х).

  2. Перемещение в направлении убывания.

Опишем вначале алгоритм исследующего покоординатно­го поиска из заданной точки Хс приращениями по каждой коор­динате Д,/= 1,...,«.

26

Шаг 1. Положить X = XJ = 1.

Шаг2. Сделать пробный шаг Y = ~Х ~ Д .^ ; где е > _ ко_

ординатный вектор. Если f{Y) > f(x), то перейти к шагу 3, ина-че - к шагу 4.

Шаг 3- Сделать пробный шаг Y = ~X + h.e>. Если f(Y) > /(^), то перейти к шагу 5, иначе - к шагу 4.

Шаг 4. Положить X - Y.

Шаг 5. Положить; = ;'+1". Если; < п, то перейти к шагу 2. В противном случае исследующий поиск окончен, т.е. получена

точка X, для которой /(х)</(Х),если Х*Х

В результате исследующего поиска может оказаться, что

X = X. Тогда исследующий поиск считается неудачным. Если при этом ||Л|| < е, где е - заданная точность, то полагают Х-Х. Если же заданная точность не достигнута, то полагают Д=Дд, где уе(0; 1) - коэффициент уменьшения шага, и повторяют исследу­ющий поиск. •

Опишем теперь полный алгоритм Хука - Дживса.

ШагО. Выбрать начальную точку ХаеЕ", вектор прираще­ний Д = (Д,,..., Д„), коэффициент уменьшения уе(0;1), параметр точности е > 0, положить к = 0.

Шаг 1. Провести исследующий покоординатный поиск из

точки Ади найти точку х\ Если Z* * Хк, то перейти к шагу 3, иначе - к шагу 2.

Шаг 2. Проверить условие достижения заданной точности ||Д||< £. Если оно выполняется, то перейти к шагу 5, иначе поло­жить Д = Д у и перейти к шагу 1.

ШагЗ. Сделать «диагональный» шаг из точки X в направ-

лении вектора

27

Провести иссл

едующий поиск в точке ЛГи найти точ-

ку X. Если f(x)<f{?), ™ "0Л0ЖЙТЬ **=*• ^ =* и п^

рейтикшагУЗ.ИнаЧеположить^^1ДА=^ипеРейтикшагу1. Шаг 5. Завершить вычисления, положив X - X , f ~f(X ).

2.2.4. Метод Пауэлла

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

Пусть задана точка начального приближения Х°еЕ ". Вы­полним одну внешнюю итерацию метода покоординатного спус­ка Зейделя (см. подразд. 2.2.2), т.е. найдем точку

2.2.5. Типовые примеры

Пример 1. Решить задачу минимизации функции двух пере­менных f(x) = 5xf +5x22 +8x,x2 из начальной точки Х°=(5; 5)т ме­тодом покоординатного спуска Зейделя.

Заметим, что линии уровня данной целевой функции - со-осные эллипсы с центром в начале координат, большая ось ко­торых наклонена под углом 135° к оси х,. Результаты расчетов по приведенному в подразд. 2.2.2 алгоритму приведены в таб­лице и графически проиллюстрированы на рис. 2.5. При на­хождении очередной точки X* минимизирующей последова­тельности происходит смещение по прямой, параллельной од­ной из координатных осей, до точки с наименьшим на этой прямой значением функции f (X). Очевидно, эта точка будет точкой касания рассматриваемой прямой и соответствующей линии уровня.

i

где е' - единичный координатный вектор, у которого /-я коорди­ната равна 1, остальные равны 0J = 1,..., „. При этом величина шага определяется с помощью какой-либо процедуры одномер­ной оптимизации по а:

по а:


одномерного

Полагая X —X

внешней итерации. "-а не выполнится


)

анняСяТп!1аеМ К выполнению следующей Z^£ П°Р'

Рис. 2.5. Траекюрия поиска

методом покоординатного спуска Зейделя

к

Хх

Х2

F(x)

0

2

5

225

1

-4

5

45

2

-4

3,2

28,8

3

-2,56

3,2

18,43

4

-2,56

2,05

11,8

5

-1,64

2,05

7,55

6

-1,64

1,31

4,83

7

-1,05

1,31

3,09

8

-1,05

0,84

1,98

9

-0,67

0,84

1,27

10

-0,67

0,54

0,81

Пример 2. Решить задачу минимизации функции f(X) = (*, +1)2 +4 методом Хука - Дживса из начальной точки

*°=(2;3)т.

Зададим вектор перемещения А = (2; 3) . Исходное значение функции в начальной точке/(ЛГ°) = 18. В соответствии с алгорит­мом, описанным в подразд. 2.2.3, сначала проводим исследую­щий поиск из точки Х°:

^° =2 + 0,5 = 2,5; /(2,5;3) = 21,25 (неудача); xf° =2-0,5 = 1,5; /(1,5;3) = 15,25 (успех); х*1'=3 + 1 = 4; /(1,5;4) = 22,25 (неудача); xf =3-1-2; /(1,5;2) = 10,25 (успех).

Исследующий поиск оказался удачным. Теперь из новой точ­ки Х>= (1,5; 2)т перемещаемся в направлении убывания по векто­ру X'-Х0 в точку X2 = IX'- Х°:

jc,<2) =2-1,5-2 = 1; xf> =2-2-3 = 1;

= 5.


() Проводим исследующий поиск в точкеX1- (1,5; 2)т:

*,(3) =1 + 0,5 = 1,5; /(1,5;1) = 7,25>/(X2) (неудача); *,(3) =1-0,5 = 0,5; /(0,5;3) = 15,25 (успех); 4° =3 + 1 = 4; /(1,5;4) = 22,25 (неудача); 4" =3-1-2; /(1,5;2) = 10,25 (успех).

Поскольку/^3) = 2,25 </(*') = 10,25 и перемещение из точ­ки X в точку X - (1;1) успешно, то вновь перемещаемся по на­правлению убывания из точки X* в точку Х*= 1ХЪХ-

проводим исследующий поиск в точке

30

xf =


=-0,5 + 0,5=0; /(0;-2) = 5 >/(**■) (неудача); = -0,5 -0,5 = -1; /(-1;-2) = 4 > /(*«) (неудача); = -2 +1 = -1; /(-0,5;-1) = 1,25 >

*•) (успех).

Поскольку/(Z5) = 1,25 </(Х3) = 2,25 и перемещение из точ­ки Хъъ точку X4 можно признать успешным, то последователь­ность поисков по направлению убывания продолжаем до тех пор, пока на очередном этапе в конце исследующего поиска значение f(X) не окажется больше, чем в предыдущей точке. Тогда из по­следней проводим исследующий поиск для определения нового удачного направления.


Рис. 2.6. Минимизация функции методом Хука - Дживса


На рис. 2.6 приведена графи­ческая интерпретация этапов поис­ка. Линии уровня целевой функ­ции f(X) = (x)+1)2 + xl - концент­рические окружности с центром в точке X *=(-1; 0). Пунктиром на рисунке выделены траектории ис­следующего поиска, сплошными линиями - перемещения в направ­лении убывания. Убедитесь в соот­ветствии графической иллюстра­ции описанному алгоритму.

Пример 3. Рассмотрим графи­ческую иллюстрацию решения за­дачи минимизации функции'/(^) = 2х,2 +.*; ххг методом Пау-элла из начальной точки Х°= (2; 2)т(рис. 2.7).

Линии уровня функции/(Л0 - соосные эллипсы с центром в начале координат, большая ось которых наклонена к оси х, под углом 67°,5'. Первый шаг делается в соответствии с методом по­координатного спуска Зейделя (см. рис. 2.7) из точкиХ°в направ­лении -е'= (-1; 0), т.е. минимизируется/^- осе') по а > 0 с помо-

31


щью процедуры одномерного поиска. В результате находится

точка

X' = Х°- ос,е', где а, =

= argmin|/(xo-ae1)a>O]. Оче-

видно, эта точка будет точкой каса­ния с соответствующей линией уров-ня/(Л) = const. Аналогично выпол­няется второй шаг из точки X' в на­правлении -е2= (0;-1) и находится

„„ ,, , точка Х2=Х'-а,е2, где

Рис. 2.7. Минимизация функции 2

методом Пауэлла . { rl v\ г\\ г\

a, =argmm \f\X -ае J а>0>.

Затем выполняется «диагональный» шаг из точки X в на­правлении вектора Х2-Х°. Поскольку целевая функция/(<¥) квад­ратичная, точку ее минимума удается найти точно за конечное число шагов.

Порядок выполнения лабораторной работы

  1. Кратко описать изучаемые методы покоординатного по­иска минимума функций многих переменных.

  2. Составить алгоритм метода циклического покоординат­ного поиска.

  3. Дать графическую иллюстрацию задачи индивидуально­го задания и выполнить вручную по две итерации циклическогопокоординатного поиска и поиска методом Зейделя.

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

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

32

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

Задания для лабораторной работы

1. Минимизировать функцию/(X) = 5xf +5xj + 6х,х2из начальной точки Х" = (2; 4)т.

= 5x* +5x\ +8д:,х2 = 5x* +5x22 -Sxtx2


  1. Минимизировать функцию f(X) = 5x* +5x\ -6х,х2из начальной точки Х°= (-4; 3).

  2. Минимизировать функцию f(X) = 5x* +5x\из начальной точкиХ°=(3;5)Т.

  3. Минимизировать функциюиз начальной точки Х°= (-3;4)т.

  4. Минимизировать функцию f(X) = 2xf +2x\ -х,*2из начальной точкиХ°= (-1;2)т.

  5. Минимизировать функцию f(X) = 2x] +2x\ +2xtx2 -

-14х, -12х, +29 из начальной точки Х° = (-1;4)т.

7. Минимизировать функцию f(X) = 2xf + 2x; -2*,х, --4*! -2.x, +5 из начальной точки Х°=(-1; 3)т.

8. Минимизировать функцию /(Х) = Ю0[х2 -*2) ++ (1-.х[)~ из начальной точкиX" =(-1;0)т.

2.3. Градиентные методы

Рассмотрим задачу безусловной минимизации (2.1) предполагая, что функция f(X) непрерывно дифференцируема на Е". Для численного решения задачи применим простейшую итерационную процедуру вида:

33

г

X"*]=Xk+akS\k= 0,1,2,..., (2.21)

позволяющую при определенных условиях построить миними­зирующую последовательность для функции/(А), т.е. такую

последовательность точек Хке Е", что Jim/(jf4) = /.

От того, как выбирается направление поиска S и как определяется величина шага ак, зависят свойства итерационной процедуры (2.21) такие, как поведение функции/(^0 на элементах последовательности {X*}, сходимость к решению, скорость сходимости, объем требуемых вычислений.

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

Ж.

дх,'


'дх

а направление наибыстрейшего убывания - с направлением ан­тиградиента, т.е. вектора -f'(X) Это свойство градиента и ле­жит в основе итерационных процедур градиентных методов, ко­торые отличаются друг от друга лишь способом выбора величи­ны ак градиентного шага.

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