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

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 06.12.2023

Просмотров: 944

Скачиваний: 18

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
(х) в произвольных точках. Такие ситуации часто встречаются в практически важных задачах оптимизации.Остановимся сначала на вычислительных процедурах вида (3.25), в которых выбор нового приближения к точке минимума определяется сравнением значений функции в нескольких точках пространства En.3.4.1. МИНИМИЗАЦИЯ ПО ПРАВИЛЬНОМУ СИМПЛЕКСУОпределение 3.7.Правильным симплексом в пространстве En на­зывается множество из п + 1 равноудаленных друг от друга точек (вер­шин симплекса). Отрезок, соединяющий две вершины, называется ребром симплекса.В пространстве E2 правильным симплексом является совокупность вершин равностороннего треугольника, в E3 правильного тетраэдра.Если х0 – одна из вершин правильного симплекса в En то координаты остальных п вершин х1 ,..,хn можно найти, например, по формулам: (3.37)где d1 , d2 , a длина ребра. Вершину х0 симплекса, построенного по формулам (3.37), бу­дем называть бaзовой.В алгоритме симплексного метода используется следующее важное свойство правильного симплекса. По известному симплексу можно построить новый симплекс отрaжением какой–либо вершины, например, хk симметрично относительно центра тяжести хc остальных вершин симплекса. Новая и старая вершины и хk связаны соотношением: , где xc . В результате получается новый правильный симплекс с тем же ребром и верши­нами =2xc – хk , хi, i= 0,.. , n, ik. Таким образом, происходит перемещение симплекса в пространстве Еn. На рис. 3.3 представле­на иллюстрация этого свойства симплекса в пространстве
Е2.
Рис. 3.3. Построение нового симплексa в E2 отрaжением точки х:

a — нaчaльный симплекс х0, х1 ,

б — новый симплекс х0, х1 ,

центр отрa­жения — точкaxc = 0+ х1)/2


Поиск точки минимума функции (x) с помощью правильных сим­плексов производят следующим образом. На каждой итерации срав­ниваются значения f (х) в вершинах симплекса. Затем проводят опи­санную выше процедуру отражения для той вершины, в которой f (х) принимает наибольшее значение. Если в отраженной вершине получа­ется меньшее значение функции, то переходят к новому симплексу. В противном случае выполняют еще одну попытку отражения для вер­шины со следующим по величине значением f (х). Если и она не при­водит к уменьшению функции, то сокращают длину ребра симплекса, например, вдвое и строят новый симплекс с этим ребром. В качестве базовой выбирают ту вершину х0 старого симплекса, в которой функция принимает минимальное значение. Поиск точки минимума (x) заканчивают, когда либо ребро симплекса, либо разность между значе­нии функции в вершинах симплекса становятся достаточно малыми. Опишем один из вариантов алгоритма этого метода.Шаг 0. Выбрать параметр точности , базовую точку х0 , ребро a и построить начальный симплекс по формулам (3.37). Вычислить 0).Шаг 1. Вычислить значения f (х) в вершинах симплекса х1 , .., xn .Шаг 2. Упорядочить вершины симплекса х0 , .., хn так, что бы 0)  … 1)  n–1)  n).Шаг 3. Проверить условие (3.38)Если оно выполнено, то вычисления прекратить, полагая х*  х0 , f *  f (x0). В противном случае перейти к шагу 4.Шаг 4. Найти и выполнить отражение вершины хn:

=2xc – хn .Если f () xn), то положить хn= и перейти к шагу 2. Иначе – перейти к шагу 5.

Шаг 5. Найти и выполнить отражение вершины хn1: = 2x c – хn1. Если f ( ) < f (хn1), то положить хn1 = и перейти к шагу 2. Иначе – перейти к шагу 6.

Шаг 6. Перейти к новому правильному симплексу с вдвое меньшим ребром, считая базовой вершиной х0 . Остальные п вершин симплекса найти по формуле хi =i + х0)/2, i=1, .., п. Перейти к шагу 1.

Геометрическая иллюстрация работы алгоритма в пространстве показана на рис. 3.4, где точки х0 , х1 , х2 вершины начального симплекса, а пунктиром указаны процедуры отражения.




Рис. 3.4. Поиск точки минимума функции с помощью правильных симплексов в пространстве


Замечания:

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

2. Если ограниченность снизу целевой функции не оче­видна, то в алгоритм метода следует включить дополни­тельную процедуру останова.
3.4.2. ПОИСК ТОЧКИ МИНИМУМА ПО ДЕФОРМИРУЕМОМУ СИМПЛЕКСУ

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

(3.39)

Геометрическая иллюстрация этих процедур для пространства E2 приведена на рис. 3.5 и 3.6. Так как величина  (0; 1), то выбор точек z1 и z2 соответствует сжатию симплекса;   1, поэтому выбор точки z3 соответствует отражению, а  > 1 и выбор точки z4 приводит к рас­тяжению симплекса. Численные эксперименты показывают, что этот алгоритм хорошо работает в пространстве En для п  6. Отметим, что при деформациях утрачивается свойство правильности исходного симплекса. Поэтому, не стремясь к правильности начального симплекса, его строят из произвольной базовой точки х0En , по формулам
, (3.40)

где e iiй базисный вектор;  параметр симплекса. На практике хорошо зарекомендовал себя следующий набор параметров ,  и  для выбора пробных точек zi в формулах (3.39):

 = 1/2,  = 1 и  =2.


Рис. 3.5. Пробные точки z1,z2,z3,z4 для перехода к новому симплексу


Рис. 3.6. Новые симлексы полученные в результате процедур сжатия (а,б); отражения (в); растяжения(г).

Опишем алгоритм метода поиска точки минимума функции по деформируемому симплексу.

Шаг 0. Выбрать параметр точности , параметры ,  и , базовую точку х0 , параметр  и построить начальный симплекс по формулам (3.37) или (3.40). Вычислить 0).

Шаг 1. Вычислить значения функции в вершинах симплекса х1, . . . , xn .

Шаг 2. Упорядочить вершины х0, . . . , xn так, чтобы 0)  …  n).
Шаг 3. Проверить достижение заданной точности (условие (3.38)). Если оно выполняется, то вычисления завершить, полагая х *  х0, f  *  f (х0). Иначе – перейти к шагу 4.

Шаг 4. Найти и пробные точки zk , k=1, …, 4 пo формулам (3.39). Найти f (z*)= min f (zk). Если f (z*) < f (zn). то положить xn=z* и перейти к шагу 2. Иначе – перейти к шагу 5.

Шаг 5. Уменьшить симплекс, полагая хi = (хi + х0)/2, i = 1,.., nи перейти к шагу 1.

