Метод сопряженных градиентов простыми словами. Безусловная оптимизация. Метод сопряженных градиентов

Введение

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

Постановка задачи оптимизации

Пусть задано множество и на этом множестве определена целевая функция (objective function ) . Задача оптимизации состоит в нахождении на множестве точной верхней или точной нижней грани целевой функции .
Множество точек, на которых достигается нижняя грань целевой функции обозначается .


Если , то задача оптимизации называется безусловной (unconstrained ). Если , то задача оптимизации называется условной (constrained ).

Метод сопряжённых градиентов для квадратичного функционала

Изложение метода

Рассмотрим следующую задачу оптимизации:


Здесь - симметричная положительно определённая матрица размера . Такая задача оптимизации называется квадратичной. Заметим, что . Условие экстремума функции эквивалентно системе Функция достигает своей нижней грани в единственной точке , определяемой уравнением . Таким образом, данная задача оптимизации сводится к решению системы линейных уравнений
Идея метода сопряжённых градиентов состоит в следующем:
Пусть - базис в . Тогда для любой точки вектор раскладывается по базису Таким образом, представимо в виде

Каждое следующее приближение вычисляется по формуле:


Определение. Два вектора и называются сопряжёнными относительно симметричной матрицы B, если

Опишем способ построения базиса в методе сопряжённых градиентов В качестве начального приближения выбираем произвольный вектор. На каждой итерации выбираются по правилу:


Базисные вектора вычисляются по формулам:



Коэффициенты выбираются так, чтобы векторы и были сопряжёнными относительно А.

Если обозначить за , то после нескольких упрощений получим окончательные формулы, используемые при применении метода сопряжённых градиентов на практике:

Анализ метода

Для метода сопряжённых градиентов справедлива следующая теорема:
Теорема Пусть , где - симметричная положительно определённая матрица размера . Тогда метод сопряжённых градиентов сходится не более чем за шагов и справедливы следующие соотношения:

Сходимость метода

Если все вычисления точные, и исходные данные точны то метод сходится к решению системы не более чем за итераций, где - размерность системы. Более тонкий анализ показывает, что число итераций не превышает , где - число различных собственных значений матрицы A. Для оценки скорости сходимости верна следующая (довольно грубая) оценка:

, где

Она позволяет оценить скорость сходимости, если известны оценки для максимального и минимального собственных значений матрицы На практике чаще всего используют следующий критерий останова:

.

Вычислительная сложность

На каждой итерации метода выполняется операций. Такое количество операций требуется для вычисления произведения - это самая трудоёмкая процедура на каждой итерации. Отальные вычисления требуют O(n) операций. Суммарная вычислительная сложность метода не превышает - так как число итераций не больше n.

Численный пример

Применим метод сопряжённых градиентов для решения системы , где

C помощью метода сопряжённых градиентов решение этой системы получается за две итерации. Собственные числа матрицы - 5, 5, -5 - среди них два различных, поэтому, согласно теоретической оценке число итераций не могло превышать двух

Заключение

Метод сопряжённых градиентов - один из наиболее эффективных методов решения СЛАУ с положительно определённой матрицей. Метод гарантирует сходимость за конечное число шагов, а нужная точность может быть достигнута значительно раньше. Основная проблема заключается в том, что из-за накопления погрешностей может нарушаться ортогональность базисных веторов , что ухудшает сходимость

Метод сопряжённых градиентов в общем случае

Расссмотрим теперь модификацию метода сопряжённых градиентов для случая, когда минимизируемый функционал не является квадратичным: Будем решать задачу:

.

Непрерывно дифференцируемая в функция. Чтобы модифицировать метод сопряжённых градиентов для решения этой задачи необходимо получить для формулы, в которые не входит матрица А:

Можно вычислять по одной из трёх формул:

Если функция - квадратичная и строго выпуклая, то все три формулы дают одинаковый результат. Если - произвольная функция, то каждой из формул cоответствует своя модификация метода сопряжённых градиентов. Третья формула используется редко, так как она требует, чтобы функция и вычисления гессиана функции на каждом шаге метода.

Анализ метода

