
- •11. Поиск экстремума функции нескольких переменных. Метод Хука-Дживса: стратегия поиска и алгоритм.
- •12. Поиск экстремума функции нескольких переменных. Адаптивный метод случайного поиска: стратегия поиска и алгоритм
- •13. Поиск экстремума функции нескольких переменных. Метод случайного поиска с возвратом при неудачном шаге: стратегия поиска и алгоритм.
- •14. Поиск экстремума функции нескольких переменных. Метод наилучшей пробы: стратегия поиска и алгоритм.
- •15.Понятие градиента функции
- •17. Методы первого порядка: метод градиентного спуска.
11. Поиск экстремума функции нескольких переменных. Метод Хука-Дживса: стратегия поиска и алгоритм.
Метод включает два этапа: исследующий поиск вокруг базисной точки и поиск по образцу в направлении, выбранном для минимизации. В исследующем поиске задается начальное приближение X(1) и приращения по координатам DX. Рассчитывается значение f(X(1)) в базисной точке. Затем в циклическом порядке совершаются пробные шаги. Если приращение улучшает целевую функцию, то шаг считается удачным. По этой переменной значение изменяется на величину шага и дается приращение по другой переменной Иначе - неудачным и делается шаг в противоположном направлении. И если он тоже оказался неудачным, то значение этой переменной оставляют без изменения, и дается приращение по другой переменой и т.д. пока не будут изменены все независимые переменные. На этом завершается первый исследующий поиск, найдена точка X(2). Поиск по образцу осуществляется вдоль направления, соединяющего X(2) и X(1). Совершается один или несколько шагов до тех пор, пока шаги являются удачными.
Алгоритм:
Шаг
1: Определяются
координаты начальной точки
;
Величина
приращения переменных
Коэффициент
уменьшения шага
Параметр
окончания цикла
Шаг 2:Выполнить процедуру исследующего поиска. Поиск начинается из начальной точки, поочередно изменяется одна изvarпеременных. Значение остальных фиксируется напрежнемуровне. Если значение целевой функции в пробной точке оказывается меньше, чем в исходной, то шаг поиска по этой переменной рассматривают как успешный, в противном случае необходимо вернуться в предыдущую точку и сделать шаг в противоположном направлении, с последующей проверкой значения целевой функции. После последовательного перебора всехvarпеременных, исследование точек завершается. Полученную в результате него точку в пространствеvarпарам называют базовой точкой. Если поиск новой базовой точки оказался удачным, осуществляется переход к выполнению шага 4, в противном случае к шагу 3.
Шаг
3:Производится проверка
на завершение поиска экстремума, с этой
целью выполняет.проверка рав-ва:
–норма
приращвект
Если
оно выполняется, то поиск прекращается,
иначе приращение всех переменных
уменьшается по формуле:
После чего осуществляется переход к шагу 2.
Шаг
4:Выполняется поиск
по образцу. Заключающийся в реализации
единственного шага из полученной базовой
точки вдоль прямой, соединяющей эту
точку с предыдущей базовой точкой. Новая
точка образуется в соотв со след
формулой:
Шаг
5:Выполняется
исследование точек, в котором
используется
в качестве базовой точки. Пусть
,
полученная в рещзультате такого поиска
новая базовая точка.
Шаг
6:Проверяется выполнение
рав-ва
Если
выполняется, то просится переиндексация
После
чего осуществляется переход к шагу 4.
Если не выполняется, осуществляется
переход к шагу 3, минуя операцию
переиндексации.
12. Поиск экстремума функции нескольких переменных. Адаптивный метод случайного поиска: стратегия поиска и алгоритм
Стратегия поиска
Задается начальная точка x0. Каждая последующая точка находится по формуле:
xk+1= xk + tk ξk
где tk > 0 – величина шага; xk – случайный вектор единичной длины (определяется в n-мерном пространстве и предполагается, что он с равной степенью вероятности может принимать любое направление в этом пространстве), определяющий направление поиска; k– номер итерации. На текущей итерации при помощи генерирования случайных векторов xk получаются точки, лежащие на гиперсфере радиуса tk с центром в точке xk (рисунок 1). Если значение функции в полученной точке не меньше, чем в центре, шаг считается неудачным (точки y1, y2 при поиске из x0; y1, y3 при поиске из x1). Если число неудачных шагов из текущей точки достигает некоторого числа М, дальнейший поиск продолжается из той же точки, но с меньшим шагом до тех пор, пока он не станет меньше заранее заданной величины R. Если же значение функции в полученной точке меньше, чем в центре, шаг считается и в найденном направлении делается увеличенный шаг, играющий роль ускоряющего шага. Если при этом значение функции снова меньше, чем в центре, направление считается удачным и дальнейший поиск продолжается из этой точки (точки z3 = x1 при поиске из x0, z4 = x2 при поиске из x1). Если же значение функции стало не меньше, чем в центре, направление считается неудачным и поиск продолжается из старого центра (в точке y2 при поиске из x1 функция меньше, чем в x1, а в точке z2 уже не меньше, поэтому направление (z2 – x1) неудачное).
Алгоритм
Шаг 1. Задаем начальную точку x0, коэффициенты расширения a≥1 и 0<b<1, M – максимальное число неудачно выполненных испытаний на текущей итерации, t0 = 1 – начальную величину шага, R – минимальную величину шага, N – максимальное число итераций. Полагаем k=0, j=1.
Шаг 2. Получаем случайный вектор
где xij – случайная величина, равномерно распределенная на интервале [–1, 1].
Шаг
3. Вычисляем
Шаг 4. Проверяем выполнение условий
а) если f(yj) < f(xk), шаг удачный. Полагаем zj = xk + a(yj – xk). Определяем, является ли текущее направление yj – xk удачным:
- если f(zj) < f(xk), направление поиска удачное. Полагаем xk+1 = zj, tk+1 = atk, k=k+1 и проверяем условие окончания. Если k<N, полагаем j=1 и переходим к шагу 2. Если k=N, поиск завершаем: x* ≈ xk;
- если f(zj) ≥ f(xk), направление поиска неудачное, переходим к шагу 5;
б) если f(yj) ≥ f(xk), шаг неудачный и переходим к шагу 5.
Шаг 5. Оцениваем число неудачных шагов из текущей точки:
а) если j<М, полагаем j= j + 1 и переходим к шагу 2;
б) если j=М, проверяем условие окончания:
- если tk≤ R, процесс заканчивается: x* ≈ xk, f(x*) ≈ f(xk);
- если tk> R, полагаем tk= btk, j=1 и переходим к шагу 2.
Замечания:
1. Величина xij, равномерно распределенная на интервале [–1, 1], генерируется обычно с помощью датчиков псевдослучайных чисел на ЭВМ. Вырабатывается случайная величина hij, равномерно распределенная на интервале [0, 1], а затем используется линейное преобразование: xij = 2hij – 1.
2. Рекомендуются следующие параметры алгоритма: a = 1,618; b = 0,618; М = 3n. Начальный шаг t0≥R можно задать произвольно.
3. Если выполнено условие окончания tk≤ R, то в качестве ответа можно использовать любую точку внутри шара с радиусом tk и центром в точке xk