- •1.2. Градиентные методы.
- •1.2.1. Общая схема градиентного спуска.
- •1.2.2. Градиентный метод с постоянным шагом.
- •1.2.3. Градиентный метод с дроблением шага.
- •1.2.4. Метод наискорейшего спуска.
- •1.3.Метод покоординатного спуска.
- •1.4. Методы оврагов
- •1.4.1. Общая характеристика.
- •1.4.2. Эвристические алгоритмы.
- •1.4.3. Овражные методы (Метод Гельфанда).
- •1.5. Методы прямого поиска.
- •1.5.1. Общая характеристика.
- •1.5.2. Метод конфигураций (метод Хука и Дживса).
- •1.5.3.Метод симплекса.
- •1.5.4. Метод деформируемого симплекса (метод Нелдера – Мида).
- •2.Задание на лабораторную работу.
- •3. Варианты задания.
1.2.4. Метод наискорейшего спуска.
В градиентном методе с постоянным шагом величина шага, обеспечивающая убывание функцииf(x) от итерации к итерации, оказывается очень малой, что приводит к необходимости проводить большое количество итерации для достижения точки минимума. Поэтому методы спуска с переменным шагом являются более экономными. Алгоритм, на каждой итерации которого шагквыбирается из условия минимума функцииf(x) в направлении движения, то есть:
называется методом наискорейшего спуска. Разумеется, этот способ выбора ксложнее ранее рассмотренных вариантов.
Реализация метода наискорейшего спуска предполагает решение на каждой итерации довольно трудоемкой вспомогательной задачи одномерной минимизации. Как правило, метод наискорейшего спуска, тем не менее, дает выигрыш в числе машинных операций, поскольку обеспечивает движение с самым выгодным шагом, ибо решение задачи одномерной минимизации связано с дополнительными вычислениями только самой функции f(x), тогда как основное машинное время тратится на вычисление ее градиента.
Следует иметь в виду, что одномерную минимизацию можно производить любым методом одномерной оптимизации, что порождает различные варианты метода наискорейшего спуска.
Схема алгоритма
Шаг 1.
Задаются х0,3. Вычисляется градиент, направление поиска.
Присваивается к=0.
Шаг 2.
Определяется точка очередного эксперимента:
хк+1= хк-к,
где к– минимум задачи одномерной минимизации:
Шаг 3.
Вычисляется значение градиента в точке хк+1:.
Шаг 4.
Если ||||3, то поиск точки минимума заканчивается и полагается:
Иначе к=к+1 и переход к шагу 2.
1.3.Метод покоординатного спуска.
Желание уменьшить объем вычислительной работы, требуемой для осуществления одной итерации метода наискорейшего спуска, привело к созданию методов покоординатного спуска.
Пусть - начальное приближение. Вычислим частную производную по первой координате и примем:
где е1={1,0,…,0}T– единичный вектор оси х(1). Следующая итерация состоит в вычислении точки х2по формуле:
где е2={0,1,0,…,0}T– единичный вектор оси х(2)и т. д.
Таким образом, в методах координатного спуска мы спускаемся по ломанной, состоящей из отрезков прямых, параллельных координатным осям.
х(2)
Спуск по всем координатам составляет одну «внешнюю» итерацию. Пусть к – номер очередной внешней итерации, а j– номер той координаты, по которой производится спуск. Тогда формула, определяющая следующее приближение к точке минимума, имеет вид:
где к=0,1,2,… ; j=1,2,…n.
В координатной форме формула выглядит так:
После j=nсчетчик числа внешних итераций к увеличивается на единицу, аjпринимает значение равное единице.
Величина шага квыбирается на каждой итерации аналогично тому, как это делается в градиентных методах. Например, еслик=постоянно, то имеем покоординатный спуск с постоянным шагом.
Схема алгоритма покоординатного спуска с постоянным шагом
Шаг 1.
При к=0 вводятся исходные данные х0,1,.
Шаг 2.
Осуществляется циклический поj(j=1,2,…,n) покоординатный спуск из точки хknпо формуле:
Шаг 3.
Если ||x(k+1)n–xkn||1, то поиск минимума заканчивается, причем:
Иначе к=к+1 и переходим к шагу 2.
Если же шагквыбирается из условия минимума функции:
то мы получаем аналог метода наискорейшего спуска, называемый обычно методом Гаусса – Зейделя.
Схема метода Гаусса – Зейделя
Шаг 1.
При к=0 вводятся исходные данные х0,1.
Шаг 2.
Осуществляется циклический поj(j=1,2,…,n) покоординатный спуск из точки хkn по формулам:
где kn+j-1 является решением задачи одномерной минимизации функции:
Шаг 3.
Если ||x(k+1)n–xkn||1, то поиск минимума заканчивается, причем:
Иначе к=к+1 и переходим к шагу 2.