Замечание. Для того чтобы избежать сильной деформации симплекса, алгоритм иногда дополняют процедурой обновления. На­пример, после N шагов алгоритма из точки х0 снова строят симплекс по формулам (3.37) или (3.40), полагая а = ||x0–xn||.

С теоретической точки зрения описанные методы минимизации слабо исследованы, однако практика показывает их работоспособ­ность.

Перейдем теперь к описанию вычислительных процедур вида

(3.31): xk+\ = xk+kpk . В зависимости от способа выбора направления pk и шага k получаются различные алгоритмы минимизации.

3.4.3. МЕТОД ЦИКЛИЧЕСКОГО ПОКООРДИНАТНОГО СПУСКА


Этот метод заключается в последовательной минимизации целе­вой функции (x) сначала по направлению первого базисного вектора е1, затем второго – е2 и т.д. После окончания минимизации по направ­лению последнего базисного вектора еn цикл повторяется.

Опишем этот алгоритм.

Шаг 0. Выбрать х En ,критерий достижения точности (напри­мер, (3.28) или (3.29)), величину . Найти f (x), положить j= 1.

Шаг 1. Решить задачу одномерной минимизации Ф() = f (х + еj) min,   R, т.е. найти *. Положить = х +*еj, вычис­лить f (х).

Шаг 2. Если j < п, то положить х = , j=j+1 и перейти к шагу 1, иначе – перейти к шагу 3.

Шаг 3. Проверить условие достижения точности ||х– || < 

или | (x) – ( )| <. Если оно выполняется, то положить х* = , f  *=f ( ) и закончить поиск. Иначе – положить х = , f (х) = f ( ), j = 1 и перейти к шагу 1.

Замечание. Для приближенного решения вспомогательной задачи одномерной минимизации на шаге 1 алгоритма на практике, как правило, используют метод поразрядного поиска (см. разд. 2.2.2).

Эффективность метода циклического покоординатного спуска существенно зависит от свойств целевой функции.

Пример 3.5. Решить задачу(x)=x2122  min, х Е2 методом циклического покоординатного спуска.

Линии уровня этой целевой функции – окружности с центром в начале координат (рис. 3.7). Выберем произвольную начальную точку х, например х=(3,3). Очевидно, два шага исчерпывающего спуска сначала по направлению е1 , затем – е2 приведут в точку минимума х* = (0,0).

В примере 3.5 точку минимума функции удалось найти точно за конечное число шагов. Это скорее исключение, чем правило.

Пример 3.6. Решить задачу(x)=5x21+5х22 +8x1х2 min, х Е2 методом циклического покоординатного спуска.

Сначала заметим, что поворот системы координат на угол – 45° (замена переменных x1 =(y1+y2) / и x1 =(–y1+y2) / приводит функцию к виду 1(y) =y21+9y22 . Очевидно, линии уровня целевой функции – эллипсы y21/9+y22=c2 (рис. 3.8). Результаты расчетов по приведенному выше алгоритму представлены в табл. 3.2.



Рис. 3.7. К примеру 3.5.Рис. 3.8. К примеру 3.6.

Тaблицa 3.2

Номер итерации


x1


x2


(x)


0


5


5


450


1


–4


5


45


2


–4


3,2


28,8


3


–2,56


3,2


18,43


4


–2,56


2,05


11,8


5'


–1,64


2,05


7,55


6


–1,64


1,31


4,83


7


–1,05


1,31


3,09


8


–1,05


0,84


1,98


9


–0,67


0,84


1,27


10


–0,67


0,54


0,81



Из табл. 3.2 и рис. 3.8 видно, что минимизирующая последовательность {хk} сходится к точке минимума х* = (0,0). Однако в отличие от решения за­дачи из примера 3.5 достижение точки минимума за конечное число шагов не гарантируется. Траектория поиска точки минимума в данной задаче имеет ярко выраженный зигзагообразный характер.Из примера 3.6 видно, что эффективность решения задачи методом циклического покоординатного спуска можно повысить, если дополнить его алгоритм периодически повторяющимся поиском точки минимума в направлениях pi = xi–xi1 из точек xi. Так, например, если из точки х4 провести исчерпывающий спуск в направлении p4 = х4 х2 (координаты точек см. в табл. 3.2), то получим точку (–2,2 10–5 ; 5,6  10–3 ), распо­ложенную значительно ближе к точке минимума х*=(0,0), чем точки х5, х6, х7.

Такой подход, состоящий в последовательном нахождении на­правлений убывания функции и минимизации ее по этим направлени­ям, лежит в основе ряда алгоритмов. Рассмотрим один из них.

3.4.4. АЛГОРИТМ ХУКА – ДЖИВСА


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

а) исследующий покоординатный поиск в окрестности данной точки, предназначенный для определения направления убывания f (х);

б) перемещение в направлении убывания.

Опишем алгоритм исследующего покоординатного поиска из заданной точки х с приращениями по каждой координате j , j= 1, …, n

Шаг 1. Положить = x , i= 1.

Шаг 2. Сделать пробный шаг y= – je j, где e j –j–й базисный вектор. Если ( ) (y), то перейти к шагу 3, иначе – к шагу 4.

Шаг 3. Сделать пробный шаг y= +je j . Если ( ) (y), то перейти к шагу 5, иначе – к шагу 4.

Шаг 4. Положить = у.

Шаг 5. Положить j= j+ 1. Если jn, то перейти к шагу 2. В противном случае исследующий поиск окончен – получена точка для которой ( ) <(y), если  х.

Замечание. В результате исследующего поиска может оказаться, что =х. Тогда исследующий поиск считается неудачным. Если при этом норма приращения  =(1,.., n ) мала, т.е. |||| , где  – заданная точность, то полагают х* = х. Если заданная точность не достигнута, то полагают =/ (постоянная  >1 коэффициент уменьшения шага) и повторяют исследующий поиск.

Приведем теперь полный алгоритм Хука – Дживса.

Шаг 0. Выбрать начальную точку х0 , вектор приращений  =(1,.., n ), коэффициент уменьшения шага  >1, параметр окончания поиска  > 0.

Шаг 1. Провести исследующий покоординатный поиск из точки х0, т.е. найти точку . Если  х , то перейти к шагу 3, иначе – к шагу 2.

Шаг 2. Проверка на окончание поиска. Если ||||<, то прекратить поиск и положить х*0. Иначе – положить =/ и перейти к шагу 1.

Шаг 3. Перемещение из точки х в направлении убывания – х0 : положить х1 = + ( – х0) = 2 – х0 .

