Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2.doc
Скачиваний:
7
Добавлен:
30.04.2022
Размер:
503.81 Кб
Скачать

3. Реализация метода поиска минимума функции нескольких переменных с использованием метода хука-дживса

3.1. Постановка задачи и алгоритм решения

Требуется найти безусловный минимум функции f(x) многих переменных, т.е. найти такую точку x*  Rn, что

f(x*) = min f(x), для x  Rn.

Данный метод относится к методам прямого поиска для определения минимума функции n переменных.

Стратегия поиска. Метод конфигураций (метод Хука-Дживса) представляет собой комбинацию исследующего поиска с циклическим изменением переменных и ускоряющего поиска по образцу. Исследующий поиск ориентирован на выявление локального поведения целевой функции и определение направления ее убывания вдоль «оврагов». Полученная информация используется при поиске по образцу при движении вдоль «оврагов».

Исследующий поиск начинается в некоторой начальной точке х0, называемой старым базисом. Исследующий поиск реализуется следующим образом:

- в качестве множества направлений поиска выбирается множество координатных направлений (изменение первой координаты, остальные остаются неизменными; изменение второй координаты, остальные остаются неизменными и т.д.). Задается величина шага, которая может быть различной или постоянной для разных координатных направлений;

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

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

Полученная точка называется новым базисом.

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

Поиск по образцу заключается в движении по направлению от старого базиса к новому (из точки х0 через точку х1, из точки х1 через точку х2, из точки х2 через точку х3 и т.д.). Величина ускоряющего шага задается ускоряющим множителем λ. Успех поиска по образцу определяется с помощью исследующего поиска из полученной точки. Если при этом значение в наилучшей точке меньше, чем в точке предыдущего базиса, то поиск по образцу удачен. Если поиск по образцу неудачен, происходит возврат в новый базис, где продолжается исследующий поиск с уменьшенным шагом.

Обозначим через d1, d2, …, dn – координатные направления

.

При поиске по направлению di меняется только переменная xi, а остальные переменные остаются зафиксированными.

Алгоритм. Алгоритм реализации метода конфигураций следующий.

Шаг 1. Задать начальную точку х0, число ε > 0 для остановки алгоритма (например, ε=0.1 или ε =0.3), начальные величины шагов по координатным направлениям Δ1, Δ2, …, Δn ≥ ε (можно использовать одинаковую величину шага по координатным направлениям – Δ, значения Δ можно взять равными 1 или 2 или меньшими 1 (0.1, 0.2); ε должно быть меньше Δ), ускоряющий множитель λ > 0 (например, λ=1 или λ=1.5), коэффициент уменьшения шага α > 1 (например, α=2 или α=4). Положить y1 = x0, i=1, k=0.

Шаг 2. Осуществить исследующий поиск по выбранному координатному направлению:

а) если f(yi + Δidi) < f(yi), т.е. f(y1i, …, yiii, …, yni) < f(y1i, …, yii, …, yni), шаг считается удачным. В этом случае следует положить yi+1 = yi + Δidi и перейти к шагу 3;

б) если в п. «а» шаг неудачен, то делается шаг в противоположном направлении. Если f(yi - Δidi) < f(yi), т.е. f(y1i, …, yiii, …, yni) < f(y1i, …, yii, …, yni), шаг считается удачным. В этом случае следует положить yi+1 = yi - Δidi и перейти к шагу 3;

в) если в пп. «а» и «б» шаги неудачны, положить yi+1 = yi.

Шаг 3. Проверить условия:

а) если i < n, то положить i = i+1 и перейти к шагу 2 (продолжить исследующий поиск по оставшимся направлениям);

б) если i = n, проверить успешность исследующего поиска:

- если f(yn+1) < f(xk), перейти к шагу 4;

- если f(yn+1) ≥ f(xk), перейти к шагу 5.

Шаг 4. Провести поиск по образцу. Положить xk+1 = yn+1, y1 = xk+1 + λ(xk+1 – xk), i=1, k=k+1 и перейти к шагу 2.

Шаг 5. Проверить условие окончания:

а) если все Δi ≤ ε, то поиск закончить, х* = хk;

б) для тех i, для которых Δi > ε, уменьшить величину шага: Δi = Δi / α. Положить y1 = xk, xk+1 = xk, k=k+1 и перейти к шагу 2.

Блок-схема данного метода приведена на рис. 4.

Рис. 4. Блок схема метода Хука – Дживса

На рис. 5 приведена блок схема процедуры исследования вокруг базисной точки.

Рис. 5 – Блок-схема процедуры исследования

вокруг базисной точки

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