- •Введение в теорию принятия решений
- •Классы и методы решения задач теории принятия решений
- •Основные понятия и этапы моделирования
- •Функции многих переменных. Понятие о квадратичной форме. Свойства квадратичных форм
- •Приведение квадратичной формы к диагональному виду с помощью выделения полного квадрата
- •Положительная (отрицательная) определенность квадратичных форм. Критерий сильвестра
- •8. Необходимое и достаточное условие положительной(отрицательной) определенности
- •3.2. Частные производные 2-го и высших порядков.
- •10. Необходимые и достаточные условия минимума (максимума) функции многих переменных. Классический метод
- •3.5. Достаточные условия существования экстремума.
- •11.Теоремы о квадратичных формах. Закон инерции квадратичных форм
- •12. Методы минимизации функций одной переменной
- •4.1. Постановка задачи.
- •4.2. Метод золотого сечения.
- •13. Удвоение
- •14. Метод наискорейшего спуска. Вычисление длины шага и методы наискорейшего спуска
- •1 Методы безусловной минимизации. Градиентные методы (метод наискорейшего спуска).
- •15. Методы условной минимизации. Метод проекции градиента.
- •16. Основные понятия проблемы
- •17. Система линейных однородных уравнений для вычисления собственных векторов
- •6.2. Основные определения.
- •Характеристическое уравнение
- •Теоремы гергошина
- •Приведение матрицы к диагональному виду с помощью матрицу с собственными векторами
- •7.2. Принцип оптимальности и уравнения Беллмана.
- •7.3. Уравнения р. Беллмана.
- •Глава 8. Задача о замене оборудования
- •8.1. Постановка задачи.
- •8.2. Построение модели динамического программирования для задачи о замене
- •8.3. Числовой пример
- •9.1. Метод последовательных уступок.
- •9.2. Метод идеальной точки.
14. Метод наискорейшего спуска. Вычисление длины шага и методы наискорейшего спуска
1 Методы безусловной минимизации. Градиентные методы (метод наискорейшего спуска).
Будем рассматривать задачу
f(x)min; xD = En, (1)
предполагая, что функция f(x) непрерывно дифференцируема на Еп, т. е. согласно определению дифференцируемой функции
f(x + h) f(x)= <f '(x), h> + o(h; x), (2)
где . Если f '(x)0, то при достаточно малых h главная часть приращения (2) будет определяться дифференциалом функции df(x)= <f '(x), h>. Справедливо неравенство Коши Буняковского
-|f '(x) h <f ' (x), h> |f '(x) h,
причем если f '(u)0, то правое неравенство превращается в равенство только при h = f '(u), а левое неравенство только при f'(u)0, где = const>0. Отсюда ясно, что при f '(x)0 направление наибыстрейшего возрастания функции f(x) в точке и, совпадает с направлением градиента f '(x), а направление наибыстрейшего убывания — с направлением антиградиента (f '(x)).
Это замечательное свойство градиента лежит в основе ряда итерационных методов минимизации функций. Одним из таких методов является градиентный метод, к описанию которого мы переходим. Этот метод, как и все итерационные методы, предполагает выбор начального приближения некоторой точки x0 Общих правил выбора точки x0 в градиентном методе, как, впрочем, и в других методах, к сожалению, нет. В тех случаях, когда из геометрических, физических или каких-либо других соображений может быть получена априорная информация об области расположения точки (или точек) минимума, то начальное приближение x0 стараются выбрать поближе к этой области.
Будем считать, что некоторая начальная точка x0 уже выбрана. Тогда градиентный метод заключается в построении последовательности {xk} по правилу
xk+1 = xk kf '(xk), k>0, k = 0, 1, ... (3)
Число k из (3) часто называют длиной шага или просто шагом градиентного метода. Если f '(xk)0, то шаг k>0 можно выбрать так, чтобы f(xk+1)< f(xk). В самом деле, из равенства (2), имеем
f(xk+1) – f(xk) = k[- |f '(xk) |2 + o(k) k-1] < 0
при всех достаточно малых k>0. Если f '(xk) = 0, то xk стационарная точка. В этом случае процесс (3) прекращается, и при необходимости проводится дополнительное исследование поведения функции в окрестности точки xk для выяснения того, достигается ли в точке xk минимум функции f(x) или не достигается. В частности, если f(x) выпуклая функция, то в стационарной точке всегда достигается минимум. Существуют различные способы выбора величины k в методе (3). В зависимости от способа выбора k можно получить различные варианты градиентного метода. Укажем несколько наиболее употребительных на практике способов выбора k.
1) На луче {xЕn: x = xk f '(xk), 0}, направленном по антиградиенту, введем функцию одной переменной
k() = f(xk f '(xk))
и определим k из условий
k(k) = inf k () = k*., k>0. (4)
Метод (3), (4) принято называть методом скорейшего спуска. При f '(xk ) 0 согласно формуле
k' () = <f ' (xk + h),h>
следует, что k'(0) = - |f '(xk)|2 < О, поэтому нижняя грань в (4) может достигаться лишь при k > 0. Приведем пример, когда величина k, определяемая условием (4), существует и может быть выписана в явном виде.
Пример 1. Пусть дана квадратичная функция
f(x) = ½<Аx, x> <b, x>, (5)
где A — симметричная положительно определенная матрица порядка nxn, b — вектор из Еn. Выше было показано, что эта функция сильно выпукла и ее производные вычисляются по формулам
f '(x) = Ax-b; f "(x) = A.
Поэтому метод (3) в данном случае будет выглядеть так:
xk+1 = xk- k(Axk-b), k = 0, 1, ...
Таким образом, градиентный метод для функции (5) представляет собой хорошо известный итерационный метод решения системы линейных алгебраических уравнений Аx = b. Определим k из условий (4). Пользуясь формулой (4.2.10), имеем
k () = f(xk)- |f '(xk)|2 + (2/2)<Af '(xk), f '(xk)> , 0.
При f '(uk ) 0 условие
k'(k) = -|f '(xk)|2 + k<Af '(xk), f '(xk)> =0
дает
Поскольку функция k(а) выпукла, то в найденной точке эта функция достигает своей нижней грани при >0. Метод скорейшего спуска для функции (5) описан, но для углубленного понимания приведем алгоритм.
Алгоритм метода наискорейшего спуска.
Будем считать, что некоторая начальная точка x0 выбрана так, чтобы выполнялись условия теоремы Вейерштрасса, а именно множество С(x0) = {xRn f(x) f(x0) } было замкнуто и ограничено.
Шаг 1. Полагаем k=0 (номер итерации), xk = x0 = 0, = 0,01.
Шаг 2. Вычисляем h(xk) = f '(xk), а также
k = |f '(xk) |.
Шаг 3. Если k <, то перейти в шагу 6, иначе перейти к следующему шагу 4.
Шаг 4. Вычислим k>0из условия
f(xk - kf '(xk)) =
Шаг 5. Вычисляем следующее приближение
xk+1 = xk kf '(xk).
Полагаем k:= k+1 и переходим к шагу 2.
Шаг 6. В качестве точки минимума возьмем последнее приближение
x* = xk,
а также в качестве минимального значения функции f(x*) = f(xk).