Если функция - не квадратичная, метод сопряжённых градиентов может и не сходиться за конечное число шагов. Кроме того, точное вычисление на каждом шаге возможно только в редких случаях. Поэтому накопление погрешностей приводит к тому, что вектора перестают указывать направление убывания функции . Тогда на каком-то шаге полагают . Совокупность всех номеров , при которых принимается , обозначим за . Номера называются моментами обновления метода . На практике часто выбирают , где - размерность пространства.

Сходимость метода

Для метода Флетчера - Ривса существует теорема о сходимости, накладывающая не слишком жёсткие условия на минимизируемую функцию :
Теорема .
Пусть и выполняются следующие условия:

множества M: .
Тогда

Для метода Полака-Райбера доказана сходимость в предположении, что - строго выпуклая функция. В общем случае доказать сходимость метода Полака - Райбера невозможно. Напоротив, верна следующая теорема:
Теорема.
Предположим, что в методе Полака-Райбера значения на каждом шаге вычисляются точно. Тогда существует функция , и начальное приближение , такие что %200,%20%5Cforall%20k%20=%200,%201,%202,%20...%20%5Cquad%20%7C%7Cf(x_k)%7C%7C%20>%20%5Cdelta" alt="\exists \delta > 0, \forall k = 0, 1, 2, ... \quad ||f(x_k)|| > \delta">.

Тем не менее, на практике метод Полака-Райбера работает лучше.
Наиболее распространённые критерии останова на практике: Норма градиента становится меньше некоторого порога
Значение функции в течении m последовательных итераций почти не изменилось

Вычислительная сложность

На каждой итерации методов Полака-Райбера или Флетчера-Ривса по одному разу вычисляются функция и её градиент , решается задача одномерной оптимизации . Таким образом, сложность одного шага метода сопряжённых градиентов имеет тот же порядок, что и сложность шага метода скорейшего спуска. На практике метод сопряжённых градиентов показывает лучшую скорость сходимости.

Числовой пример

Будем искать методом сопряжённых градиентов минимум функции . Минимум этой функции равен 1 и достигается в точке (5, 4). Сравним на примере этой функции методы Полака-Райбера и Флетчера-Ривса. Итерации в обоих методах прекращаются, когда на текущем шаге квадрат нормы градиента становится меньше . Для выбора используется метод золотого сечения

Метод Флетчера - Ривса Метод Полака - Райбера
Число итераций Найденное решение Значение функции Число итераций Найденное решение Значение функции
0.01 18 (5.01382198,3.9697932) 1.00110367 15 (5.03942877,4.00003512) 1.00155463
0.001 20 (5.01056482,3.99018026) 1.00020805 18 (4.9915894,3.99999044) 1.00007074
0.0001 24 (4.9979991,4.00186173) 1.00000747 20 (5.00336181,4.0000018) 1.0000113
0.00001 25 (4.99898277,4.00094645) 1.00000193 22 (4.99846808,3.99999918) 1.00000235
0.00001 29 (4.99974658,4.0002358) 1.00000012 26 (4.99955034,3.99999976) 1.0000002

Реализовано два варианта метода сопряжённых градиентов: для минимизации квадратичного функционала, и для минимизации произвольной функции. В первом случае метод реализуется функцией
vector FindSolution(matrix A, vector b)
Здесь A и b - матрица и вектор, фигурирющие в определении квадратичной задачи оптимизации.
Для минимизации произвольного функционала можно использовать одну из двух функций:
vector FletcherRievesMethod(int spaceSize, Function F, vector (*GradF) (vector))
vector PolakRibiereMethod(int spaceSize, Function F, vector (*GradF) (vector))
Параметры для обеих функций совпадают и имеют следующий смысл:
spaceSize - размерность пространства(число переменных, от которых зависит минимизируемый функционал)
F - указатель на минимизируемую функцию. Функция должна иметь вид double <имя функции>(vector)
GradF - указатель на функцию, вычисляющую градиент минимизируемого функционала
Оба метода используют вспомогательную функцию для решения задачи одномерной оптимизации. В программе реализована одномерная оптимизация методом золотого сечения.

Заключение

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

См. также

Список литературы

  • Васильев Ф. П. Методы оптимизации - Издательство «Факториал Пресс», 2002
  • Nocedal J., Wright S.J. Numerical Optimization ,Springer, 1999

Метод сопряженных градиентов (в англ. литературе «conjugate gradient method») - это итерационный численный метод (первого порядка) решения оптимизационных задач, который позволяет определить экстремум (минимум или максимум) целевой функции:

