Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Эвристические алгоритмы







Иногда, используя градиентный спуск для минимизации функций со сложной топографической структурой, применяют эвристические схемы, которые идейно близки к методам спуска. Мы рассмотрим две такие схемы.

Первая эвристическая схема содержит два основных этапа. Оба этапа представляют собой аналоги градиентного спуска с постоянным шагом. Только вместо градиента f ` (xk) используется вектор g(x), формируемый из координат f ` (xk), но на каждом из этапов по разным правилам.

На первом этапе задается малое число d1< < 1 и используется градиентный спуск, где вместо градиента f ` (xk) берется вектор (x)={g(1)(x), …, g(n)(x)}, который определяется следующим образом:


 
 

Таким образом, спуск производится лишь по тем переменным, в направлении которых производная целевой функции достаточно велика. Это позволяет быстро спуститься на «дно оврага». Мы спускаемся до тех пор, пока метод не зациклится, то есть до тех пор, пока каждая следующая итерация позволяет найти точку, в которой значение функции меньше, чем значение, найденное в предыдущей итерации. После этого переходим к следующему этапу.

На втором этапе задается некоторое большое число d2> > 1 и используется процедура спуска, где вместо градиента f ` (xk) берется вектор g(x)={g(1)(x), …, g(n)(x)}, который определяется следующим образом:


В этом случае перемещение происходит по «берегу» оврага вдоль его «дна». Как и на первом этапе, спуск продолжается до тех пор, пока метод не зациклится.

После выполнения первого и второго этапов принимается решение о завершении работы или продолжении. Для этого сравнивается норма разности предыдущей точки, то есть точки, которую мы имели до применения первого и второго этапов, с текущей точкой, то есть полученной после применения с точностью решения задачи e1. Если эта норма меньше e1 и норма градиента в текущей точке меньше e3, то поиск заканчивается и последняя вычисленная точка принимается за приближенное решение задачи. Иначе для текущей точки вновь повторяем первый и второй этапы и т. д.

Схема алгоритма

Шаг 1. Задаются х0, e1, e3, d1, d2, a1 – постоянный шаг пункта 1 и a2 – постоянный

шаг пункта 2 (a1< a2). Присваивается к=0.

Шаг 2. (Первый этап).

Из точки хк осуществляется спуск на «дно оврага» с постоянным шагом

a1. При спуске вычисление очередной точки осуществляется с

использованием формул:

xj+1 = xj - a1g(xj), где g(x)={g(1)(x), …, g(n)(x)},

 
 

 

Пусть этот процесс остановится в точке xl.

Шаг 3. (Второй этап).

Из точки xl осуществляется спуск вдоль «дна оврага» с постоянным шагом a2. При спуске используются формулы: xj+1 = xj - a2g(xj), где

g(x)={g(1)(x), …, g(n)(x)},

Пусть этот процесс остановился в точке xm.

Шаг 4.

Если ||xk – xm|| £ e1 и || f ` (xm) || £ e3, то полагаем:

и поиск минимума заканчивается.


Иначе k=m и переходим к шагу 2.

Овражные методы (Метод Гельфанда)

Вторая эвристическая схема, предложенная И.М. Гельфандом, состоит в следующем.

 
Пусть х0 и - две произвольные близкие точки. Из х0 совершают обычный градиентный спуск с постоянным шагом и после нескольких итераций с малым шагом a попадем в точку u0. Тоже самое делаем для точки, получая точку. Две точки u, лежат в окрестности «дна оврага». Соединяя их прямой, делаем «большой шаг» l в полученном направлении, перемещаясь «вдоль дна оврага» (шаг l называют овражным шагом). В результате получаем точку х1. В ее окрестности выбираем точку и повторяем процедуру.

Схема овражного метода 1.

Шаг 1. Вводятся начальное приближение х0, точность решения e1 и e3, шаг a для

градиентного спуска, начальное значение l для овражного шага. Из точки х0

осуществляется градиентный спуск с постоянным шагом a на дно оврага. В

результате получается точка u0. Полагается к=0.

Шаг 2. В окрестности хк берется точка и из нее осуществляется градиентный

спуск. В результате получается точка.

Шаг 3. Новая точка хк+1 определяется следующим образом. По формуле

или

 
 

вычисляется точка x'k+1. Из нее осуществляется градиентный спуск и мы получаем точку u`(xk+1). Если f(u`(xk+1))< f(uk), то полагаем xk+1= x`k+1 и uk+1= u`k+1.

Иначе уменьшаем овражный шаг l (например в 2 раза l=l/2)и повторяем шаг 3.

Шаг 4. Если ||uk+1-uk||£ e1 и || f `(uk+1) ||£ e3, то полагаем:

 
 

 
 

и поиск минимума на этом заканчивается, иначе к=к+1 и переходим к шагу 2.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.