- •А.В. Аттетков, С.В. Галкин, В.С. Зарубин
- •ПРЕДИСЛОВИЕ
- •Задания для самопроверки
- •ОСНОВНЫЕ ОБОЗНАЧЕНИЯ
- •Буквы латинского алфавита
- •Буквы греческого алфавита
- •1. ЗАДАЧИ ОПТИМИЗАЦИИ
- •1.1. Основные понятия
- •1.2. Некоторые простые примеры
- •1.3. Задачи оптимального проектирования
- •1.4. Задачи оптимального планирования
- •1.5. Классы задач оптимизации
- •Вопросы и задачи
- •2. МЕТОДЫ ОДНОМЕРНОЙ МИНИМИЗАЦИИ
- •2.1. Предварительные замечания
- •2.3. Оптимальный пассивный поиск
- •2.4. Методы последовательного поиска
- •2.5. Сравнение методов последовательного поиска
- •2.6. Методы полиномиальной аппроксимации
- •2.7. Методы с использованием производных
- •Вопросы и задачи
- •3. МИНИМИЗАЦИЯ ВЫПУКЛЫХ ФУНКЦИЙ
- •3.2. Выпуклые функции
- •3.4. Условия минимума выпуклых функций
- •3.5. Сильно выпуклые функции
- •ф{t) = (grad/(а; + th), h)
- •3.6. Примеры минимизации квадратичных функций
- •3.7. Минимизация позиномов
- •Qj = '%2aijci = Q> J = !.*»•
- •Вопросы и задачи
- •4. ЧИСЛЕННЫЕ МЕТОДЫ БЕЗУСЛОВНОЙ МИНИМИЗАЦИИ
- •4.1. Релаксационная последовательность
- •4.2. Методы спуска
- •4.4. Минимизация квадратичной функции
- •4.5. Сопряженные направления спуска
- •5. АЛГОРИТМЫ МЕТОДОВ ПЕРВОГО И ВТОРОГО ПОРЯДКОВ
- •|iufc|
- •5.3. Метод Ньютона
- •5.4. Модификации метода Ньютона
- •5.5. Квазиньютоновские методы
- •Вопросы и задачи
- •6. АЛГОРИТМЫ ПРЯМОГО ПОИСКА
- •6.1. Особенности прямого поиска минимума
- •6.2. Использование регулярного симплекса
- •6.4. Циклический покоординатный спуск
- •6.5. Метод Хука — Дживса
- •Щ + bjej,
- •6.6. Методы Розенброка и Пауэлла
- •Вопросы и задачи
- •7. АНАЛИТИЧЕСКИЕ МЕТОДЫ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ
- •7.2. Минимизация при ограничениях типа равенства
- •7.4. Седловая точка функции Лагранжа
- •7.5. Двойственная функция
- •7.6. Геометрическое программирование
- •Вопросы и задачи
- •8. ЧИСЛЕННЫЕ МЕТОДЫ НЕЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ
- •8.1. Метод условного градиента
- •8.2. Использование приведенного градиента
- •8.5. Метод проекции антиградиента
- •СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ
- •ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ
- •ОГЛАВЛЕНИЕ
- •Математика в техническом университете Выпуск XIV
- •Аттетков Александр Владимирович Галкин Сергей Владимирович Зарубин Владимир Степанович
- •МЕТОДЫ ОПТИМИЗАЦИИ
5. АЛГОРИТМЫ МЕТОДОВ ПЕРВОГО И ВТОРОГО ПОРЯДКОВ
Если ограниченная снизу целевая функция /( ж ) , ж Е Е п , является дифференцируемой на множестве Еп, то алгоритм поиска точки ж* ее минимума можно построить, используя ин формацию, по крайней мере, о градиенте этой функции. Более широкие возможности построения таких алгоритмов возника ют в случае, когда целевая функция дважды дифференцируема, что позволяет использовать ее матрицу Гессе. В этой главе применительно к минимизации дифференцируемых и дважды дифференцируемых функций рассмотрены алгоритмы м ет о дов первого и вт орого порядков соответственно. Общей чертой этих алгоритмов является построение релаксационной посл едо ват ельност и { х к} точек х к 6 Мп, получаемых при выполнении каждой к-й итерации, а различие состоит в используемой ин формации о целевой функции и ее производных.
5.1. Алгоритмы метода градиентного спуска
Направление спуска в м ет оде градиент ного спуска совпа
дает с направлением антиградиента минимизируемой целевой функции /(ж), дифференцируемой в Кп, а элементы релакса ционной последоват ельност и { х к} строят при помощи рекур рентного соотношения вида (4.43)
х к= х к~ 1 + щ иик = х к~ 1 — X fcg ra d /^ -1), Xk > 0 , к Е N,
где w k = —gm df(xk~~1) — антиградиент целевой функции в точке х к~1. При этом говорят, что из точки х кна к-й итерации алгоритма происходит спуск с шагом спуска Xk\wk\. На пер вой итерации (k = 1) спуск начинают из выбранной начальной
точки ж0 Различие алгоритмов метода градиентного спуска состоит в способе выбора значения х^.
Сначала рассмотрим способ выбора этого значения, харак терный для метода дробления шага и обеспечивающий выпол нение на каждой А;-й итерации неравенства
f { x k~l) - f { x k)>tjjxk\wk\2, |
(5.1) |
где и Е (0,1), гарантирующего сходимость последовательности {\wk\} к нулю (см. 4.3). Если на к-й итерации не выполнено это неравенство при некотором начальном значении х^ —хо, то процедуру дробления шага проводят в соответствии с фор мулой = z/xo, где v Е (0,1) — заданный постоянный коэф фициент дробления шага, а г — номер этапа дробления, на котором неравенство (5.1) будет выполнено.
В целом алгоритм с использованием дробления шага можно представить следующим образом. Выбираем начальную точку ж0 и параметр точности поиска е$ > 0 в условии |ги*| < ез
прекращения итераций, а также значения z/и XQ. В неравенстве (5.1) обычно принимают ш = 1/2. Вычисляем значение /(ж 0) целевой функции /(ж) в точке ж0, полагаем k = 1 и переходим к основной части алгоритма.
1. В точке x k~l Е М71, найденной на (к—1)-й итерации (на первой итерации в точке ж0), вычисляем антиградиент wk = = —grad f ( x k~l). При выполнении неравенства |ги*| < £з пре кращаем дальнейшие итерации и полагаем ж* « ж*” 1, f{x*) « « f ( x k~l). В противном случае переходим к п. 2.
2. Определяем точку х к = х к~ 1 + xjcwk и значение / ( х к) целевой функции в этой точке. Если неравенство (5.1) (ш = 1/2) выполнено, то полагаем* X ^ = XQ, Л::= А; + 1 и возвращаемся к п. 1 . В противном случае переходим к п. 3.
3. Полагаем х* := ищ и возвращаемся к п. 2.
* Здесь и далее при описании алгоритмов используем символ присва ивания :=, который указывает, что значение величины в правой части формулы нужно присвоить величине, записанной слева от него. Например, запись к:= к+ 1 означает увеличение номера итерации на единицу.
Пример 5.1 . При помощи описанного алгоритма найдем решение задачи безусловной минимизации функции f(xi,x%) =
= 6x^ —4 xiX2 + 3x2 + 4y/5(xi + 2 x2 ) + 2 2 (см. пример 3.18). Выбе рем начальную точку ®° = (—2, 1), при этом f{x°) = 57. Кроме того, фиксируем £3 = 0,01, щ = 0,1 и v = 0,5. Воспользу емся тем, что функция квадратичная и имеет положительно определенную матрицу с собственными значениями Ai = 4 и
чение хо = 0,1 € (0, 2/Аг) обеспечи |
|
|
х2j |
||||
|
|
JL |
|||||
вает (сильную) сходимость метода |
|
|
|||||
|
|
|
|||||
градиентного спуска с постоянным |
|
/ |
Л О |
||||
на всех итерациях значением |
= |
|
|
1 Xl |
|||
|
|
|
|||||
= щ (см. 4.4). При этом в соответ |
/ |
/ |
/ ^ \ 2 |
||||
ствии с (4.53) справедлива оценка |
|||||||
j |
|
/ |
|||||
|
|
|
|
|
1 |
||
\xk-x*\ ^ |
|®°-®*|, |
keN, |
1 |
|
|
||
и последовательность { x k} |
сходит- |
\ |
|
|
|||
ся к искомой точке х* Е М2 со скоро |
|
|
|
||||
стью геометрической прогрессии, |
|
|
Рис. 5.1 |
||||
имеющей знаменатель q = 5/ 12. |
|
|
|
|
|||
На рис. 5.1 представлена траектория |
поиска точки х* = |
||||||
= (—ч/5, —2\/5) |
минимума этой функции, а в табл. 5.1 при |
ведены результаты вычислений (отметим, что у/Ъ~ 2,2361 с точностью 5 •10-5 ).
Характерной особенностью процесса поиска в данном слу чае является то, что на первых итерациях спуск в направлении антиградиента приводит к существенному убыванию значения минимизируемой функции по сравнению с ее значением в на чальной точке х°. Затем темп убывания значений функции замедляется. Эта особенность, уже отмеченная ранее (см. 4.3), снижает эффективность используемого алгоритма на заверша ющей стадии поиска (для выполнения условия |iofc|< £3 потре бовалось 15 итераций). #
|
|
|
|
Таблица 5.1 |
к |
х к |
f ( x k) |
|grad/(a:fc)| |
|
0 |
( - 2,000, 1 ,000) |
57,000 |
37,148 |
|
1 |
(-1,047, -0,594) |
7,150 |
18,553 |
|
2 |
(—0,923, |
-2,446) |
-15,976 |
10,309 |
3 |
(—1,688, |
—3,136) |
-23,772 |
5,953 |
4 |
(—1,811, |
-3,719) |
-26,494 |
3,508 |
5 |
(—2,020, —4,001) |
-27,460 |
2,087 |
|
6 |
(—2,091, |
—4,197) |
-27,806 |
1,248 |
7 |
(—2,155, |
-4,304) |
-27,930 |
0,747 |
8 |
(—2,185, |
—4,372) |
-27,975 |
0,448 |
9 |
(—2,206, |
—4,412) |
-27,991 |
0,269 |
10 |
(-2,218, |
—4,436) |
-27,997 |
0,161 |
11 |
(—2,225, |
-4,450) |
-27,999 |
0,097 |
12 |
(-2,230, -4,459) |
-28,000 |
0,058 |
|
13 |
(—2,232, |
-4,464) |
-28,000 |
0,035 |
14 |
(—2,234, |
—4,467) |
-28,000 |
0,021 |
15 |
(—2,235, |
—4,469) |
-28,000 |
0,013 |
16 |
(—2,235, |
-4,470) |
-28,000 |
0,008 |
Рассмотрим еще один пример реализации описанного ал горитма, иллюстрирующий влияние выбранного значения и е G (0,1) коэффициента дробления шага на количество итераций, обеспечивающих достижение заданной точности поиска точки х* минимума целевой функции f(x).
Пример 5.2. Рассмотрим задачу минимизации функции f(x\,X2 ) = (х2 —Х2 )2 + (TI — I)2, выбрав начальную точку х° = = (—1, —2), в которой f(x°) = 13, и параметры £3 = 10_3, хо = 1.
Результаты поиска точки минимума х* = (1 , 1 ) рассматри ваемой функции при различных значениях коэффициента дро бления шага и Е (0, 1 ) (приближенное значение точки миниму ма, значение функции в этой точке и количество итераций N ) приведены в табл. 5.2. Траектории поиска точки минимума в
Таблица 5.2
V |
Ж* |
|
f { x N) |
N |
Рисунок |
|
0,2 |
(0,999, |
0,997) |
0,132-Ю "5 |
102 |
5.2, а |
|
0,4 |
(0,999, 0,998) |
0,119-Ю "5 |
76 |
5.2,6 |
||
0,5 |
(0,999, |
0,998) |
0,100- 1 0 -5 |
72 |
5.3, а |
|
0,6 |
(0,999, |
0,997) |
0,157 |
10~5 |
54 |
5.3,6 |
0,8 |
(0,999, |
0,997) |
0,159 Ю " 5 |
66 |
5.3, в |
|
0,5 |
(0,999, |
0,998) |
0,066 •10"5 |
85 |
5.3, г |
каждом варианте показаны на рис. 5.2 и 5.3 (в табл. 5.2 даны ссылки на соответствующий каждой траектории рисунок).
Из результатов поиска видно, что значение и существен но влияет на необходимое количество итераций, обеспечива ющих поиск точки ж* минимума рассматриваемой функции с заданной точностью. Наименьшее количество итераций соот ветствует выбору значения и на отрезке [0,5, 0,8].
б
Рис. 5.2
Отметим, что на практике значение х^ на к-й итерации вы бирают так, чтобы выполнялось неравенство f ( x k~l) —f ( x k) > > 0. Это равносильно выполнению неравенства (5.1) при и = 0. На рис. 5.3, г показан именно этот вариант алгоритма гради ентного спуска при хо = 1 и v = 0,5. #
Эффективность алгоритма, использующего спуск в напра влении антиградиента, можно несколько повысить, если значе ние Х£ на каждой к-й итерации выбирать путем минимизации функции
Фк{х) = / ( * fc_1 + KWk), х > 0, |
(5.2) |
т.е. применить метод наискорейшего спуска. |
Напомним, что |
для строго выпуклой функции /(ж) это равносильно проце дуре исчерпывающего спуска, но в общем случае значение х, соответствующее наименьшему значению функции ^ ( х ) , не совпадает со значением, получаемым при помощи исчерпываю щего спуска (см. замечание 4.2). Отметим, что поиск минимума функции фк{я ) может оказаться довольно трудоемкой самосто ятельной задачей, требующей применения методов одномерной минимизации (см. 2), но для сильно выпуклой квадратичной
целевой функции значение х^ определено однозначно формулой (4.55).
Выбор значения х^ как при помощи исчерпывающего спус ка, так и методом наискорейшего спуска гарантирует сходи мость последовательности {ги^} к нулю (см. замечание 4.3). Поэтому в качестве условия прекращения итераций и при этом варианте выбора значения х^ целесообразно использовать не равенство |ги*| < £3.
Опишем алгоритм наискорейшего спуска в случае произ вольной дифференцируемой целевой функции /(ж ), х Е К71. Предварительно выберем начальную точку ж0 и параметр точ ности поиска £3, положим k = 1 и перейдем к основной части алгоритма.
1 . В точке ж*-1, найденной на (к—1 )-й итерации (в точке ж0 на первой итерации), находим значение f ( x k~l) целевой функ
ции и ее антиградиент wk = —grad/(ж *-1). При выполнении неравенства \wk\< £3 дальнейшие итерации прекращаем и пола гаем х* ж х к~х, /(ж*) ~ f { x k~l). В противном случае переходим к п. 2.
2. Минимизируя функцию фк{К) (5.2), находим значение х^ и точку х к — x k~l + х^ги*, полагаем к := к + 1 и возвращаемся к п. 1 .
Пример 5.3. Применим рассмотренный алгоритм к поиску минимума той же квадратичной функции, что и в примере 5.1, приняв х° = (—2, 1) и £3 = 0,01. Так как эта функция явля ется сильно, выпуклой (см. при мер 3.18), то значения х^ выби раем в соответствии с (4.55). В табл. 5.3 приведены результаты вычислений, а на рис. 5.4 иллю стрируется процесс поиска точ ки х * = (—л/5, —2\/5) минимума этой функции и выполнение усло вия (4.45) ортогональности напра влений спуска на двух следующих
друг за другом итерациях.
При том же значении £3 = 0,01
Рис. 5.4
параметра точности для заверше ния вычислений в данном примере потребовалось на две итера ции меньше, чем в примере 5.1. #
Примеры 5.1 и 5.3 показывают, что алгоритм метода на искорейшего спуска в случае квадратичной функции не дает заметного выигрыша по количеству итераций по сравнению с алгоритмом, использующим метод дробления шага. Минимиза ция же неквадратичной функции при сопоставимом количестве итераций, необходимых для достижения заданной точности при помощи этих алгоритмов, может потребовать существенно большего общего объема вычислений по методу наискорейшего
|
|
|
|
|
Таблица 5.3 |
к |
х к |
/(* * ) |
Щ: |
|grad/(»fc)| |
|
0 |
( - 2,000, 1 ,000) |
57,000 |
— |
37,148 |
|
1 |
(-0,283, -1,872) |
-5,154 |
0,090 |
15,182 |
|
2 |
(—2,173, |
—3,001) |
-21,860 |
0,145 |
9,985 |
3 |
(-1,711, -3,773) |
-26,350 |
0,090 |
4,081 |
|
4 |
(-2,219, -4,077) |
-27,556 |
0,145 |
2,684 |
|
5 |
(-2,095, -4,284) |
-27,881 |
0,090 |
1,097 |
|
6 |
(-2,231, -4,366) |
-27,968 |
0,145 |
0,721 |
|
7 |
(—2,198, |
-4,422) |
-27,991 |
0,090 |
0,295 |
8 |
(—2,235, |
-4,444) |
-27,998 |
0,145 |
0,194 |
9 |
(—2,226, |
-4,459) |
-27,999 |
0,090 |
0,079 |
10 |
(—2,236, |
-4,464) |
-28,000 |
0,145 |
0,052 |
11 |
(—2,233, |
-4,468) |
-28,000 |
0,090 |
0,021 |
12 |
(—2,236, |
-4,470) |
-28,000 |
0,145 |
0,014 |
13 |
(—2,235, |
-4,471) |
-28,000 |
0,090 |
0,006 |
спуска вследствие поиска на каждой итерации минимума функ ции ipk{x) (5.2). Поэтому необходимое количество итераций еще не является критерием эффективности того или иного ал горитма.
5,2. Метод сопряженных направлений
Среди методов первого порядка поиска минимума целе вой функции /(ж ), х Е Еп, особое место занимает метод сопряженных направлений, основанный на свойствах век торов, сопряженных относительно некоторой квадратной ма трицы (см. 4.5). Этот метод по сравнению с методом наиско рейшего спуска требует, как правило, заметно меньшего коли чества итераций для достижения той же точности поиска при сопоставимом объеме вычислений на каждой итерации. Раз личие в способах построения системы сопряженных векторов,
определяющих сопряженные направления спуска, порождает несколько алгоритмов метода сопряженных направлений.
Сначала рассмотрим алгоритм, предназначенный для поис ка точки х * минимума сильно выпуклой на выпуклом множе стве Rn квадратичной функции вида (3.37)
/(* ) = ^{Qx,x) + {c,x), |
® e R n, |
(5.3) |
где Q — положительно определенная матрица порядка п, а с е К п — заданный вектор. Напомним, что эта функция имеет единственную точку х* = —Q~1c, в которой она достигает наи меньшего значения. Выше (см. 4.5) показано, что, располагая произвольной системой векторов рг 6 Rn, i = 1 , п, сопряженных относительно матрицы Q, обратную к ней матрицу Q- 1 можно вычислить при помощи соотношения (4.65)
Q-1 |
f р Чр Т |
|
(Qv\ р*)' |
||
|
Но построение системы сопряженных векторов предста вляет собой самостоятельную и в общем случае достаточно сложную и трудоемкую в вычислительном отношении зада чу* Особенность алгоритмов метода сопряженных направле ний состоит в том, что систему сопряженных векторов строят последовательно в процессе выполнения итераций, причем най денный на очередной, к-й итерации вектор рк Е Шп определяет на этой итерации направление спуска. Выше (см. 4.5) из ложена элементарная процедура построения системы из двух сопряженных векторов в R2, используемых при минимизации квадратичной функции двух переменных. Обобщим эту проце дуру применительно к минимизации функции (5.3).
Выберем начальную точку ж0 Е R71, найдем в этой точке ан тиградиент w l = —grad/(ж 0) = —Qx° —с и положим р 1 = w l. Ясно, что если \р1\ф 0, то вектор р 1 определяет на первой
*См.: Пшеничный Б .Н ., Данилин Ю .М .
(к = 1 ) итерации направление спуска (в противном случае точ ка х° удовлетворяет необходимому условию минимума, а это в случае функции (5.3) равносильно тому, что х° = х* — един ственная точка наименьшего значения этой функции). Считая, что \р1\Ф 0, и проводя исчерпывающий спуск, при помощи (4.55) находим значение
|w 1]2 |
IP 1!2 |
Xl (Qw1,™1) ~ (Q p^ p1) |
и точку х 1 = х° + х\р 1. Таким образом, первая итерация полно стью совпадает с итерацией алгоритма наискорейшего спуска.
На второй итерации (к = 2) вычислим антиградиент w2 = = —grad/(aj1) = —Qxl —с в найденной точке х 1. Пусть |ги2|ф О,
так как в противном случае х 1= х*. Положим |
|
|
p2='y1pl + w 2 |
(5.4) |
|
и, умножив это равенство скалярно на вектор |
Qpl ф 0, |
за |
пишем (Q p\p2) = (Qp1, 7 IP* + w2). Потребуем, |
чтобы |
век |
торы р 1 и р2 были сопряженными относительно матрицы Q, |
||
т.е. чтобы выполнялось равенство (Q p\p2) = 0 . |
Тогда 71 = |
= - (Qp1, w2) / (Qp1, р 1) . Убедимся, что |р2|ф 0. В самом деле, при |р2|= 0 имеем w2 = —71Р1 и после умножения скалярно на вектор w2 ф 0п приходим к противоречию:
(ги2, w2) = \w2\ = - 7 1 (ги2, р 1) = (ш2, w l) = 0,
поскольку при исчерпывающем спуске в соответствии с (4.45) антиградиенты на двух следующих друг за другом итерациях ортогональны. Вектор р2 задает направление спуска из точкй ж1, так как с учетом (5.4)
(grad/(®1),p 2) = - (го2, jip 1 + w2) =
= —71 (w2, p 1) —(го2, го2) = —|го2|2 < 0.
Если в направлении вектора р2 провести исчерпывающий спуск, то теперь при нахождении точки х 2 = х 1 + х 2р2 для вычисления значения х 2 нельзя использовать (4.55), так как в общем случае 71 Ф0 и поэтому направление спуска из точки х 1 не совпадает с направлением антиградиента в этой точке. Вычислим в точке х 2 антиградиент
w3 = - grad/(ж 2) = -Q x 2 - с |
= - Q x1 - x 2Qp2 - c = w2- |
K 2Qp2 |
||
и после умножения |
скалярно |
на вектор р2 с учетом |
(4.57) |
|
получим (го3, р2) = (го2 — x 2Qp2,р2) = 0, откуда |
|
|||
_ |
(го2,Р2) |
= |
(grad/(a;1),p 2) |
(5.5) |
X2 ~ ( Q p 2,p 2) |
|
(Qp2,p 2) |
||
|
|
Так как |
w3 —го2 = —Qx2 —с + Qx1 + с = —Q{x2 —х 1) = |
|
= —x 2Qp2, то с учетом го1 = р |
1 имеем |
|
(го3, го1) = |
(го2 - x 2Qp2, го1) |
= (го2, го1) - х 2 (<?р2, р 1) = 0, |
поскольку при исчерпывающем спуске на первой итерации (го2, го1) = 0, a (Qp2,р 1) = (Qp1,р 2) = 0 в силу симметричности матрицы Q и Q-ортогональности векторов р 1 и р 2. Следова тельно, при исчерпывающем спуске в пространстве К", п > 2, антиградиенты ортогональны на первых трех итерациях.
Продолжая описанную процедуру построения сопряженных векторов, с помощью метода математической индукции можно показать*, что на любой к-й итерации при к = 1 , п—1
' У +1=7*р'с+ гл*+1,
( Q p * ^ 1)
7* =
(Qpk,pk)
(5.6)
wk+1 = wk —XfcQpfc,
(Qpfc+1,pi) = 0 ,
( (гп/г+1, гог) = 0, г = 1 , к,
*См.: Васильев Ф .П ., а также: Базара М .} Шеттпи К.
и при этом Xk = (wk, pfc) / (Qp*, p*) и ж* = x k~l + XkPk. Та ким образом, эта процедура за п итераций позволяет построить систему векторов рг Е R71, г = 1, п, сопряженных относительно матрицы Q и в силу леммы 4.5 линейно независимых. Анти градиенты ги* = —grad/(®fc_1), /с Е N, в соответствии с (5.6) образуют ортогональную систему векторов. Так как в Еп не может быть более п ненулевых ортогональных векторов, то один из антиградиентов wk, к = 1 ,п + 1 , с номером г должен быть нулевым вектором, т.е. w%= —grad/(®1-1) = 0П. Поэто му точка х* = ж1”1 минимума функции f(x) будет найдена не более чем за п итераций.
Пример 5.4. Описанную процедуру построения сопряжен ных векторов используем для поиска точки х* минимума функ ции f(x 1,^2) = 6ж2 — Ах\Х2 + 3^2 + 4\/5(a;i + 2x2) + 22 двух пе ременных, рассмотренной в при мерах 5.1 и 5.3, приняв в каче стве начальной точку ж0= (—2, 1).
На рис. 5.5 представлены две ите рации поиска, причем первая из них полностью совпадает с первой итерацией в примере 5.3, прове денной по методу наискорейшего спуска. На второй итерации ис черпывающий спуск из точки х 1 = = (—0,283, —1,872) в направлении вектора р2, сопряженного с векто
ром р 1, приводит в искомую точку
Рис. 5.5
®* = (—л/5, —2л/5). #
Чтобы использовать метод сопряженных направлений для поиска минимума неквадратичной дифференцируемой функ ции, предварительно необходимо привести систему (5.6) к виду,
'не*содержащему матрицу Q. Это можно сделать, если в итера ционном процессе
х к = х к 1 + Xfcp*, к Е N,
с выбором значения х* > 0 на каждой fc-й итерации путем минимизации функции
Фк(к) = /(a3*_1 + xp fc), х > 0 ,
и 1с-\-1 |
= 7jtр |
k |
I |
в основу построения сопряженных направлении |
|
+ |
+ wk+1 положить свойство ортогональности антиградиентов (а значит, и градиентов) минимизируемой функции
(ги*+1, wl) = О, г = 1 , fc.
Такой способ построения сопряженных направлений спуска в литературе получил название метода сопряженных гради ентов.
Используя последнее уравнение (5.6) при г = /с, третье урав нение, а также равенство (4.57), числитель и знаменатель вто рого уравнения (5.6) можно представить в виде
|
fc+i^ _ |
( y fc+1-u > fc,tofc+1) = _ |
||
('QPk, ™fc+1) = |
|
|
||
к |
„к\ _ |
(tOk+l- W k,pk) |
(5.7) |
|
1 |
||||
(Qpk,Pk) = |
|
Xjfc |
Кк |
|
|
|
|
||
Таким образом, |
вместо второго |
уравнения (5.6) имеем 7^ = |
||
_ i^/c+i |2^ (эд*^ pfc) |
Это выражение можно преобразовать, если |
|||
учесть первое уравнение (5.6), заменив в нем к на к - 1 : |
||||
_ |
|
\wk+l\2 |
\wk+l\2 |
|
lk |
(™k,lk-\Pk- l + wk) ~ 7k- i { w k,pk-') + \wk\2' |
Но если и в (4.57) заменить к на к —1 , то получим (wk, рк~^) = = 0. Следовательно,
\w k+l \2 |
|
|^yfc|2 ’ keN. |
(5.8) |