- это значения аргумента функции (управляемые параметры) на вещественной области.

В соответствии с рассматриваемым методом экстремум (максимум или минимум) целевой функции определяют в направлении наиболее быстрого возрастания (убывания) функции, т.е. в направлении градиента (антиградиента) функции. Градиентом функции в точке называется вектор, проекциями которого на координатные оси являются частные производные функции по координатам:

где i, j,…, n - единичные векторы, параллельные координатным осям.

Градиент в базовой точке строго ортогонален к поверхности, а его направление показывает направление наискорейшего возрастания функции, а противоположное направление (антиградиент), соответственно, показывает направление наискорейшего убывания функции.

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

где знак «+» используется для поиска максимума функции, а знак «-» используется для поиска минимума функции.

Единичный вектор сопряженных направлений, который определяется по формуле:

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

В качестве первого способа рассматривают определение весового коэффициента по формуле Флетчера-Ривса (Fletcher–Reeves):

- модуль градиента определяет скорость возрастания или убывания функции в направлении градиента или антиградиента соответственно.

В качестве второго способа рассматривают определение весового коэффициента по формуле Полака–Райбера (Polak-Ribiere):

В соответствии с представленными выражениями новое сопряженное направление получается сложением градиента (антиградиента) в точке поворота и предыдущего направления движения, умноженного на коэффициент. Таким образом, метод сопряженных градиентов формирует направление поиска к оптимальному значению используя информацию о поиске полученную на предыдущих этапах спуска. Следует отметить, что сопряженные направления P, P, ..., P вычисляют с помощью формулы Флетчера-Ривса, которая позволяет построить сопряженные векторы относительно некоторой симметрической матрицы для произвольно заданной функции.

Траектория спуска в методе сопряженных градиентов (поиск минимума)

Геометрический смысл метода сопряженных градиентов состоит в следующем: из заданной начальной точки х осуществляется спуск в направлении р (градиента или антиградиента) в новую точку х, в которой определяется вектор-градиент функции. Поскольку х является точкой минимума функции в направлении р, то вектор-градиент функции в точке х ортогонален вектору р. Затем определяется вектор р который ортогонален относительно некоторой симметрической матрицы вектору р. В результате осуществляется спуск вдоль найденного направления в новую точку х.

Траектория движения к точке экстремума при использовании метода наискорейшего спуска (зелёная ломаная) и метода сопряжённых градиентов (красная ломаная).

Следует отметить, что через каждые n + 1 шагов необходимо выполнять рестарт алгоритмической процедуры (n – размерность пространства поиска). Рестарт алгоритмической процедуры необходим, чтобы забыть последнее направление поиска и стартовать алгоритм заново в направлении скорейшего спуска.

Величина шага выбирается из условия минимума целевой функции f(х) в направлении движения, т. е. в результате решения задачи одномерной оптимизации в направлении градиента или антиградиента:

Другими словами, величину шага определяют при решении данного уравнения:

Поиск оптимального решения завершается в случае, когда на итерационном шаге расчета (несколько критериев):

Траектория поиска остается в малой окрестности текущей точки поиска:

Приращение целевой функции не меняется:

Градиент целевой функции в точке локального минимума обращается в нуль:

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

Методика расчета

1 шаг: Определение аналитические выражения (в символьном виде) для вычисления градиента функции

2 шаг : Задаем начальное приближение

3 шаг: Определяется необходимость рестарта алгоритмической процедуры для обнуления последнего направления поиска. В результате рестарта поиск осуществляется заново в направлении скорейшего спуска.

4 шаг : Вычисление координат единичного вектора по формуле, полученной на шаге 1, и определение координат новой точки при движении по направлению единичного вектора как функция от шага расчета.

Вычисление весового коэффициента и единичного вектора сопряженных направлений на текущем шаге расчета (формула Флетчера-Ривса):

Для первого шага расчета весовой коэффициент не вычисляется (или в случае рестарта алгоритма), а единичный вектор сопряженных направлений определяется следующим образом.

Назначение сервиса . Онлайн-калькулятор предназначен для нахождения минимума функции методом сопряженных градиентов (см. пример). Метод Флетчера-Ривза и метод сопряженных градиентов – это разные методы, хотя второй и является разновидностью первого. Флетчер и Ривз расширили предшествующий метод на случай произвольных функций. В применении к квадратичным функциям он становится равносильным методу сопряженных градиентов. Также реализован вариант Миля-Кентрелла .

