Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методы оптимизации. Функции нескольких переменных.doc
Скачиваний:
339
Добавлен:
23.03.2016
Размер:
4.91 Mб
Скачать

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

В предыдущих подразделах рассматривались методы Коши и Ньютона. Отмечалось, что метод Коши эффективен при поиске на значительных расстояниях от точки минимума х* и плохо «работает» в окрестности этой точки, тогда как метод Ньютона не отличается высокой надежностью при поиске х* из удаленной точки, однако оказывается весьма эффективным в тех случаях, когда x(k) находится вблизи точки минимума. В этом и последующих подраз­делах рассматриваются методы, которые обладают положительны­ми свойствами методов Коши и Ньютона и основаны на вычислении значений только первых производных. Таким образом, эти методы, с одной стороны, отличаются высокой надежностью при поиске х* из удаленной точки х* и, с другой стороны, быстро сходятся в окрестности точки минимума.

Методы, позволяющие получать решения задач с квадратичными целевыми функциями приблизительно за N шагов при условии использования недесятичных дробей, будем называть квадратично сходящимися. Среди таких методов можно выделить класс алгоритмов, в основе которых лежит построение сопряженных направлений. Выше было сформулировано условие сопряженности для системы направлений s(k), k = 1, 2, 3,…, rN, и симметрической матрицы С порядка NN. Была также установлена связь между построением указанных направлений и преобразованием произвольной квадратичной функции к виду суммы полных

1) Задачи такого типа возникают, например, в регрессионном анализе — Прим. перев.

квадратов; сделан вывод о том, что последовательный поиск вдоль каждого из N направлений, обладающих свойством С-сопряженности, позволяет найти точку минимума квадратичной функции N переменных. Рассмотрена процедура определения системы сопряженных направлений с использованием только значений целевой функции. Ниже для получения сопряженных направлений применяются квадратичная аппроксимация f(x) и значения компонент градиента. Кроме того, потребуем, чтобы рассматриваемые методы обеспечивали убывание целевой функции при переходе от итерации к итерации.

Пусть в пространстве управляемых переменных заданы две произвольные несовпадающие точки x(0) и x(1). Градиент квадратичной функции равен

f(x) = q(x) = Cx + b = g(x) (3.60)

Обозначение g(x) введено здесь для удобства записи формулы. Таким образом,

g(x(0)) = Cx(0) + b,

g(x(1)) = Cx(1) + b.

Запишем изменение градиента при переходе от точки х(0) к точке х(1):

g(x) = g(x(1)) g(x(0)) = C(x(1) - x(0)), (3.61)

g(x) = Cx

Равенство (3.61) выражает свойство квадратичных функций, которое будет использовано ниже.

В 1952 г. Эстенс и Штифель [28] предложили эффективный итерационный алгоритм для решения систем линейных уравнений, который по существу представлял собой метод сопряженных градиентов. Они рассматривали левые части линейных уравнений как компоненты градиента квадратичной функции и решали задачу минимизации этой функции. Позже Флетчер и Ривс [29] обосновали квадратичную сходимость метода и обобщили его для случая неквадратичных функций. Фрид и Метцлер [30] продемонстрировали (допустив, однако, некоторые неточности) возможности использования метода для решения линейных систем с разреженной матрицей коэффициентов. (Определение разреженной матрицы см. в приложении А.) Они подчеркнули простоту реализации метода по сравнению с другими, более общими алгоритмами, что является особенно важной характеристикой с позиций нашего изложения.

Рассмотрение метода будем проводить в предположении, что "целевая функция является квадратичной:

f(x) = q(x) = a + bT x + ½ xT Cx,

а итерации проводятся по формуле (3.42), т.е.

x = x+ αs(x).

Направления поиска на каждой итерации определяются с помощью следующих формул:

s(k) = g(k) + (3.62)

s(0) = g(0), (3.63)

где g(k) = f(x). Так как после определения системы направлений проводится последовательный поиск вдоль каждого из направлений, полезно напомнить, что в качестве критерия окончания одномерного поиска обычно используется условие

f (x)Ts(k) = 0 (3.64)

Значения , i = 1, 2, 3,...,k - 1, выбираются таким образом, чтобы направление s(k) было С-сопряжено со всеми построенными ранее направлениями поиска. Рассмотрим первое направление

s(1) = –g(1) + γ(0)s(0) = –g(1) –γ(0)g(0)