Шаг 4. Провести исследующий поиск в точке х1 , т.е. найти точку . Если f ( ) < f ( ), то положить х0 = , = и перейти к шагу 3. Иначе – положить х0 = и перейти к шагу 1.

Пример 3.7. Рассмотрим графическую иллюстрацию решения задачи f (х)=(x1+ 1)2+х22 min методом Хука – Дживса из начальной точки х0 =(2,3), вектор перемещений =(1/2,1).

Целевая функция f (х) представляет собой квадрат расстояния между точками х и х* =(–1,0). Линии уровня f (х) – это окружности с центром в точ­ке х*. Поэтому значения f (х) в промежуточных точках алгоритма легко сравни­вать, оценивая их расстояния от точки х* на рис. 3.9. На рисунке пунктиром выделены траектории исследующего поиска, сплошными линиями – перемещения в направлении убывания. Убеди­тесь в соответствии графической иллю­страции описанному алгоритму.

Рис. 3.9. К примеру 3.7

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

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

3.4.5. МЕТОДЫ СЛУЧАЙНОГО ПОИСКА


Основой для этих методов служит итерационный процесс

, k = 0, 1, …, (3.41)

где k > 0 – величина шага;  =(1 , …, n ) – некоторая реализация n – мерного случайного вектора .тБудем считать, что координаты вектора , – это независимые слу­чайные величины, равномерно распределенные на отрезке [–1; 1]. При­ведем несколько алгоритмов метода случайного поиска. Они могут ис­пользоваться как самостоятельные минимизирующие процедуры, или входить в состав других алгоритмов, например, использоваться для исследующего поиска в алгоритме Хука – Дживса.

Алгоритм 1 (с возврaтом при неудaчном шaге).

Шаг 0. Выбрать параметр точности  > 0, начальный шаг  >0, коэффициент уменьшения шага  >1, предельное число неудачных попыток N, начальную точку х. Вычислить f (х).

Шаг 1. Положить счетчик числа неудачных попыток j= 1.

Шаг 2. Получить реализацию случайного вектора .

Шаг 3. Найти пробную точку y=x+/||||, вычислить f (у).

Шаг 4. Если f (у)< f (х), то положить х = у, f (х) = f (у) и перейти к шагу 3. Иначе – перейти к шагу 5.

Шаг 5. Положить j =j + 1. Еслиj < N, то перейти к шагу 2, иначе к шагу .

Шаг 6. Проверка условия достижения точности. Если  < , то поиск завершить, полагая х*=х, f  *= f (х). Иначе – положить  = /у и перейти к шагу 1.

Иллюстрация построения последовательности (3.41) с помощью описанного алгоритма для функции двух переменных приведена на рис. 3.10, где пунктиром показаны неудачные попытки определения хk+1 из (3.41), не приводящие к уменьшению f (х).



Рис. 3.10. Иллюстрация работы алгоритма 1 в пространстве Е2.

Замечание. На практике предельное число неудачных попыток N обычно полагают равным 3п, где п – число переменных целевой функции.

Алгоритм 2 (наилучшей пробы).

Этот алгоритм отличается от предыдущего только шагами 2 и 3:

Шаг 2. Получить т реализации случайного вектора :

1 , …, m

Шаг 3. Найти пробные точки yi = , i = 1,.., т, вы­делить f (уi). Найти уk из условия f (уk)= и положить у= уk .

3.4.6. МЕТОД СОПРЯЖЕННЫХ НАПРАВЛЕНИЙ


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

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

Рассмотрим сначала проблему поиска точки минимума сильно выпуклой квадратичной функции двух переменных. Ее линиями уровня являются эллипсы (рис. 3.11). Пусть р1 и р2 – направления главных осей этих эллипсов (они могут быть найдены как ортонормированный базис из собственных векторов матрицы A квадратичной функции). Ес­ли из произвольной точки х0E2 выполнить итерационную процедуру хk = х + kрk , k= l, 2, где величина шага k находится из условия исчерпывающего спуска, то, очевидно, потребуется не более двух ша­гов для отыскания точки х*.




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

Такого же результата можно достичь и другим способом. Выберем некоторое направление р1 и две точки х0 и у0 такие, чтобы векторы х0 – у0 и р1 были неколлинеарны (рис. 3.12). Выполнив исчерпывающий спуск из точек х0 и у0 в направлении р1 , получим точки х1 и у1 . По свойству исчерпывающего спуска в точках х1 и у1 имеет место касание соответствующих прямых (направлений убывания) и эллипсов (линий уровня целевой функции). Так как эллипсы различаются гомотетией с центром в точке х* , то точки х* , х1 и у1 расположены на одной пря­мой. Поэтому, полагая р2 = х1–у1 и решая задачу f (х1 + р2)  min , мы находим точку х*. Таким образом, и в этом случае решение задачи ми­нимизации квадратичной сильно выпуклой функции будет получено за конечное число шагов.



Рис 3.12. Определение направления p2 в процессе минимзации сильно выпуклой квадратичной функции двух переменных



Рис. 3.13. Минимизация квадратичной функции

Рассмотренному способу минимизации квадратичных функций двух переменных соответствует, например, такой алгоритм.

Шаг 0. Выбрать начальную точку х0Е2.

Шаг 1. Положить р11 . Найти точку х1 с помощью исчерпывающего спуска из точки х0 по направлению р1: f (х1) = .

Шаг 2. а) положить у=х +с;

б) найти точку у из условия исчерпывающего спуска из точки у0 по направлению р1: f (y1) = ;

в) положить р2 = х1–у1, найти точку x2 из условия f (х2)= , вычисления закончить, положив х*= x2 .

Графическая иллюстрация работы алгоритма представлена на рис. 3.13. Поиск точки минимума доводится по так называемым сопряженным направлениям.

Определение 3.8. Ненулевые векторы р1,..,рk называются сопряженными относительно матрицы A размера (п п) (А–ортогональными), если

i, pj> = 0, i j , i,j = 1, …, k. (3.42)

Пример 3.8. Направления р1 и р2 , использованные в описанном выше алгоритме минимизации квадратичной функции двух переменных, являются A–ортогонaльными.

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

2,p1>=1–y1), p1>=1) – f  (y1), p1> = < f  (x1), p1> – 1), p1>.

Так как точки х1 и у1 получены в результате исчерпывающего спуска по направлению р1, то оба скалярных произведения < f  (x1), p1> и 1), p1> равны нулю (см. (3.34)), поэтому 2, p1> = 0.

Лемма 3.1. Система из п векторов р1 , .., рn, сопряженных относительно положительно определенной матрицы A, линейно незaвисимa.

Предположим противное, т.е. что существует линейная комби­нация, равная нулю:

, (3.43)

