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

Метод сопряжённых градиентов (Метод Флетчера — Ривcа)метод нахождения локального экстремума функции на основе информации о её значениях и её градиенте. В случае квадратичной функции в минимум находится не более чем за шагов.

Основные понятия править

Определим терминологию:

Пусть  .

Введём на   целевую функцию  .

Векторы   называются сопряжёнными, если:

  •  
  •  

где  матрица Гессе  .

  Теорема (о существовании).
Существует хотя бы одна система   сопряжённых направлений для матрицы  , т.к. сама матрица   (её собственные вектора) представляет собой такую систему.

Обоснование метода править

Нулевая итерация править

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

Пусть  

Тогда  .

Определим направление

 

так, чтобы оно было сопряжено с  :

 

Разложим   в окрестности   и подставим  :

 

Транспонируем полученное выражение и домножаем на   справа:

 

В силу непрерывности вторых частных производных  . Тогда:

 

Подставим полученное выражение в (3):

 

Тогда, воспользовавшись (1) и (2):

 

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

 

Приняв во внимание последнее, получим из выражения (4) окончательную формулу для вычисления  :

 

К-я итерация править

На k-й итерации имеем набор  .

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

 

Это выражение может быть переписано в более удобном итеративном виде:

 

где   непосредственно рассчитывается на k-й итерации.

Алгоритм править

  • Пусть   — начальная точка,   — направление антиградиента и мы пытаемся найти минимум функции  . Положим   и найдём минимум вдоль направления  . Обозначим точку минимума  .
  • Пусть на некотором шаге мы находимся в точке  , и   — направление антиградиента. Положим  , где   выбирают либо   (стандартный алгоритм — Флетчера-Ривса, для квадратичных функций с  ), либо   (алгоритм Полака–Рибьера). После чего найдём минимум в направлении   и обозначим точку минимума  . Если в вычисленном направлении функция не уменьшается, то нужно забыть предыдущее направление, положив   и повторив шаг.

Формализация править

  1. Задаются начальным приближением и погрешностью:  
  2. Рассчитывают начальное направление:  
  3.  
    • Если   или  , то   и остановка.
    • Иначе
      • если  , то   и переход к 3;
      • иначе   и переход к 2.

Случай квадратичной функции править

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

Литература править

  1. Акулич И. Л. Математическое программирование в примерах и задачах: Учеб. пособие для студентов эконом. спец. вузов. — М.: Высш. шк., 1986.
  2. Гилл Ф., Мюррей У., Райт М. Практическая оптимизация. Пер. с англ. — М.: Мир, 1985.
  3. Коршунов Ю. М., Коршунов Ю. М. Математические основы кибернетики. — М.: Энергоатомиздат, 1972.
  4. Максимов Ю. А.,Филлиповская Е. А. Алгоритмы решения задач нелинейного программирования. — М.: МИФИ, 1982.
  5. Максимов Ю. А. Алгоритмы линейного и дискретного программирования. — М.: МИФИ, 1980.
  6. Корн Г., Корн Т. Справочник по математике для научных работников и инженеров. — М.: Наука, 1970. — С. 575—576.