и наложим условие его сопряженности с s(0)

s(1)T Cs(0) = 0,

откуда [g(1) + γ(0)g(0)]TCs(0) = 0.

На начальной итерации

s(0) = ;

следовательно,

[g(1) + γ(0)g(0)]TC[] = 0

Используя свойство квадратичных функций (3.61), получаем

[g(1) + γ(0)g(0)]Tg = 0, (3.65)

Откуда

γ(0) = (gT g(1))/(gT g(0)). (3.66)

Из уравнения (3.65) следует, что

g(1)Tg(1) + γ(0)g(0)Tg(1) g(1) Tg(0) γ(0)g(0)Tg(0) = 0.

При соответствующем выборе α(0) и с учетом формулы (3.64) имеем

g(1) Tg(0) = 0.

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

γ(0) = .(3.67)

Далее определим следующее направление поиска

s(2) = –g(2) + γ(0)s(0) + γ(1)s(1).

и выберем γ(0) γ(1) таким образом, чтобы выполнялись условия

s(2)TCs(0) = 0 и s(2)Cs(1) = 0,

т. е. условия С-сопряженности направления s(2) с направлениями s(0) и s(1). С помощью формул (3.61) и (3.64) можно показать (это предоставляется читателю в качестве упражнения), что здесь γ(0) = 0, а в общем случае γ(i) = 0, i = 0, 1, 2,...,k—2, при любом значении k. Отсюда следует, что общая формула для направлений поиска может быть записана в виде, предложенном Флетчером и Ривсом:

s(k) = –g(k) + s(3.68)

Если f(x) — квадратичная функция, для нахождения точки минимума требуется определить N—1 таких направлений и провести N поисков вдоль прямой (при отсутствии ошибок округления). Если же функция f(х) не является квадратичной, количество направлений и соответствующих поисков возрастает.

Некоторые исследователи на основе опыта проведения вычислительных экспериментов предлагают после реализации каждой серии из N или N + 1 шагов возвращаться к начальной итерации алгоритма, положив s(x) = -g(x). Это предложение остается предметом для изучения, поскольку при минимизации функций общего вида в ряде случаев влечет за собой замедление сходимости. С другой стороны, циклические переходы к начальной итерации повы­шают надежность алгоритма, так как вероятность построения линейно зависимых направлений уменьшается. Если полученное на­правление оказывается линейной комбинацией одного или нескольких полученных ранее направлений, то метод может не привести к получению решения, поскольку поиск в соответствующем подпространстве RN уже проводился. Однако следует отметить, что на практике такие ситуации встречаются достаточно редко. Метод оказывается весьма эффективным при решении практических задач, характеризуется простотой однопараметрической вычислительной схемы и небольшим объемом памяти ЭВМ, необходимым для проведения поиска. Относительно невысокий уровень требований к объему памяти ЭВМ делает метод Флетчера — Ривса (ФР) и его модификации особенно полезным при решении задач большой размерности.

Пример 3.9. Метод Флетчера — Ривса

Найти точку минимума функции

f(x) = 4x + 3x 4xx+ x

если x = [0, 0]T.

Решение.

Шаг 1.f(x) = [8x -4x +1, 6x -4x]T,

s(0) = f(x(0)) = [1, 0]T.

Шаг 2.Поиск вдоль прямой:

x = xαf(x(0)) → α= ⅛,

x = [0, 0]T ⅛ [1, 0]T = [⅛, 0]T

Шаг 3.k = 1.

s(1) = [0, ½]T [¼, 1] [1, 0]T = [¼, ½]T.

Шаг 4.Поиск вдоль прямой:

x = x+ αs(1) → α= ¼,

x = [⅛, 0]T ¼ [¼, ½]T = [,]T,

f(x(2)) = [0, 0]T.

Таким образом, x= х*. Решение получено в результате проведения двух одномерных поисков, поскольку целевая функция квадратичная, а ошибки округления отсутствуют.

Миль и Кентрелл [31] обобщили подход Флетчера и Ривса, предложив формулу

x= x+α{f(x(k)) + γs(x)} (3.69)

где αи γ — параметры, значения которых определяются на каждой итерации. Этот метод, известный как градиентный метод с памятью, очень эффективен по числу необходимых для решения задачи итераций, но требует большего количества вычислений зна­чений функции и компонент градиента, чем метод Флетчера — Ривса. Поэтому алгоритм Миля и Кентрелла оказывается полезным лишь в тех случаях, когда оценивание значений целевой функции и компонент градиента не связано с какими-либо трудностями.

