Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Алгоритм Хука - Дживса



Этот алгоритм содержит две основные процедуры:

а) исследующий покоординатный поиск в окрестности данной точки, предназначенный для определения направления убывания f(х);

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

Опишем алгоритм исследующего покоординатного поиска из заданной точки х с приращениями по каждой координате D j, j = 1, …, n

Шаг 1. Положить = x, i = 1.

Шаг 2. Сделать пробный шаг y= - D j e j, где e j —j- й базисный вектор. Если f () £ f (y), то перейти к шагу 3, иначе — к шагу 4.

Шаг 3. Сделать пробный шаг y= +D j e j. Если f () £ f (y), то перейти к шагу 5, иначе — к шагу 4.

Шаг 4. Положить = у.

Шаг 5. Положить j = j + 1. Если j £ n, то перейти к шагу 2. В противном случае исследующий поиск окончен — получена точка для которой f () < f (y), если ¹ х.

Замечание. В результате исследующего поиска может оказаться, что =х. Тогда исследующий поиск считается неудачным. Если при этом норма приращения D =(D1,.., D n) мала, т.е. ||D|| £ e, где e — заданная точность, то полагают х* = х. Если заданная точность не достигнута, то полагают D=D/g (постоянная g > 1 коэффициент уменьшения шага) и повторяют исследующий поиск.

Приведем теперь полный алгоритм Хука — Дживса.

Шаг 0. Выбрать начальную точку х0, вектор приращений D =(D1,.., D n), коэффициент уменьшения шага g > 1, параметр окончания поиска e > 0.

Шаг 1. Провести исследующий покоординатный поиск из точки х0, т.е. найти точку . Если ¹ х, то перейти к шагу 3, иначе — к шагу 2.

Шаг 2. Проверка на окончание поиска. Если ||D||<e, то прекратить поиск и положить х*0. Иначе — положить D=D/g и перейти к шагу 1.

Шаг 3. Перемещение из точки х в направлении убывания - х0: положить х1 = + ( - х0) = 2 - х0.

Шаг 4. Провести исследующий поиск в точке х1, т.е. найти точку . Если f() < f(), то положить х0 = , = и перейти к шагу 3. Иначе — положить х0 = и перейти к шагу 1.

Пример 3.7. Рассмотрим графическую иллюстрацию решения задачи f(х)=(x1+ 1)2 + х22 ®min методом Хука — Дживса из начальной точки х0 =(2,3),вектор перемещений D=(1/2,1).

Целевая функция f(х) представляет собой квадрат расстояния между точками х и х* =(-1,0). Линии уровня f(х) — это окружности с центром в точ­ке х*. Поэтому значения f(х) в промежуточных точках алгоритма легко сравни­вать, оценивая их расстояния от точки х* на рис. 3.9. На рисунке пунктиром выделены траектории исследующего поиска, сплошными линиями — перемещения в направлении убывания. Убеди­тесь в соответствии графической иллю­страции описанному алгоритму.

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

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

Рис. 3.9. К примеру 3.7.





Дата публикования: 2015-04-07; Прочитано: 359 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...