где не все i = 0, например k  0. Умножим обе части равенства (3.43) скалярно на вектор Aрk . Тогда, с учетом свойства (3.42), полу­чим k<Aрk, рk>=0. В силу положительной определенности матрицы A для ненулевого вектора рk квадратичная форма <Aрk, рk> прини­мает положительное значение и, следовательно, k = 0. Полученное противоречие доказывает лемму.

Таким образом, п ненулевых A–ортогональных векторов образуют базис в En .

Рассмотрим минимизацию в En квадратичной функции

f (х) = 1/2< Aх, х >+< b, х >+с

с положительно определенной матрицей A с помощью итерационного процесса

xk = xk1 + k pk , k=1, 2, …, (3.44)

где векторы рk A–ортогональны.

Лемма 3.2. Если в итерационном процессе (3.44) нa кaждом шaге используется исчерпывaющий спуск, то величинa шaгa k будет

, k=1, 2, …, (3.45)

Раскрывая рекуррентную формулу (3.44), получаем

. (3.46)

Из формулы (3.46), учитывая выражение для градиента квадратичной функции '(x) = Aх + b, находим

.

(Умножая обе части этого равенства скалярно на вектор рk и учитывая условие исчерпывающего спуска по направлению рk ( < f  (xk), рk > = 0) и A–ортогональность векторов (3.42), получаем

< f  (x0), рk > + k <Aрkk> = 0.

Так как матрица A положительно определена, квадратичная форма <Aрkk>>0 и для величины шага k получаем выражение (3.45).

Теорема 3.9. Последовaтельный исчерпывающий спуск по A–ортогонaльным нaпрaвлениям (3.44) приводит к точке минимумa квaдрaтичной функции не более чем зa п шaгов.

Согласно лемме 3.1 векторы р1 ,.. ,рn образуют базис в En , поэтому будем искать точку минимума х* в виде

, (3.47)

где х0 – произвольная точка En. Подставим выражение (3.47) в необходимое и достаточное условие минимума сильно выпуклой квадратной функции '(х*) = Aх* + b = 0:

Ax0 + b + .

Умножая это равенство скалярно на вектор рk , находим

< f  (x0), рk > + uk <Aрkk> = 0.

или

.

Коэффициенты разложения uk точки х *– х по базису р1 , совпадают с длинами шагов k исчерпывающего спуска (3,45) в итерационном процессе (3.44). Поэтому определение точки х* из (3.47) можно рассматривать как результат п шагов итерационного процесса (3.44), где k = uk.

Таким образом, точка минимума квадратичной функции будет найдена не более чем за п шагов.

Вопрос о нахождении базиса из A–ортогональных векторов в пространстве Еn решается неоднозначно. В качестве такого базиса можно, например, взять ортогональный базис из собственных векторов матрицы A. Однако их поиск особенно при п > 2 представляет собой само­стоятельную довольно сложную задачу.

Итерационный процесс (3.44) последовательной одномерной ми­нимизации по сопряженным направлениям рk можно организовать и без предварительного построения векторов р1 , .., рn, последователь­но находя их в процессе минимизации, как это было сделано выше для функции двух переменных.

Опишем процедуру метода сопряженных направлений для мини­мизации функции п переменных, обобщающую приведенный выше ал­горитм для п = 2.

Шаг 0. Выбрать начальную точку х0Еn .

Шаг 1. Положить р11 . Найти точку х1 из условия f (х1)= .

Шаг 2. а) положить у01+е2 ;

б) найти точку у1 из условия f (у1)= ;

в) положить р1 = х1 у1, найти точку х2 из условия f (х2)= .

Шаг 3. а) положить у1 = х2 + е3;

б) найти у2 , минимизируя (x) последовательно по направлениям р1 и р2 , начиная из точки у1;

в) положить р3 = х2 у2 найти точку х3 из условия f (х3)= .

Шаг n. а) положить уn–1 = хn–1 + е n;

б) найти точку у n, минимизируя f (х) последовательно по направ­лениям

р1,. ., рn–1, начиная из точки уn–1.

в) положить р n= х n–1 – у n–1, найти точку хnиз условия f ( х n)= .

Замечание. Как и в двумерном случае, можно показать, что направления р1,.., рn , построенные при выполнении этого алгоритма, являются A–ортогональными. Поэтому, если f (х) является квадратичной функцией с положительно определенной матрицей A и все задачи одномерной минимизации решаются точно, то х* = хn и вычисления на этом завершаются. Если же f (х) не является квадратичной фунцией или вспомогательные задачи одномерной минимизации решаются приближенно, то необходимо перейти к следующему шагу.

Шаг n + 1. (проверка условия останова). Если ||x0–xn||  , где  – параметр точности, то поиск завершить, полагая х* = хn, иначе – положить х0 = хn и перейти к шагу 1.

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

1   2   3   4   5   6   7   8   9   10

УПРАЖНЕНИЯ

1. Проверить, что точки хi , i=0, .., n, удовлетворяющие формулам (3.37), являются вершинами некоторого правильного симплекса.2. Выполнить несколько итераций решения задачи (x)=(x1 + 1)2 + x22min с помощью правильного симплекса, положить х0 = (5,3) и а = 1. Привести графическую иллюстрацию.Указание: линии уровня целевой функции – окружности с центром в точке (–1, 0).3. Как изменится процедура поиска точки минимума в упражнении 2 при использовании деформируемого симплекса? Дать графическую иллюстрацию (положить  = 0,5, = 1 и  = 2).4. Нарисовать линии уровня целевой функции из примера 3.6 и пояснить медленную сходимость метода циклического покоординатного спуска.5. Можно ли в исследующем поиске алгоритма Хука – Дживса использовать направления р1 , .., рn , отличные от базисных векторов е1 , .., еn ? Должны ли они быть линейно независимыми?6. Выполнить четыре итерации решения задачи (x)=(x1 + 1)2 + x22  min методом Хука – Дживса. Положить  = 1/2,  = (2,1), х0 = (3,4). Привести графическую иллюстрацию.7. Из начальной точки х =(4,3) решить зaдaчу (x)= 5x21 + 5x22 + 8x1x2  min методом сопряженных направлений.Указание: для величины шага k использовать формулу (3.35).8. Показать, что взаимно ортогональные собственные векторы симметрической положительно определенной матрицы A являются A–ортогональными. 9. Проверить, что векторы р1 = (1, 2) и р2 = (5, –1) А–ортогональны относительно матрицы А = . Найти минимум функции (x)= 3x21 – 2x1x2 + 3x22 + x1 + 2x2, выполняя наискорейший спуск последовательно по направлениям р1 и р2 .