Напомним, что рассмотрение метода Флетчера — Ривса прово­дилось в предположении квадратичности целевой функции и отсутствия ошибок округления в процессе поиска вдоль прямой. Од­нако при реализации ряда методов сопряженные направления определяются без учета одного из указанных предположений (или даже обоих предположений). Среди таких методов наибольшего внима­ния, по-видимому, заслуживает метод, разработанный Ползком и Рибьером [32] в 1969 г. Метод основан на точной процедуре проведения поиска вдоль прямой и на более общем предположении об аппроксимации целевой функции. При этом

γ =, (3.70)

где, как и прежде,

g(x)= g(x) g(x). (3.71)

Если αпараметр, значение которого определяется в результате поиска вдоль прямой, и γ — параметр, значение которого вычисляется по формуле (3.70), то метод сопряженных градиентов Полака — Рибьера реализуется с помощью следующих соотношений:

x= x+αs(x),

s(x) = –f (x) + γs(x). (3.72)

Легко видеть, что единственное различие между методами Полака — Рибьера и Флетчера — Ривса заключается в способах выбора параметра γ.

Известны и другие подобные методы, которые также основаны на проведении точных вычислений при одномерном поиске и на более общей (чем квадратичная) аппроксимации целевой функции (см., например, [33, 34, 35]). Краудер и Вульф [36] в 1972 г., а затем Пауэлл [37] доказали, что методы сопряженных градиентов обладают линейной скоростью сходимости при отсутствии периодического возврата к начальной итерации. Указанные возвраты осуществляются в соответствии со специальной процедурой, которая прерывает процесс построения векторов направлений поиска, а далее вычисления продолжаются по аналогии с построением s(x(0)). Выше отмечалось, что по ряду причин наличие процедуры возврата к начальной итерации повышает устойчивость работы алгоритма, так как позволяет избежать построения линейно зависимых векторов направлений поиска. Пауэлл [38] доказал, что метод Полака — Рибьера также характеризуется линейной скоростью сходимости при отсутствии возвратов к начальной итерации, однако имеет несомненное преимущество перед методом Флетчера — Ривса при решении задач с целевыми функциями общего вида и обладает менее высокой чувствительностью к ошибкам округления при проведении одномерных поисков.

Вопросы разработки эффективных процедур и методов, обеспечивающих возврат к начальной итерации и при этом обладающих малой чувствительностью к ошибкам округления, остаются предметом активных исследований. Бил [39] предложил метод сопряженных градиентов, аналогичный стандартной процедуре Флетчера — Ривса, но вместе с тем не использующий направление вдоль градиента при возвращении к начальной итерации. Он показал, как на основе анализа направления, полученного непосредственно перед возвращением к начальной итерации, можно уменьшить объем необходимых вычислений при решении задач, требующих нескольких возвратов. Пауэлл [38] исследовал стратегию Била, а также другие стратегии возврата к начальной итерации и предложил использовать процедуру возврата либо после проведения каждой серии из N шагов, либо при выполнении неравенства

| g(x)Tg(x) | ≥ 0.2 ||g(x)||. (3.73)

Он продемонстрировал, что стратегию Била, дополненную услови­ем (3.73), можно успешно применять как вместе с формулой Флет­чера — Ривса, так и с формулой Полака — Рибьера, и провел ряд вычислительных экспериментов, результаты которых подтверж­дают превосходство метода Полака — Рибьера (с возвратом). Шэнно [40] исследовал влияние ошибок округления при проведе­нии поисков вдоль прямой и различных стратегий возврата на эффективность методов сопряженных градиентов. Он показал, что стратегия Била (с использованием соответствующей двухпараметрической формулы), дополненная предложенным Пауэллом усло­вием возврата, приводит к существенному уменьшению требуемой точности одномерного поиска и, следовательно, к значительному повышению эффективности полной вычислительной схемы метода сопряженных градиентов. Шэнно также представил численные ре­зультаты, которые указывают на преимущество метода Полака — Рибьера с использованием процедур возврата и округления при поисках вдоль прямой. В работе [41] продемонстрирована ведущая роль методов сопряженных градиентов при решении задач нелиней­ного программирования большой размерности.