f(x 1 ,x 2) =

Метод отыскания минимума функции Метод сопряженных градиентов Метод Флетчера–Ривза Метод Миля-Кентрелла Метод Поллака-Рибьера Метод Ньютона Метод наискорейшего спуска
Начиная из точки ( ; ) . Точность ξ = .
Количество итераций 1 2 3
Решение оформляется в формате Word .

Правила ввода функций :

Например, x 1 2 +x 1 x 2 , записываем как x1^2+x1*x2

Формирует направления поиска, в большей мере соответствующие геометрии минимизируемой функции.
Определение . Два n -мерных вектора х и у называют сопряженными по отношению к матрице A (или A-сопряженными), если скалярное произведение (x, Aу) = 0 . Здесь A - симметрическая положительно определенная матрица размером n х n .

Схема алгоритма метода сопряженных градиентов

Положить k=0.
Ш. 1 Пусть x 0 - начальная точка; ,
d 0 =-g 0 ; k=0.
Ш. 2 Определить x k +1 =x k +λ k d k , где
.
Затем d k+1 =-g k+1 +β k d k ,
,
β k находится из условия d k +1 Ad k =0 (сопряжены относительно матрицы A).
Ш. 3 Положить k=k+1 → Ш. 2.
Критерий останова одномерного поиска вдоль каждого из направлений d k записывается в виде: .
Значения выбираются таким образом, чтобы направление d k было A-сопряжено со всеми построенными ранее направлениями.

Метод Флетчера-Ривса

Стратегия метода Флетчера-Ривса состоит в построении последовательности точек {x k }, k=0, 1, 2, ... таких, что f(x k +1) < f(x k), k=0, 1, 2, ...
Точки последовательности {x k } вычисляются по правилу:
x k +1 =x k -t k d k , k = 0, 1, 2,…
d k = ▽f(x k) + b k -1 ▽f(x k -1)

Величина шага выбирается из условия минимума функции f(х) по t в направлении движения, т. е. в результате решения задачи одномерной минимизации:
f(x k -t k d k) → min (t k >0)
В случае квадратичной функции f(x)= (х, Нх) + (b, х) + а направления d k , d k -1 будут H-сопряженными, т.е. (d k , Hd k -1)=0
При этом в точках последовательности {x k } градиенты функции f(x) взаимно перпендикулярны, т.е. (▽f(x k +1),▽f(x k))=0, k =0, 1, 2…
При минимизации неквадратичных функций метод Флетчера-Ривса не является конечным. Для неквадратичных функций используется следующая модификация метод Флетчера-Ривса (метод Полака-Рибьера), когда величина b k -1 вычисляется следующим образом:

Здесь I- множество индексов: I = {0, n, 2n, 3n, ...}, т. е. метод Полака-Рибьера предусматривает использование итерации наискорейшего градиентного спуска через каждые n шагов с заменой x 0 на x n +1 .
Построение последовательности{x k } заканчивается в точке, для которой |▽f(x k)|<ε.
Геометрический смысл метода сопряженных градиентов состоит в следующем. Из заданной начальной точки x 0 осуществляется спуск в направлении d 0 = ▽f(x 0).В точке x 1 определяется вектор-градиент ▽f(x 1).Поскольку x 1 является точкой минимума функции в направлении d 0 , то▽f(x 1) ортогонален вектору d 0 . Затем отыскивается вектор d 1 , H-сопряженный к d 0 . Далее отыскивается минимум функции вдоль направления d 1 и т. д.

Алгоритм метода Флетчера-Ривса

Начальный этап.
Задать x 0 , ε > 0.
Найти градиент функции в произвольной точке
k=0.
Основной этап
Шаг 1. Вычислить ▽f(x k)
Шаг 2. Проверить выполнение критерия останова |▽f(x k)|< ε
а) если критерий выполнен, расчет окончен,x * =x k
б) если критерий не выполнен, то перейти к шагу 3, если k=0, иначе к шагу 4.
Шаг 3. Определить d 0 = ▽f(x 0)
Шаг 4. Определить или в случае неквадратичной функции
Шаг 5. Определить d k = ▽f(x k) + b k -1 ▽f(x k -1)
Шаг 6. Вычислить величину шага t k из условия f(x k - t k d k) → min (t k >0)
Шаг 7. Вычислить x k+1 =x k -t k d k
Шаг 8. Положить k= k +1 и перейти к шагу 1.

