Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metody_optimizatsii_Ekz_vopr_2014_2015.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
192.51 Кб
Скачать

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=М, проверяем условие окончания:

-  если tkR, процесс заканчивается: 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.