3.5. МЕТОДЫ БЕЗУСЛОВНОЙ МИНИМИЗАЦИИ, ИСПОЛЬЗУЮЩИЕ ПРОИЗВОДНЫЕ ФУНКЦИИ

Пусть функция (x) дифференцируема в En . В этом разделе рас­сматриваются итерационные процедуры минимизации видаX k = x k–1 + k p k, k =1, .., x0En, (3.48)где направление убывания рk определяется тем или иным способом с учетом информации о частных производных функции (x
), а величина шага а^>0 такова, что(x k) < (x k–1), k =1,2,.. (3.49)Так как функция предполагается дифференцируемой, то в ка­честве критерия останова в случае бесконечной итерационной по­следовательности {хk}, как правило, выбирается условие (3.30): ||'(xk )|| <, хотя, разумеется, могут быть использованы и другие критерии.

3.5.1. МЕТОД ГРАДИЕНТНОГО СПУСКА

Положим в (3.48) на каждом шаге рk = –f  (x k). Если (x k)  0, то условие (3.36) очевидно выполнено, т.е. направление вектора рk явля­ется направлением убывания функции f (х), причем в малой окрестно­сти точки xk направление рk обеспечивает наискорейшее убывание этой функции. Поэтому можно найти такое k > 0, что будет обеспе­чено выполнение условия (3.49).Приведем алгоритм одного из вариантов метода градиентного спуска.Шаг 0. Задать параметр точности  > 0, начальный шаг > 0, подобрать х  En. Вычислить f (х). Шаг 1. Найти '(x) и проверить условие достижения точности:||'(x)|| < . Если оно выполнено, вычисления завершить, полагая х* = х, f *=f (х). Иначе – перейти к шагу 2.Шаг 2. Найти y=x–'(x) и f (у). Если f (у) < f (х), то положить x =у, f (х) = f (у) и перейти к шагу 1, иначе – перейти к шагу 3.Шаг 3. Положить =/2 и перейти к шагу 2. Замечание. Вблизи стационарной точки функции (x) величина ||'(x)|| становится малой. Это может приводить к замедлению сходимости последовательности {хk}. Поэтому иногда в (3.48) полагают pk = – '(xk)/ ||' (xk)|| , т.е. вместо –'(xk) используют вектор единичной длины того же направления.Приведем теоретическое обоснование сходимости градиентного метода с постоянным шагом k  ;xk+1= xk–'(xk) (3.50)и получим оценку скорости сходимости при минимизации выпуклой вадратичной функции f (х)= <Ах, х>+>+ с.

Теорема 3.10. Пусть симметрическaя мaтрицa A квaдрaтичной функции f (х) положительно определенa, l и L – ее нaимень­шее и нaибольшее собственные знaчения (0 < lL). Тогдa при любых (0; 2/L) и х0En итерaционнaя последовaтельность (3.50) сходится к единственной точке глобaльного минимумa функции (х) линейно (со скоростью геометрической прогресcии (см. рaзд. 3.4)):

||(xk – x*)|| qk ||(x0 – x*)|| , (3.51)

где q = max {|1 – l|, |1 – L|}.

Так как матрица A положительно определена, функция f (х) cильно выпукла и, следовательно, точка х* существует и единственна. Градиент '(x) в этой точке обращается в нуль, т.е. f '(x*)=Аx*+b=0. Для точки хk имеем: f '(xk)=Аxk+b= Аxk+b – Аx*– b = А(xk–x*). Оценим норму разности

||(xk – x*)|| = ||xk – f '(xk–1) – x*|| = ||xk–1 – x* – A(xk–1 – x* )|| = || (E– A)(xk–1 – x* )||.
По свойству норм (3,6) имеем:

||xk – x*||  ||E– A||||xk–1 – x*||. (3.52)

Оценка сверху для нормы матрицы (3,7) дает:

||E– A||  q = max { |1– l|, |1– L| }. (3.53)

Зависимость q() представлена на рис. 3.14, из которого видно, что при  (0; 2/L) величина q < 1. Кроме того, из неравенств (3.51) и (3.53) получаем: ||xk – x*||  q ||xk–1 – x*|| , т.е. ||xk – x*||  qk ||x0 – x*||.



Рис 3.14. Зависимость оценки знаменателя геометрической прогрессии

Из рис. 3.14 видно, что вели­чина q принимает минимальное значение q*=(Ll)/(L + l) при  =* =2/(L + l). Поэтому от соотношения между L и l суще­ственно зависит число итераций градиентного метода при мини­мизации выпуклой квадратичной функции. Проиллюстрируем это на примере квадратичной функ­ции двух переменных.

При L = l> 0 точка минимума f (х) находится за один шаг.

Пример 3.9. Решить задачу f (x) =x2122  min градиентным методом из начальной точки х0 = (1,1), положив  =*.

В данном случае матрица A квадратичной функции

.

Очевидно, l= L= 2. Поэтому

* = 2/(L + l) = 1/2 и х1 = х0 '(х0) = (0,0).

Легко проверить, что х0 = х1 .

При l= L линии уровня целевой функции f (x) это концентриче­ские окружности, поэтому направление антиградиента указывает на центр этих окружностей, т.е. на точку глобального минимума f (х).

Если L>> l > 0, то линиями уровня являются эллипсы, полуоси ко­торых сильно различаются. Поэтому направление антиградиента в не­которой точке может сильно отличаться от направления к точке гло­бального минимума.

Пример 3.10. Из начальной точки х0=(1, 1) выполнить несколько итераций поиска точки минимума функции f (х) = x21 + 100х22 градиентным методом, полагая  =*.

Собственные значения матрицы A этой квадратичной функции равны: l = 2, L = 200. Линиями уровня (x) являются эллипсы, сильно вытянутые вдоль oси Ox1. Поэтому в точке х0 направление вектора антиградиента –' (х0) = (– 2, – 200) сильно отличается от направления к точке глобального минимума х*–х0 = (–1,–1). Положив в формуле (3.50)  =*2/(l+L)=1/101, получим с учетом выражения для градиента f  '(x)=(2x1, 200x2) следующий закон изменения координат точек минимизирующей последовательности: x1k+1= xk199/101; x2k+1= –x2k99/101. Отсюда видно, что последовательность {хk} сходится к точке глобального минимума медленно и траектория сходимости имеет ярко выраженный зигзагообразный характер.