Сходимость метода

Теорема 1. Если квадратичная функция f(x) = (х, Нх) + (b, х) + а с неотрицательно определенной матрицей Н достигает своего минимального значения на R n , то метод Флетчера-Ривса обеспечивает отыскание точки минимума не более чем за n шагов.
Теорема 2. Пусть функция f(x) дифференцируема и ограничена снизу на R m , а ее градиент удовлетворяет условию Липшица . Тогда при произвольной начальной точке для метода Полака-Рибьера имеем
Теорема 2 гарантирует сходимость последовательности {x k } к стационарной точке x * , где ▽f(x *)=0. Поэтому найденная точка x * нуждается в дополнительном исследовании для ее классификации. Метод Полака-Рибьера гарантирует сходимость последовательности {x k } к точке минимума только для сильно выпуклых функций.
Оценка скорости сходимости получена только для сильно выпуклых функций , в этом случае последовательность {x k } сходится к точке минимума функции f(x) со скоростью: |x k+n – x*| ≤ C|x k – x*|, k = {0, n, 2, …}

Пример . Найти минимум функции методом сопряженных градиентов: f(X) = 2x 1 2 +2x 2 2 +2x 1 x 2 +20x 1 +10x 2 +10 .
Решение. В качестве направления поиска выберем вектор градиент в текущей точке:

- t 0 - 0.1786
20
10
= + 0.0459 - t 1 - 0.4667
Так как матрица Гессе является положительно определенной, то функция f(X) строго выпукла и, следовательно, в стационарной точке достигает глобальный минимум .

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

1. Одна из них получается непосредственно из рассмотренного выше процесса, если заменить максимизацию функции на гиперпространстве отысканием максимума на прямой вида (16.15). Как было показано в предыдущем пункте результат от этого не изменится, так как эти максимумы совпадают.

Алгоритм получается таким (модификация I):

А. Начальный шаг.

1) Находится градиент функции в произвольной точке ;

2) полагается ;

3) находится точка , доставляющая максимум функции на прямой ( – параметр).

Б. Общий шаг. Пусть уже найдены точки .

1) находится градиент функции в точке .

2) полагается

В. Останов алгоритма. Процесс обрывается в тот момент, когда градиент обратится в нуль, т. е. достигается максимум на всем пространстве .

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

В реальных условиях, при ограниченной точности вычислений, процесс поиска максимума следует остановить не при точном обращении в нуль градиента, а в тот момент, когда градиент станет достаточно мал. При этом на самом деле может потребоваться более шагов. Более подробно эти вопросы будут рассмотрены ниже.

Чтобы придать алгоритму более «конструктивную» форму, найдем формулу, определяющую точку максимума квадратичной формы на прямой .

Подставляя уравнение прямой в выражение функции , получим

где – градиент в точке . Максимизируя по , получим

и соответственно

. (16.16)

Таким образом, вычисление в пункте 3) алгоритма может быть осуществлено по формуле

.

2. Более известна модификация метода, при которой для вычисления очередного направления используются векторы и вместо и .

Рассмотрим систему векторов , коллинеарных соответственно векторам (т. е. при некоторых действительных ). Для векторов и сохраняется условие -ортогональности

При . (16.17)

Кроме того, из (16.11) следует, что

При . (16.18)

Наконец, остается в силе соотношение типа (16.9)

. (16.19)

Умножая правую и левую части (16.19) на и учитывая (16.17) и (16.18), получим при

откуда при . При получим

. (16.20)

Соотношение (16.20) определяет с точностью до произвольного множителя через и ц. При выводе (16.20) использовались лишь соотношения (16.17), (16.18), (16.19). Поэтому процесс построения векторов может рассматриваться как процесс -ортогонализации векторов .

Полагая в (16.20) и , получим конкретную систему векторов , коллинеарных . Каждый вектор задает направление прямой, исходящей из , на которой лежит . Алгоритм, таким образом, примет следующий вид (модификация II).

А. Начальный шаг, такой же как и в модификации I.

Б. Пусть уже найдены точка и направление .

1) Находится градиент функции в точке ;

2) полагается

,

