- •11. Поиск экстремума функции нескольких переменных. Метод Хука-Дживса: стратегия поиска и алгоритм.
- •12. Поиск экстремума функции нескольких переменных. Адаптивный метод случайного поиска: стратегия поиска и алгоритм
- •13. Поиск экстремума функции нескольких переменных. Метод случайного поиска с возвратом при неудачном шаге: стратегия поиска и алгоритм.
- •14. Поиск экстремума функции нескольких переменных. Метод наилучшей пробы: стратегия поиска и алгоритм.
- •15.Понятие градиента функции
- •17. Методы первого порядка: метод градиентного спуска.
13. Поиск экстремума функции нескольких переменных. Метод случайного поиска с возвратом при неудачном шаге: стратегия поиска и алгоритм.
Стратегия поиска
Задается начальная точка x0. Каждая последующая точка находится по формуле
xk+1= xk + tk ξk
Где tk > 0 – величина шага; xk – случайный вектор единичной длины, определяющий направление поиска; k– номер итерации. На текущей итерации при помощи генерирования случайных векторов xk получаются точки, лежащие на гиперсфере радиуса tk с центром в точке xk (рисунок 2). Если значение функции в полученной точке не меньше, чем в центре, шаг считается неудачным (точки y1, y2 при поиске
из x0; y1, y2, y3 при поиске из x1), происходит возврат в текущий центр и поиск продолжается. Если число неудачных шагов из текущей точки достигает некоторого числа М, дальнейший поиск продолжается из той же точки, но с меньшим шагом до тех пор, пока он не станет меньше заранее заданной величины R. Если же значение функции в полученной точке меньше, чем в центре, шаг считается удачным и дальнейший поиск продолжается из этой точки.
Алгоритм |
|
Рисунок 2 |
Шаг 1. Задаем начальную точку x0, коэффициент сжатия 0<b<1, M – максимальное число неудачно выполненных испытаний на текущей итерации, t0 = 1 – начальную величину шага, R – минимальную величину шага, N – максимальное число итераций. Полагаем k=0, j=1.
Шаг 2. Получаем случайный вектор где xij – случайная величина, равномерно распределенная на интервале [–1, 1].
Шаг 3. Вычисляем
Шаг 4. Проверяем выполнение условий
а) если f(yj) < f(xk), шаг удачный. Полагаем xk+1 = yj, tk+1 = tk, k=k+1 и проверяем условие окончания. Если k<N, полагаем j=1 и переходим к шагу 2. Если k=N, поиск завершаем: x* ≈ xk;
б) если 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.
14. Поиск экстремума функции нескольких переменных. Метод наилучшей пробы: стратегия поиска и алгоритм.
Задается начальная точка х°. Каждая последующая точка находится по формуле:
xk+l = хк + tk ξ к
где tk > 0 - величина шага; ξк - случайный вектор единичной длины, определяющий направление поиска; k - номер итерации. На текущей итерации при помощи генерирования случайных векторов ξ* получается M точек ух,...,ум, лежащих на гиперсфере радиуса tk с центром в точке хк в соответствии с рисунком 3. Среди полученных точек выбирается точка ут, в которой значение функции наименьшее. Если в выбранной точке значение функции меньше, чем в центре, то дальнейший поиск продолжается из этой точки. Иначе поиск продолжается из старого центра, но с меньшим шагом до тех пор, пока он не станет меньше заранее заданной величины R.
Рисунок 3 - Гиперсфера полученная в результате применения данного метода
Алгоритм:
Шаг 1. Задать
начальную точку
,
коэффициент сжатия
,
M - число испытаний на текущей итерации,
=1
- начальную величину шага, R - минимальную
величину шага, N - максимальное число
итерации. Положить k = 0, j = 1.
Шаг 2. Получить М
реализаций случайного вектора
,
j
=1,…,M
, где
- случайная величина, равномерно
распределенная на интервале [-1,1].
Шаг 3. Вычислить
, j = 1,…,M.
Шаг 4. Найти
из условия
Проверить выполнение условий:
а) если
,
шаг удачный. Положить
и
проверить условие окончания. Если
,
положить
и перейти к шагу 2. Если
,
поиск завершить
б) если
,
шаг неудачный и перейти к шагу 5.
Шаг 5. Проверить условие окончания:
если
,
процесс закончить:
если
,
положить
и перейти к шагу 2.