В курсе линейной алгебры для симметрической положительно оп­ределенной матрицы вводится число обусловленности матрицы =L/l отношение наибольшего к наименьшему собственному значению. В задаче минимизации произвольной (не обязательно квадра­тичной) сильно выпуклой функции f (х) эта величина для матрицы ее вторых производных (гессиана) характеризует степень вытянутости линий (поверхностей) уровня f (х)=с. Очевидно, что всегда   . Если  велико, то линии (поверхности) уровня сильно вытянуты и говорят, то функция имеет овражный характер, т.е. резко меняется по одним управлениям и слабо – по другим, В подобных случаях задачу минимизации называют плохо обусловленной (см. пример 3.10). Если же  близко к единице, то линии (поверхности) уровня близки к окружностям (сферам) и задача минимизации является хорошо обусловлен­ной (см. пример 3.9).


3.5.2. МЕТОД НАИСКОРЕЙШЕГО СПУСКА


В этом варианте градиентного метода также полагают pk =–'(xk) и величина шага k из (3.37) находится в результате ре­шения задачи одномерной минимизации

Фk()  min, где Фk() =f (xk –  '(хk)),  > 0, (3.54)

т.е. на каждой итерации в направлении антиградиента –'(xk) совер­шается исчерпывающий спуск. Опишем алгоритм метода.

Шаг 0. Задать параметр точности  > 0, выбрать х En .

Шаг 1.Вычислить f '(x) и проверить условие достижения точно­сти: ||'(x) ||<. Если оно выполнено, то положить х*= х, f *=f (х) и по­иск завершить, иначе – перейти к шагу 2.

Шаг 2. Решить задачу одномерной минимизации (3.54) для хk = х, т.е. найти *. Положить x = x–*'(x) и перейти к шагу 1.

Замечание. Решение задачи (3.54) можно получить одним из способов, описанных в гл. 2. Если функция f (х) квадратична, то для величины шага исчерпывающего спуска можно воспользоваться фор­мулой (3.35) при рk=–f  (хk).

Пример 3.11. Рассмотрим функцию f (х) = x21 + 100х22 и используем метод наискорейшего спуска для решения задачи ее минимизации из начальной точ­ки х0=(1,1).

Найдем компоненты градиента , и и гессиан . Величину шага исчерпывающего спуска найдем по формуле (3.35). Результаты вычислений приведены в табл. 3.3.
Тaблицa 3.3

Номер итерации


xk1


xk2


f (xk)

||f  (xk)||


0


1


1


101


200


1


9,910–1


–9,910–5


9,810–1


1,98


2


9,710–3


9,710–3


9,510–3


1,94


3


9.610–3


–9,610–7


9,210–5


1,9210–2



Сравните с решением примера 3.10.



3.5.3. МЕТОД СОПРЯЖЕННЫХ ГРАДИЕНТОВ


До сих пор в итерационной процедуре (3.48) в качестве направле­ния убывания функции f (х) мы использовали направление антиградиента: (хk) . Однако такой выбор направления убывания не всег­да бывает удачным. В частности, для плохо обусловленных задач ми­нимизации направление антиградиента в точке хk может значительно отличаться от направления к точке минимума х*. В результате траек­тория приближения к точке минимума имеет зигзагообразный харак­тер (см. пример 3.10).

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

хk+1= хk + kрk , k = 0, 1, …; x0 En , p0 = –f  (х0), (3.55)

в котором величина шага находится из условия исчерпывающего спуска по направлению рk. После вычисления очередной точки хk+1, k = 0, 1,… новое направление поиска рk+1 находится по формуле

рk+1=–f  ( хk+1) + kpk , k = 0, 1, …, (3.56)

где коэффициенты k выбираются так, чтобы при минимизации квад­ратичной функции f (х) с положительно определенной матрицей A получалась последовательность А–ортогональных векторов р0, р1,… Из условия <Aрk+1k+1>=0 имеем:

. (3.57)

Напомним, что для квадратичной функции шаг исчерпывающего спуска по направлению рk равен

. (3.58)

Можно показать, что процесс (3.55)–(3.58) минимизации квадра­тичной функции с положительно определенной симметрической мат­рицей A дает точки х0, .., хk и векторы р0, …, рk такие, что если f  (xi) при 0  i< kn1, то векторы р0, …, рk A–ортогональны, а градиенты '(x0), .., '(xi) взаимно ортогональны.

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

С учетом взаимной ортогональности градиентов '(xi) и условий исчерпывающего спуска по направлениям рk можно упростить выра­жения (3.57) и (3.58). Выразим числитель дроби (3.58):
k),pk>= k), –f  (xk) + k–1pk–1> = –f  (xk)2 +k–1k), pk–1> =–f (xk)2.

(3.59)

Умножив обе части равенства (3.55) слева на матрицу Aи приба­вив к ним по вектору b, получим

f  (xk+1)= f  (xk)+ k Aрk . (3.60)

С учетом формулы (3.60) упростим числитель в выражении (3.57) для k следующим образом:

<Af  (xk+1), рk > = k+1),

Aрk > = k+1), > = . (3.61)

В результате выражения для k и k примут вид
; (3.62)

. (3.63)

Выражение (3.63) для коэффициента k не содержит в явном виде матрицу A квадратичной функции. Поэтому метод сопряженных гра­диентов может применяться и для минимизации неквадратичных фун­кций. В этом случае итерационный процесс метода описывается соот­ношениями:

xk+1 =xk + kpk , x0  En , p0 = –f  (x0), k= 0, 1, …;  (3.64)

f (xk + kpk) = , k= 0, 1, …; (3.65)

pk+1= –f  (xk+1) + kpk , k= 0, 1, …; (3.66)

, k= 0, 1, …; (3.67)
Разумеется, процесс (3.64)–(3.65) может не приводить к точке минимума функции f (х), отличной от квадратичной, за конечное число итераций. Далее, точное определение k из условия (3.65) возможно лишь в редких случаях. Поэтому реализация каждой итерации метода будет сопровождаться неизбежными погрешностями. Эти погрешно­с­ти, накапливаясь, могут привести к тому, что векторы рk перестанут указывать направление убывания функции и сходимость метода может нарушиться. Поэтому на практике в методе сопряженных градиентов через N шагов производят обновление метода, полагая mN= 0, m = 1, 2, .. Номера mN называются моментами обновления метода (реcтарта). Часто полагают N=n размерности пространства En . Если N=1, то получается частный случай метода сопряженных градиентов – метод наискорейшего спуска.

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

Шаг 0. Задать параметр точности  > 0, выбрать x0  En, найти f  (х0).

Шаг 1. Положить k= 0, р0 =–f  (х0).

Шаг 2. Решить задачу одномерной минимизации f (хk + рk)min,  > 0, т.е. найти  = k .

Шаг 3. Положить хk+1 = хk + рk и вычислить '(хk+1). Проверить условие достижения точности: ||'(хk+1)|| < . Если оно выполняется, то положить х0k+1, '(x0)='(хk+1) и закончить поиск, иначе – перейти к шагу 4.