; (16.21)

3) находится точка , доставляющая условный максимум на прямой

по формуле

. (16.22)

Формулы (16.21) и (16.22) могут быть преобразованы. Так, полагая

имеем из (16.22)

,

откуда получаем, применяя (16.12),

. (16.23)

С другой стороны, поскольку

из (16.21) имеем

и, таким образом,

Наконец, из (16.21), (16.23) и (16.24) получаем

.

Таким образом, формулы (16.21) и (16.22) могут быть записаны в виде

,

. (16.26)

Совпадение результатов действия по формулам (16.21) и (16.22), с одной стороны, и (16.25), (16.26), с другой, может служить критерием правильности вычислений.

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

При этом пункт 1) алгоритма может быть выполнен без изменений, пункт 2) должен выполняться по формуле (16.25), поскольку в эту формулу не входит явно матрица , а пункт 3), нахождение условного максимума на прямой, может быть выполнен одним из известных способов, например, методом Фибоначчи. Применение метода сопряженных градиентов дает обычно значительно более быструю сходимость к максимуму по сравнению с методами наискорейшего спуска, Гаусса – Зайделя и др.

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

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

,

где все и некоторые из . При этом функция имеет максимум, если выполнено условие: когда , то и . Легко видеть, что максимум в этом случае достигается на целом гиперпространстве. А именно, пусть, например, при , меняющемся от 1 до , , а при , меняющемся от до , и . Тогда максимум достигается в точках с координатами при и с произвольными значениями при . Они образуют гиперпространство размерности .

Если же при некоторых , a , то функция не имеет максимума и возрастает неограниченно. В самом деле, пусть, например, и ; тогда, если положить при и устремить к , то, очевидно, и будет возрастать до бесконечности.

Оказывается, что метод сопряженных градиентов (при точном счете) позволяет в первом случае достигнуть максимума не более чем за шагов, где – число не равных нулю, а во втором случае не более чем через шагов выводит на направление, по которому функция возрастает неограниченно.

В исходной системе координат функция имеет вид

,

причем матрица вырождена и имеет ранг . При этом, как и раньше, обращение градиента в нуль есть критерий достижения максимума, а ортогональность градиента гиперпространству – критерий условного экстремума на гиперпространстве.

Рассмотрим применение метода сопряженных градиентов в форме II в этом случае. Здесь приходится изменить условие остановки, т. е. теперь возможно, что при вычислении длины шага

знаменатель может обратиться в нуль (при вычислении значения величина также входит в знаменатель, но если она равна нулю, то уже предыдущий шаг невозможен).. В самом деле пусть при ортогонален гиперпространству

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

Следовательно, останов обязательно произойдет при .

Метод наискорейшего спуска

При использовании метода наискорейшего спуска на каждой итерации величина шага а k выбирается из условия минимума функции f(x) в направлении спуска, т. е.
f(x [k ] -a k f"(x [k ])) = f(x [k] - af"(x [k ])) .

Это условие означает, что движение вдоль антиградиента происходит до тех пор, пока значение функции f(x) убывает. С математической точки зрения на каждой итерации необходимо решать задачу одномерной минимизации по а функции
j(a) = f(x [k ] - af"(x [k ])) .

Алгоритм метода наискорейшего спуска состоит в следующем.

1. Задаются координаты начальной точки х .

2. В точке х [k ], k = 0, 1, 2, ... вычисляется значение градиента f"(x [k ]) .

3. Определяется величина шага a k , путем одномерной минимизации по а функции j(a) = f(x [k ] - af"(x [k ])).

4. Определяются координаты точки х [k+ 1]:

х i [k+ 1] = x i [k ] - а k f" i [k ]), i = 1 ,..., п.

5. Проверяются условия останова стерационного процесса. Если они выполняются, то вычисления прекращаются. В противном случае осуществляется переход к п. 1.

В рассматриваемом методе направление движения из точки х [k ] касается линии уровня в точке x [k+ 1] (Рис. 2.9). Траектория спуска зигзагообразная, причем соседние звенья зигзага ортогональны друг другу. Действительно, шаг a k выбирается путем минимизации по а функции ц(a) = f(x [k] - af"(x [k ])) . Необходимое условие минимума функции d j(a)/da = 0. Вычислив производную сложной функции, получим условие ортогональности векторов направлений спуска в соседних точках:

d j(a)/da = -f"(x [k+ 1]f"(x [k ]) = 0.

Градиентные методы сходятся к минимуму с высокой скоростью (со скоростью геометрической прогрессии) для гладких выпуклых функций. У таких функций наибольшее М и наименьшее m собственные значения матрицы вторых производных (матрицы Гессе)

мало отличаются друг от друга, т. е. матрица Н(х) хорошо обусловлена. Напомним, что собственными значениями l i , i =1, …, n , матрицы являются корни характеристического уравнения

Однако на практике, как правило, минимизируемые функции имеют плохо обусловленные матрицы вторых производных (т/М << 1). Значения таких функций вдоль некоторых направлений изменяются гораздо быстрее (иногда на несколько порядков), чем в других направлениях. Их поверхности уровня в простейшем случае сильно вытягиваются, а в более сложных случаях изгибаются и представляют собой овраги. Функции, обладающие такими свойствами, называют овражными. Направление антиградиента этих функций (см. Рис. 2.10) существенно отклоняется от направления в точку минимума, что приводит к замедлению скорости сходимости.

Метод сопряженных градиентов

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

f(x) = (х, Нх) + (b, х) + а

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

По определению, два n -мерных вектора х и у называют сопряженными по отношению к матрице H (или H -сопряженными), если скалярное произведение (x , Ну) = 0. Здесь Н - симметрическая положительно определенная матрица размером п хп.

Одной из наиболее существенных проблем в методах сопряженных градиентов является проблема эффективного построения направлений. Метод Флетчера-Ривса решает эту проблему путем преобразования на каждом шаге антиградиента -f(x [k ]) в направление p [k ], H -сопряженное с ранее найденными направлениями р , р , ..., р [k -1]. Рассмотрим сначала этот метод применительно к задаче минимизации квадратичной функции.

Направления р [k ] вычисляют по формулам:

p [k ] = -f"(x [k ]) +b k-1 p [k -l], k >= 1;

p = -f "(x ) .

Величины b k -1 выбираются так, чтобы направления p [k ], р [k -1] были H -сопряженными:

(p [k ], Hp [k- 1])= 0.

В результате для квадратичной функции

итерационный процесс минимизации имеет вид

x [k +l] =x [k ] +a k p [k ],

где р [k ] - направление спуска на k- м шаге; а k - величина шага. Последняя выбирается из условия минимума функции f(х) по а в направлении движения, т. е. в результате решения задачи одномерной минимизации:

f(х [k ] + а k р [k ]) = f(x [k ] + ар [k ]) .

Для квадратичной функции

Алгоритм метода сопряженных градиентов Флетчера-Ривса состоит в следующем.

1. В точке х вычисляется p = -f"(x ) .

2. На k- м шаге по приведенным выше формулам определяются шаг а k . и точка х [k+ 1].

3. Вычисляются величины f(x [k +1]) и f"(x [k +1]) .

4. Если f"(x ) = 0, то точка х [k +1] является точкой минимума функции f(х). В противном случае определяется новое направление p [k +l] из соотношения

и осуществляется переход к следующей итерации. Эта процедура найдет минимум квадратичной функции не более чем за п шагов. При минимизации неквадратичных функций метод Флетчера-Ривса из конечного становится итеративным. В таком случае после (п+ 1)-й итерации процедуры 1-4 циклически повторяются с заменой х на х [п +1] , а вычисления заканчиваются при, где - заданное число. При этом применяют следующую модификацию метода:

x [k +l] = x [k ] +a k p [k ],

p [k ] = -f"(x [k ])+ b k- 1 p [k -l], k >= 1;

p = -f"(x );

f(х [k ] + a k p [k ]) = f(x [k ] + ap [k ];

Здесь I - множество индексов: I = {0, n, 2п, Зп, ...} , т. е. обновление метода происходит через каждые п шагов.

Геометрический смысл метода сопряженных градиентов состоит в следующем (Рис. 2.11). Из заданной начальной точки х осуществляется спуск в направлении р = -f"(x ). В точке х определяется вектор-градиент f"(x ). Поскольку х является точкой минимума функции в направлении р , то f"(х ) ортогонален вектору р . Затем отыскивается вектор р , H -сопряженный к р . Далее отыскивается минимум функции вдоль направления р и т. д.

Рис. 2.11.

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