Шаг 4. Проверить условие k+ 1 = n. Если оно выполняется, то положить х0k+1, '(x0)='(хk+1) и перейти к шагу 1 (рестарт), иначе – перейти к шагу 5.

Шаг 5. Вычислить коэффициент k = ||'(хk+1)||2/ ||'(хk)||2 и найти новое направление поиска р k+1 =–'(хk+1)+ kр k . Положить k=k+1 и перейти к шагу 2.

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

Пример 3.12. Методом сопряженных градиентов найти точку минимума функции f (x)=4x21 + 3x22 – 4 x1x2 + x1 из начальной точки x0 = (0, 0).

Итерация 1.

Шаг 0. Положим  = 0,01, x0 = (0, 0), найдем '(х0) = (1, 0)

Шаг 1. Положим k= 0, p0 = –'(х0) = (–1, 0)

Шаг 2. Решим задачу одномерной минимизации f (х0 + р0)min. Получим 0 = 1/8 (для нахождения 0 можно было воспользоваться формулой (3.35).

Шаг 3. Найдем x1 = х0 + 0р0 = (–1/8, 0) и '(х0) = (0, 1/2). Точность не достигнута, перейдем к шагу 4.

Шаг 4. Условие k +1=n не выполняется, перейдем к шагу 5.

Шаг 5. Найдем коэффициент 0 и новое направление спуска p1 = –'(х1) + 0р0 = (–1/4, –1/2).

Итерация 2.

Шаг 2. Решим задачу одномерной минимизации f (х1 + р1)min. Получим 1 = 1/4.

Шаг 3. Найдем x2 = х1 + 1р1 = (–3/16, –1/8) и '(х2) = (0, 0). задача решена точно.

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



3.5.4. МЕТОД НЬЮТОНА



Пусть функция f (x) дважды дифференцируема в En . Тогда для нее можно записать разложение по формуле Тейлора в окрестности точки xk :

f (x) = k) + <'(хk), x–xk > + <(хk)(x–xk), x–xk > +( || x–xk ||2 )

Отсюда видно, что поведение функции f (x) с точностью до величины порядка ( || x–xk ||2 ) может быть описано квадратичной функцией

Фk(x) = <(хk)(x–xk), x–xk > + <'(хk), x–xk > + k). (3.68)

Минимизируем функцию Фk(x) вместо f (x). Найдем ее точку минимума xk+1 из условия Фk(x) = 0:

Фk(x) = (хk)(x–xk) + (хk) = 0. (3.69)

Пусть матрица Гессе (хk) положительно определена при всех xEn и, следовательно, невырождена (det (хk) > 0). Тогда существует обратная матрица [(хk)]–1. Отметим, что квадратичная функция (3.68) с положительно определенной матрицей (хk) сильно выпукла и уравнение (3.69) определяет единственную точку глобального минимума функции Фk(x). Умножим слева обе части равенства (3.69) на матрицу [(хk)]–1 и найдем точку минимума xk+1 квадратичной функции (3.68), аппроксимирующей f (x) в окрестности точки

x=xk :

xk+1 = xk – [(хk)]–1(хk) , k = 0, 1, … (3.70)

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

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

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

При выборе достаточно хорошего начального приближения x0En минимизирующая последовательность {xk} для сильно выпуклой дважды дифференцируемой функции f (x) сходится к точке минимума с квадратичной скоростью (xk, x*) , q(0, 1). Если же точка x0 выбрана недостаточно близкой к точке х*, то последовательность (3.70) может расходиться (см. разд. 2.3.3).

Отметим, что даже сходящаяся последовательность {xk} метода Ньютона не всегда обеспечивает монотонное убывание f (x), т.е. нера­венство f (xk+1) < f (xk) для некоторых k=0,1,.. может нарушаться Этот недостаток устранен в обобщенном методе Ньютонa:

xk+1 = xk – k[f  (xk)]–1f (xk),

где величина k > 0 находится на каждом шаге из условия исчерпыва­ющего спуска по направлению рk = –[f  (xk)]–1f  (xk).

Недостатком метода Ньютона является необходимость вычисле­ния и обращения матрицы Гессе на каждой итерации.

Пример 3.13. Найти точку минимума функции f (x)=4x21 + 3x22 – 4 x1x2 + x1,методом Ньютона из начальной точки х0 = (0,0).

Градиент (x0)=(–1,0), матрица Гессе

f  "(х0)=А= .

Найдем обратную матрицу [f (х0)]–1 = . С помощью формулы (3.70) получаем x1=x0–k[f (х0)]–1(x0)=(–3/16, –1/8). Так как '(x1)=(0,0), то задача решена: х* = х1. Целевая функция квадратична, поэтому решение задачи по­лучено за одну итерацию.

3.5.5. КВАЗИНЬЮТОНОВСКИЕ МЕТОДЫ


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

X k+1 = x k –  kH(k) f (хk), (3.71)

где H(k) – некоторая квадратичная матрица размера п п, а величина шага k> 0 выбирается из условия исчерпывающего спуска вдоль на­правления

рk = H(k) f (хk). В частности, если H(k) = –[f (хk)]–1 , то процесс (3.71) представля­ет собой обобщенный метод Ньютона.

В квазиньютоновских методах матрица H(k) строится с помощью рекуррентных формул на каждом шаге процесса (3.71). Вид этих формул определяет метод. Рассмотрим в качестве примера метод ДавидонаФлетчераПауэла (ДФП – метод). Рекуррентная формула для H(k) имеет вид

H(k+1) =H(k) + А(k) + В(k) , H(0) = Е, А(0) = В(0) = 0 . (3.72)

| Матрицы А(k) и В(k) выражаются на каждом шаге через матрицу H(k) и векторы–столбцы vk = xk+1 – xk , uk = f  (xk+1) – f  (xk) следую­щим образом (см. (3.4)):

, (3.73)

.

Пусть в итерационном процессе (3.71)–(3.73) при минимизации выпуклой дифференцируемой функции f (х) в очередной точке хi градиент 'i)  0, т.е. точка минимума f (х) еще не достигнута. Тогда все направления рk = –H(k)'k), iявляются направлениями убывания функции f (х).

Для доказательства этого утверждения запишем условие убывания (3.36) для направления рk :

k , ' k)> = –< H(k) ' k), ' k)> < 0.

Докажем по индукции, что для всех ki,H(k)– симметрическая положительно определенная матрица– Очевидно, H(0)=Е обладает этими свойствами. Отметим, что из соотношений (3.72) и (3.73) следует, что матрица H(k) является симметрической как линейная комбинация симметрических матриц. Предположим, что H(k) положительно определена и докажем, что это справедливо и для матрицы H(k+1) . Рассмотрим квадратичную форму <H(k+1)х,х> при х  0:

<H(k+1)х,х> = <H(k) х,х> + . (3.74)

Представим симметрическую матрицу H(k) в виде H(k) = С СТ = СТС , где С – некоторая квадратная матрица размера nn Обозначим векторы Cx = q, а Cuk = r, тогда равенство (3.74) можно записать в виде

<H(k+1)х,х> = 2 – + .

(3.75)

Из неравенства Коши – Буняковского (3.2) следует, что q2r22 поэтому из (3.75) получим неравенство:

<H(k+1)х, х>  .

Оценим скалярное произведение в знаменателе правой части неравенства (3.76) с учетом свойства исчерпывающего спуска:

k, uk> = < xk+1 – x, f  (xk+1) – f  (xk)> = k< pk, f  (xk+1) – f  (xk) > = k< pk, f  (xk) > = k< H(k)f  (xk), f  (xk) > > 0

Из неравенства (3.76) видно, что <H(k+1)х, х > > 0, т.е. матрица H(k+1)так­же положительно определена.

Можно показать, что для квадратичной функции с положительно определенной матрицей A направления рk в методе ДФП оказываются A–ортогональными. Отсюда следует, что точка минимума такой квад­ратичной функции этим методом будет найдена не более чем за п ите­раций.

Приведем описание алгоритма метода ДФП.

Шаг 0. Задать параметр точности  > 0, выбрать х  Еn, вычис­лить (x), положить Н=Е.

Шаг 1. Найти направление р = – Н '(х).

Шаг 2. Решить задачу одномерной минимизации f (х + р)  min,  >0,

т.е. найти *.

Шаг 3. Положить =х+*р и найти '(x). Проверить условие достижения точности: ||'( )|[< . Если оно выполнено, то положить x* = f * = f ( ) и прекратить поиск, иначе – перейти к шагу 4.

Шаг 4. Найти векторы v = –x, u = '( ) – '(х), матрицы . Положить H =H + A + B, х = , f  (х)= f  ( ) и перейти к шагу 1.

Пример 3.14. Методом ДФП решить задачу f (x)=4x21+ 3x22– 4x1x2+ x1min.

Итерация 1.

Шаг 0. Положим  = 10–4, х =(0,0), найдем '(x)=(l,0), положим

Н = Е = = .

Шаг 1. Найдем направление р =– Н f  (х)=(– 1,0).

Шаг 2. Решим задачу f (х + р)  min, получим * = 1/8.

Шаг 3. Находим = х+*р = (–1/8, 0), '( ) = (0, 1/2). Так как ||'( )||= 1/2>, переходим к шагу 4.

Шаг 4. Находим векторы

v = – x=(–1/8, 0), u = f  '( ) – f  '(x) = (–1, 1/2) и матрицы

,

,

.

Полагаем х= , '(x)='( ) и переходим к следующей итерации, начиная с шага 1.

Итерация 2.

Шаг 1. Находим направление р=–H'(x)=( –1/5, –2/5).

Шаг 2. Решим задачу f (х + р)  min, получим * = 5/16.

Шаг 3. Находим = (– 3/16, –1/8), (x) = (0,0). TAx как || '( ) ||= 0 < , точность достигнута, поэтому полагаем х* = =(–3/16, –1/8), f *=f ( )=3/16.

Есть и другие варианты квазиньютоновских методов. Они различаются способами построения матриц H (k)Например, в методе Мaк–Кормикa

.

Достоинством квазиньютоновских методов является их быстрая сходимость и отсутствие операции обращения матрицы на каждой итерации.

Недостатком этих методов является необходимость хранения в памяти ЭВМ матриц H(k), что при решении задач высокой размерности может создать определенные трудности.

УПРАЖНЕНИЯ


1. Функция (x)= x21 + x22 x1x2 + 2x1 – 4x2 минимизируется градиентным методом с постоянным шагом (k). При каких значениях сходимость гарантирована? Найти * , выполнить три итерации метода при х0 = (1, 1).

2. Для функции из упражнения 1 выполнить три итерации поиска мини­мума по методу наискорейшего спуска при х0 = (1,1).

3. Вычислить антиградиент функции (х) = 100(x2 – x1)2 + (1– x1)2 в точках (–1,2; 1), (0, 0), (2, 1) и сравнить полученные направления с направлением в точку минимума х*= (1,1), изобразив соответствующие векторы па плоскости.

4. Показать, что в методе наискорейшего спуска направления хk+1 – хk и xk – xk–1 ортогональны.

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

6. Выполнить три итерации в соответствии с методом наискорейшего спуска методом сопряженных градиентов, методом Ньютона и ДФП–методом для минимизации функции (х) =(x1+ 10x2)2 +5(x3 – x4)2 + (x2 – 2x3)4 +10(x1– x4)4 при х0=(3, –1, 0,1).

7. Показать, что если матрица (хk) положительно определена и f  (хk )  0, то направление рk = – [ (xk)]–1f  (xk) является направлением убывания функции (х) в точке хk .

8. Минимизировать методом сопряженных градиентов следующие функ­ции:

а) (х) = 10x21+ 2x22 4x1x2 2x1 2x2 +1;

б) (х) = x41+ x42 2x21x22 4x1 + 3;

в) (х) = (x21+ x2 11)2 +( x1 + x22 –7)2.

Библиографический список

  1. Васильев Ф.П. Численные методы решения экстремальных задач. – М.: Наука. 1980.

  2. Будак Б.М., Васильев Ф.П. Приближенные методы решения задач оптимального управления (тексты лекций). – М.: МГУ, 1969. Вып. 2.

  3. Поляк Б. Т. Введение в оптимизацию. – М.: Наука, 1983.

  4. Кудрявцев Л. Д. Математический анализ. Т. 1,2. – М.: Высшая школа, 1970.

  5. Моисеев Н.Н., Иваншов Ю.П., Столярова Е.М. Методы оптимизации. – М.: Наука, 1978.

  6. Иоффе А.Д., Тихомиров В.М. Теория экстремальных задач. – М.: Наука, 1974.

  7. Гилл Ф., Миррей У., Райт М. Практическая оптимизация. – М.: Мир, 1–Л985.

  8. Сеа Ж. Оптимизация. Теория и алгоритмы. – М.: Мир, 1973.




* Если окажется, что =х2 , то в качестве второй пробной точки (помимо х2) можно взять любую другую точку интервала (x1; x3) например, или .

* В дальнейшем, там, где это не приводит к недоразумениям, символ «Т» будем опускать.



1   2   3   4   5   6   7   8   9   10