Вы находитесь на странице: 1из 41

Методы оптимизации

Оптимизация – выбор наилучшего решения.


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

Итак, рассмотрим функционал : X  R̅, где


X – множество вариантов или допустимое множество (область определения функционала);
R = R {- } {+ } – расширенная вещественная прямая.
Пусть c  X – некоторое подмножество X.
Задача:  ( x)  min(max), x c называется экстремальной задачей с ограничением c.
(экстремум – максимум или минимум)
Терминология и классификация

Методы оптимизации
X = Rn Экстремальные C=X Минимизация функции
(исследование операций)
[более широкий термин] задачи (безусловная минимизация)

C≠X Математическое
программирование
(условная минимизация)
X – множество
функций
Вариационное исчисление

X [более сложная
структура]

Оптимальное управление
Этапы решения оптимизационной задачи
Процесс принятия решения в исследовании операций представляет собой сложный
процесс, который условно можно разбить на 4 этапа:
1 этап: Построение качественной модели рассматриваемой проблемы, т.е. выделение
факторов, которые представляются наиболее важными, установление закономерностей,
которым они подчиняются.
2 этап: Построение математической модели, включающей в себя выбор функционала
 (или целевой функции переменных),  (x)  min(max), формирование ограничений
(условий) в виде равенств или неравенств, например
X = { x : fi ( x) ai ,..., f m ( x) am } .
Этот этап требует привлечения математических знаний и характеризуется, как правило,
большим количеством переменных (n и m – велики).
3 этап: Решение математической задачи – выбор метода, реализация его и получение
результата (применение ЭВМ, разработка программ, применение существующих СП и
т.д.).
4 этап: Анализ полученного результата. Выясняется степень адекватности модели
(результаты вычислений) и моделируемого объекта (имитационные данные).
Примеры математических моделей
Вообще, теория математических моделей является предметом специализированного
курса и требует знаний в той области, которой принадлежит моделируемый объект.
Рассмотрим традиционные примеры, иллюстрирующие применение метода
математического моделирования в задачах экономического содержания.
Задача о рационе: Пусть имеется n – число продуктов питания и m – число
питательных веществ.
Пусть aij – содержание j-го вещества в единице i-го продукта;
b j – минимальная (суточная) потребность (человека) в j-ом веществе;
ci – стоимость единицы i-го продукта;
xi – искомое количество (суточное потребление) i-го продукта.
n
Тогда aij xi – общее содержание j-го питательного вещества;
i =1
n
ci xi – стоимость (суточного) рациона.
i =1

Задача:
n
найти min ci xi (или тот набор, (x1,…, xn) при котором Типичная задача
i =1
линейного
достигается минимум)
программирования
n
при условии, что aij xi b j , j = 1,..., m, xi 0, i = 1,..., n
i =1
Транспортная задача: Требуется составить план перевозок однородного груза таким
образом, чтобы общая стоимость перевозок была минимальной.

Пусть ai – количество единиц груза в i-ом пункте отправления ( i = 1,..., m );

b j – потребность в j-ом пункте назначения ( j = 1,..., n ) в единицах груза;

cij – стоимость перевозки единицы груза из i-го пункта в j-ый;

xij – планируемое количество единиц груза для перевозки из i-го пункта в j-ый.

m n
Тогда cij xij – общая (суммарная) стоимость перевозок;
i =1 j =1

n
xij – количество груза, вывозимого из i-го пункта;
j =1

m
xij – количество груза, доставляемого в j-ый пункт.
i =1

В простейшем случае должны выполняться следующие очевидные условия:


n m m n
xij = ai , i = 1, m ; xij = b j , j = 1, n ; ai = bj .
j =1 i =1 i =1 j =1

Таким образом, математическая формулировка транспортной задачи имеет вид:


Найти:
m n
min cij xij ,
i =1 j =1

при условиях
n m
xij = ai ; xij = b j ; xij 0, i = 1, m, j = 1, n .
j =1 i =1

m n
Задача носит название замкнутой транспортной модели, а условие ai = bj
i =1 j =1

является естественным условием разрешимости замкнутой транспортной задачи.

Обозначения и определения
Rn – n-мерное евклидово пространство.

x1
x2
x= – вектор столбец в Rn;
M
xn
xT = ( x1 , x2 ,..., xn ) – вектор-строка в Rn;
n
( x, y) = xi yi – скалярное произведение, x, yRn;
i =1

x = ( x, x ) – евклидова норма вектора в Rn;

A - m n – матрица, AT - n m – транспортированная матрица;


Ax R m – произведение матрицы (mn) на вектор (n1);
(x), f(x), g(x),… – как правило, вещественные (скалярные) функции, т.е.  : Rn  R;

��
��1
�' �0 = ���� � �0 = ⋮ – градиент функции  в точке x0 (n-мерный вектор);
��
��� �=�0

�2 � �2 �

��21 ��1 ���
– матрица Гессе (матрица вторых
�'' �0 = � �0 = ⋮ ⋮
�2 � �2 � производных) функции  в точке x0;
��� ��1
⋯ ��2� �=�0

Т.к. ¶ 2 ¶xi ¶x j = ¶ 2 ¶x j ¶xi , то H(x0) – есть вещественная симметричная матрица.

Определение. Множество X  Rn называется выпуклым, если для  x1, x2  X,    [0,1]


 x1 + (1 -  ) x 2 X . Иными словами, множество X выпукло, если оно вместе с любыми
своими двумя точками x1 и x2 содержит соединяющий их отрезок.

Выпуклое множество Невыпуклое множество

Примеры.
На числовой прямой R выпуклыми множествами являются всевозможные промежутки,
т.е.:
 одноточечные множества;
 интервалы;
 полуинтервалы;
 отрезки;
 полупрямые;
 сама прямая.
В пространстве Rn примерами выпуклых множеств служат:
 само подпространство;
 любое его линейное подпространство;
 одноточечное множество;
 шар;
 отрезок,
 а также следующие множества:

{
lx0h = x R n x = x0 + a h, a R } – прямая, проходящая через (  ) x0 в направлении

вектора h.

{
lx+0h = x R n x = x0 + a h, a 0} – луч, выходящий из (  ) x0 в направлении h.

{ }
H pb = x R n ( p, x) = b – гиперпространство с нормалью p.

H p+b = {x R n ( p, x ) b }, H -
pb { }
= x R n ( p, x) b – порождаемые ею полупространства.

Все перечисленные множества в Rn, кроме шара, являются частными случаями


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

{ } {
X = x R n Ax b = x R n (ai , x) bi , i = 1,..., m , }
где A – некоторая матрица размера mn со строками a1 ,..., am ,
b  Rm – вектор.
Множества такого вида называют полиэдральными или
полиэдрами. Таким образом, полиэдр – множество решений
некоторой системы конечного числа линейных неравенств
(пересечение конечного числа полупространств).

Определение. Функция f, определенная на выпуклом множестве X  Rn, называется


выпуклой на X, если
f ( x1 + (1 -  ) x 2 )  f ( x1 ) + (1 -  ) f ( x 2 ) ,
при x1, x2X, [0,1].

Если для любых x1 , x 2 , x1 x 2 ,  [0,1] неравенство выполняется как строгое, то f


называется строго выпуклой на X. Функция называется (строго) вогнутой, если функция –f
(строго) выпукла.
Функцию f ( x) = (a, x) + b , где a  Rn, b  R будем называть линейной. Ясно, что для неё
исходное неравенство выполняется как равенство. Поэтому она выпукла и вогнута
одновременно, но не строго.

Минимизация функций
Сама по себе постановка задачи оптимизации проста и естественна: заданы
множество X и функция  (x), определенная на X, требуется найти точку минимума или
максимума функции  на X.
Условимся записывать задачу на минимум в виде
 ( x)  min, x X , где
 – целевая функция; X – допустимое множество.
Условимся также, что в дальнейшем будем рассматривать задачу на min, поскольку задача
min  ( x) max(- ( x)) .
Если допустимое множество X = Rn, то задача называется безусловной
минимизацией, иначе, когда X  Rn – задача условной минимизации.
Отметим, что само понятие точки минимума неоднозначно и требует уточнения.

Определение. Точка x*X называется:


1) точкой глобального минимума функции  на множестве X, или глобальным решением
задачи, если x X  ( x )  ( x* ) ;
2) точкой локального минимума  на X, или локальным решением задачи, если
существует d > 0 : x X , x - x* < d  ( x)  ( x* )

{
(Если D = x : x - x* < d } – d -окрестность () x *
и x* – локальный min, то x* – глобальный

min в области X  D).

Если неравенства в 1) и 2) выполняются как строгие, то говорят, что x* – точка


строгого min в глобальном или локальном смысле.
Ясно, что глобальное решение является локальным, обратное – не верно.
Пример. Глобальных min может быть много:

счетное множество
континуальное
множество
Для записи того факта, что x* является точкой глобального min функции  на X
используем запись:
 * =  ( x* ) = min  ( x)
x X

или эквивалентная ей запись:


 * = arg min  ( x) – оптимальная точка.
x X

Множество всех точек глобального min  на X обозначим:


Arg min  ( x) = x*
x X
{ X  ( x* ) = * }
Таким образом, arg min  ( x) – это произвольная точка из множества Arg min  ( x) .
x X x X

В дальнейшем мы часто будем прибегать к геометрической интерпретации задач


оптимизации, основанной на понятии линий (или поверхностей) уровня функции  , т.е.
множеств вида:

{ }
La = x R n :  ( x) = a - такое множество носит название поверхность уровня a.

Напомним известный факт из анализа: если функция  дифференцируема в точке x, то


градиент  ′(x) ортогонален к проходящей через x линии уровня a и направлен (если
f ( x) 0 ) в сторону возрастания функции  , т.е. поверхность L a делит Rn на два
подпространства:
{ x :  ( x ) > a } ( + ) и { x :  ( x ) < a } ( -) .
Задача поиска оптимальной точки может быть сформулирована следующим образом:
найти a* = min a среди тех a, для которых L a  X  . Тогда любая точка xL a* является
оптимальной точкой.
Возможны два случая:
 x* лежит внутри X – рис. 1;
 x* лежит на границе X – рис. 2.

Рис.1 Рис.2
При изучении задач оптимизации в первую очередь возникает вопрос о существовании
решения. Напомним в этой связи некоторые результаты из математического анализа.

Теорема 1 (Вейерштрасса). Если X – компакт в Rn (т.е. замкнутое ограниченное множество),


а  – непрерывная функция на X, то существует x*X : x* – глобальный минимум  на X, т.е.
глобальное решение задачи  ( x)  min, x X существует!

Теорема 2 (необходимые условия локального минимума). Если  – дифференцируема в


точке x*X и x* – локальный минимум, то ′(x*) = 0 (градиент равен нулю).
(обратное не верно).

Определение. Точка x€ X в  ( x€) = 0 , называется стационарной

Теорема 3 (достаточное условие локального минимума).


Если  дважды дифференцируема в точке x*Rn и выполняется:
1) (x*) = 0;
2) матрица Гессе ″(x*) положительно определена,
то x* – (строгий) локальный минимум функции 

Определение. Матрица H называется положительно определенной, если


h R n , ( Hh, h) > 0, h 0 .
Критерий Сильвестра: H положительно определена  ее главные миноры
положительны.
Приведем несколько теорем для выпуклых задач.

Определение. Задача минимизации  ( x)  min, x X называется выпуклой, если X –


выпуклое множество,  – выпуклая функция на X.

Справедливы следующие теоремы:


Теорема 4. Если задача минимизации  ( x)  min, x X выпукла, то любое её локальное
решение является также глобальным.

Доказательство. Пусть x* – локальное решение задачи, т.е. при некотором  > 0


выполняется условие:
 ( x* )  ( x) при x X U ( x* ) ,

{
где U ( x* ) = x R n x - x* }
 – шар радиуса  > 0 с центром в x*.


Для любых точек xX : x  x*, положим  = min ,1 .
x - x*

Тогда  x + (1 -  ) x* X U ( x* ) . Покажем это.

1. Пусть  = 1  x + (1 -  ) x* - x* = x - x* ,

Если  = 1 >1 x - x* <   точка  x + (1 -  ) x* U ( x* )
x - x*

2. Пусть  =
x - x*

* *   * *x  x*
 x + (1 -  ) x - x = *
x + 1- x -x = - =
x-x x - x* x - x* x - x*

 точка  x + (1 -  ) x* U ( x* )
и, следовательно,

(
 ( x* )   x + (1 -  ) x* )  ( x) + (1 -  ) ( x* )  ( x* )  ( x) ,
т.е. x* – глобальное решение задачи, ч.т.д.
Таким образом, для выпуклых задач понятия локального и глобального решений не
различаются.
Второе свойство выпуклых задач можно высказать в виде следующего общего
принципа: необходимые условия оптимальности в том или ином классе задач минимизации
при соответствующих предположениях выпуклости оказываются и достаточным.

Теорема 5. Пусть функция  выпукла на Rn и дифференцируема в точке x*  Rn. Если


 ′(x*) = 0, то x* – точка минимума функции на Rn, т.е. решение задачи минимизации
 ( x)  min, x X .

Доказательство. Для xX, [0,1] имеем


 ( x + (1 -  ) x* )  ( x) + (1 -  ) ( x* ) .
Преобразуя эту формулу и, пользуясь дифференцируемостью функции  в точке x*,
получаем:
 ( x* +  ( x - x* )) -  ( x* ) ( ( x* ),  ( x - x* )) + o ( ) o ( )
 ( x) -  ( x* ) = = ;
  
Отсюда предельным переходом при   0 выводим, что  ( x)  ( x* ) , ч.т.д. (т.е. для
xX  ( x)  ( x* ) ).
Полученные свойства выпуклых задач имеют важное значение не только в теории, но
и в численных методах оптимизации. Дело в том, что большинство существующих
численных методов позволяет, вообще говоря, находить лишь локальные решения, а точнее –
стационарные точки задачи. Теоремы 4 и 5 говорят о том, что для выпуклой задачи
отыскание стационарной точки автоматически означает отыскание решения, причем
глобального.
Укажем ещё одно полезное свойство выпуклых задач.

Теорема 6. Пусть задача минимизации  ( x)  min, x X выпукла и имеет решение.


Тогда множество её решений X * = А rg min  ( x) выпукло. Если при этом (x) строго выпукла
на X, то решение единственно, т.е. X * состоит из одной точки.

Доказательство:
1. Пусть x1 , x 2 X * ,  [0,1]  ( x1 ) =  ( x 2 ) =  ( x* ) =  *
При этом
 ( x1 + (1 -  ) x 2 )  ( x1 ) + (1 -  ) ( x 2 ) =  * (*)
По определению X* неравенство может выполняться только как равенство, поскольку
 * - min
 x + (1 -  ) x 2 X * , т.е. X* – выпукло.
2. Пусть  – строго выпукла. Если предположить, что в X* существуют две различные
точки x1 и x2, то при  [0,1] неравенство (*) должно быть строгим, что невозможно,
т.к. *– min и получается < min.
Трудности:
1. В случаях, когда функция  достаточно проста, теоремы 1-3 помогают решить задачу
минимизации даже в явном виде. Однако зачастую задача поиска стационарных точек
является нетривиальной. А затем – перебор стационарных точек в поисках точки
локального минимума, затем – перебор локальных экстремумов в поисках
глобального экстремума.
2. Для задач условной минимизации теоремы 1-3 применимы в случае, когда локальное
решение x* – внутренняя точка допустимого множества X. Если же экстремум
достигается в угловых точках границы множества условий, то нарушается
дифференцируемость  неприменимость методов классического анализа.
Т.о., в большинстве случаев задачу min  (x) приходится решать численно с применением
ЭВМ и специальных методов минимизации.
Безусловная минимизация функции

Методы оптимизации функций в Rn делятся на:


 локальные методы (поиск локального min, т.е. такой точки x*, что существует d > 0,
x {
X : x - x* d }  ( x* )  ( x) );

 нелокальные (или прямые) методы (поиск глобального min для ограничений снизу
функции  (x), т.е. если a * – нижняя грань, то поиск такой точки x*:  (x*) = a *). Для
этих методов не требуется аналитического задания функции, надо только уметь
вычислять ее значение в любой точке. Обычно – для функций сложной структуры.
Нелокальные методы сводятся к уменьшению области, внутри которой находится
оптимальная точка. Пример нелокального метода – симплексный метод.

Определение. Симплекс – выпуклое тело в Rn, состоящее из (n + 1) равноудаленных точек –


вершин симплекса, отрезок их соединяющий – ребро симплекса, в R2 – треугольник, в R3 –
тетраэдр.

Неформальное описание симплексного метода: состоит из двух процедур – отражение и


сжатие.
– отражение: симметричное отражение вершины с наибольшим
значением  (x) относительно противоположной грани ["перекатывание
симплекса"]. Если  ( xi ) >  ( xi ) , то выбирается другая (i + 1)-я вершина.
Когда зацикливание (все (n + 1)-вершины перебрали), то
– сжатие: уменьшение размеров симплекса при сохранении вершины с
наименьшим значением  (x), затем переход к отражению, и так далее, пока
ребро симплекса не станет меньше некоторого числа: xi - x j <  .
Достоинства: с большой вероятностью метод не распознает локальный минимум ("не
остановится").
Локальные методы основаны на построении релаксационной последовательности {xi}
такой, что  ( xi )  ( xi +1 ) и xi i
 x* = arg min  ( x) .
Поэтому релаксационные методы называют также методами спуска.

Классификация релаксационных методов

С одной стороны,
 одношаговые методы: xi +1 ( xi ) – каждый шаг (i + 1) зависит только от предыдущей
точки xi и значения функции (xi);
 двухшаговые методы: xi +1 ( xi , xi -1 ) – зависимость от двух предыдущих точек;
 и т.д.;
С другой стороны,
 методы нулевого порядка: если используются только значения минимизируемой
функции (x);
 методы первого порядка: если используются только значение (x) и ′(x);
 методы второго порядка: если используются значения (x), ′(x) и ″(x);
 etc;

Градиентные методы (методы первого порядка)


Итак, будем рассматривать задачу:
 ( x)  min, x X R n (безусловная минимизация),
предполагая, что функция (x) непрерывно дифференцируема на Rn, т.е. (x)C1(Rn).
По определению дифференцируемой функции
 ( x + h) -  ( x) = ( ( x), h ) + o(h) , (1)
-1
где lim o(h) h = 0.
h 0

Если  ( x) 0 , то при достаточно малых h главная часть приращения для  будет


определяться дифференциалом функции d ( x) = ( ( x)h) . Оценим величину
d ( x) Справедливо неравенство Коши-Буняковского:
-  ( x) h ( ( x), h )  ( x) h ,
причем, если  ′(x)  0, то правое неравенство превращается в равенство, только при
h =-a′(x), а левое только при h =a′(x), где a = const  0.
Отсюда ясно, что при  (x)  0 направление наибыстрейшего возрастания функции  (x)
в точке x совпадает с направлением градиента  (x), а направление наибыстрейшего
убывания – с направлением антиградиента –(x).
Это свойство градиента лежит в основе ряда итерационных методов минимизации
функций. Один из таких – градиентный. Он предполагает, как, впрочем, и все остальные
итерационные методы, наличие априорной точки начального приближения.
Предположим, что начальная точка x0 уже выбрана, тогда градиентный метод
заключается в построении последовательности {xk} по правилу:
xk +1 = xk - a k ( xk ), a k > 0, k = 0,1,... (2)
ak – величина шага, xk – направление спуска.
Если  ( xk ) 0 , то шаг ak > 0 можно выбрать так, чтобы получить релаксационную
последовательность:  ( xk +1 ) <  ( xk ) . Действительно, подставляя (2) в (1), имеем:
2
 ( xk +1 ) -  ( xk ) = a k -  ( xk ) + o (a k ) a k -1 < 0 ,

при всех достаточно малых ak > 0.


Если  ( xk ) = 0 , то xk – стационарная точка. В этом случае процесс (2) прекращается и
проводятся дополнительные исследования поведения функции в окрестности точки xk для
выяснения того, достигается ли в точке xk минимум функции (x) или не достигается.
Существуют различные способы выбора величины шага a k в методе (2). В зависимости
от способа выбора ak можно получить различные варианты градиентного метода.

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

На луче {x R n : x = xk - a ( xk ), a 0} , направленном по антиградиенту, введем

функцию одной переменной


y (a ) =  ( xk - a ( xk ) ) , a 0
и определим ak из условий
ak = arg min  ( xk - a ( xk ) ) .
a 0

Другими словами a k выбирается так, чтобы  (xk+1) в заданном направлении была


наименьшей для чего на любом шаге необходимо решать задачу одномерной минимизации
функции y (a), например, с помощью y (a ) = 0 .
Пример. Рассмотрим задачу
 ( x) = x12 + 2 x22  min
2
с начальной точкой x0 = ,  ( x0 ) = 6 .
1
0
Из общих соображений ясно, что  min = 0 при x* =
0
1-й шаг:
2 x1 4
 ( x) = ;  ( x0 ) =
4 x2 4
Ищем
2 4 2 - 4a
x1 = x0 - a ( x0 ) = -a = 
1 4 1 - 4a
Функция y (a) имеет следующий вид:
y (a ) =  ( x1 ) = (2 - 4a )2 + 2(1 - 4a )2 
Решаем уравнение y (a ) = 0 , т.е.
2(2 - 4a ) (-4) + 4(1 - 4a ) (-4) = 0 ;
4 2
2-
1 3 3
4 - 8a + 4 - 16a = 0; 24a = 8 a= ; x1 = = .
3 4 1
1- -
3 3
2-й шаг:
4 2 4
 ( x1 ) = 3 ; x 2 = x1 - a ( x1 ) = 3 - a 3 ;
4 1 4
- - -
3 3 3
2 2
2 2 4 1 4
y (a ) =  ( x ) = - a +2 - + a .
3 3 3 3
Решаем уравнение y (a ) = 0 

2 4 4 4 1 4
2 - a - +4 a - =0; 
3 3 3 3 3 3
2 4 2
-
4 8 16 4 24 8 1
- + a + a - = 0; a= ; a = ; x2 = 3 9 = 9 .
3 3 3 3 3 3 3 1 4 1
- +
3 9 9

3-й шаг:
4 2 4
-a
 ( x 2 ) = 9 ; x3 = x 2 - a ( x 2 ) = 9 9
4 1 4
-a
9 9 9
2 2
3 2 4 1 4
y (a ) =  ( x ) = - a +2 - a
9 9 9 9
Решаем уравнение y (a ) = 0 
2 4 4 1 4 4
2 - a - +4 - a - = 0;
9 9 9 9 9 9
2 4 2
-
4 8 4 16 8 24 1
- a + - a = 0; = a; a = ; x3 = 9 27 = 27 , и.т.д.
9 9 9 9 9 9 3 1 4 1
- -
9 27 27

Представим решение задачи графически:

Из графического представления можно сделать вывод, что


имеет место:

0
 а) сходимость к истинной точке минимума x* =
0
б) взаимная перпендикулярность градиентов
Свойства метода наискорейшего спуска

1. На любом шаге направление спуска меняется на ортогональное. Действительно, a k


ищется из условия y (a ) = 0 
¶ ( xk - a ( xk ) )
= ( ( xk - a k ( xk ) ) , - ( xk ) ) = - ( ( xk +1 ),  ( xk ) ) = 0
¶a a =ak
2. Точка xk+1 лежит на луче, исходящем из точки xk и касательным к поверхности
уровня L  (xk+1). Действительно, с одной стороны, несомненно, что
xk +1 L = { x :  ( x) =  ( xk +1 )} . С другой стороны, градиент   (xk+1) ортогонален
касательной к поверхности уровня L  (xk+1), поэтому по свойству 1 направление
спуска касательно к поверхности L(xk+1).
Иначе.   (xk+1) ортогонален направлению спуска  луч, проходящий из точки xk –
касательной к поверхности L = { x :  ( x) =  ( xk +1 )} .
Проблемы (общие для релаксационных методов).
一) Имеет ли последовательность {xk} предел в смысле сходимости по норме:
существует x€? : lim xk - x€ = 0 ?
k

二) Является ли этот предел аргументом, составляющим минимум функции


 x€ = arg min  = x* ?

三) Какова скорость сходимости xk - x* или (xk) – (x*)?

四) Каковы вычислительные затраты.

Исследование метода наискорейшего спуска для квадратичной функции


Рассмотрим квадратичную функцию
1
 ( x) = ( Ax, x) - (b, x) ,
2
где A – симметричная, положительно определенная матрица.
Можно показать, что A – симметричная положительно определенная матрица   –
строго выпукла.
 ( x) = Ax - b , т.е. x* = A-1 b – стационарная точка.
Попробуем записать метод наискорейшего спуска для квадратичной функции.
Итак,
y (a ) =  ( xk - a ( xk ) ) , a 0
a2
y (a ) =  ( xk - a ( Axk - b) ) = [ ] =  ( xk ) - a ( Axk - b, Axk - b ) + ( A( Axk - b), Axk - b )
2
(w)
2
2 Axk - b
y (a ) = - Axk - b + a ( A( Axk - b), Axk - b ) = 0 ak = > 0,
( A( Axk - b), Axk - b )
т.к. A – положительно определена, и значит для нее справедливо: (Ah, h) > 0 hRn  0.
Для определения скорости сходимости оценим отношение
 ( xk +1 ) -  ( x* )
 ( xk ) -  ( x* )
Имеем:
4 4 4
Axk - b Axk - b  ( xk )
 ( x k +1 ) = y (a k ) =  ( xk ) - + =  ( xk ) -
( A( Axk - b), Axk - b ) 2 ( A( Axk - b), Axk - b ) 2 ( A ( xk ),  ( xk ) )

С другой стороны,
1 1 1 1
 ( xk ) -  ( x* ) = ( Axk , xk ) - ( Ax* , x* ) - (b, xk - x* ) = ( Axk - b, xk - A-1b ) = ( A-1 ( xk ),  ( xk ) )
2 2 2 2

Для простоты дальнейших изложений предположим, что матрица A приведена к


диагональному виду (т.е. выполнено преобразование координат) так, что
A = diag (1 ,..., n ) , где i – собственные числа матрицы A.
 Собственные числа симметричной положительно определенной матрицы всегда
положительны.
 Для симметричной матрицы существует ортогональная матрица (TT = T-1) T такая,
что TTAT – диагональная матрица L = diag (1 ,..., n ) .
Если l = min i , L = max i , то
2
��'(�), �'(�) ≤ � �'(�)
1 2,
�−1 �'(�), �'(�) ≤ �'(�)

Тогда
�(��+1 )−�(�∗ ) �'(��) 4 � �−�
�(�� )−�(�∗ )
=1− ��'(�),�'(�) �−1 �'(�),�'(�)
≤1−�= �
.
def
L -l
Если ввести обозначение q = < 1 , то
L
 ( xk ) -  ( x* ) const q k
Это называется геометрической скоростью сходимости (сходимость геометрической
прогрессии).
Рассмотрим величину
def
D k = xk - x* .

ln D k +1
Верхний предел lim называется порядком сходимости метода.
k ln D k
В нашем случае квадратичной функции
1 1 l
( )
2
const q k  ( xk ) -  ( x* ) = ( Axk - b, xk - x* ) = A( xk - x* ), xk - x* xk - x* .
2 2 2
Поэтому
k
*
xk - x const q2

ln D k +1 1
ln q + ln D k
 lim = lim 2 =1
k ln D k k ln D k
 получили сходимость с порядком 1 или линейную сходимость. Бывает порядок больше
1 – сверхлинейная сходимость.
При исследовании метода наискорейшего спуска для квадратичной функции получили, в
частности, следующие результаты:
一)  ( xk ) -  ( x* ) const q k , q < 1
def
ln D k +1
二) D k = xk - x* , lim =1
k ln D k

Определение.
Пусть (xk) (x*) при k  ∞.
Последовательность  (xk) сходится к  (x*) линейно (с линейной скоростью, со скоростью
геометрической прогрессии), если существуют такие константы q(0,1) и k0, что
 ( xk +1 ) -  ( x* ) q  ( xk ) -  ( x* ) , при k  k0.

Последовательность (xk) сходится к (x*) сверхлинейно, если


 ( xk +1 ) -  ( x* ) qk +1  ( xk ) -  ( x* ) , qk  0 + , при k  .

Последовательность  (xk) сходится к  (x*) с квадратичной скоростью, если существуют


такие константы c  0 и k0, что
�(��+1 ) − �(�∗ ) ≤ � �(�� ) − �(�∗ ) 2 , при k  k0.

Вообще, порядок сходимости, равный 1, означает, что значение величины D k убывает, в


основном, по закону геометрической прогрессии. Порядок сходимости, равный 2
(квадратичная сходимость) означает, что при достаточно больших k D k+1 ~ D k2. В этом
случае, если к тому же D k – малая величина, например, a 10- p при 0.1 < a < 1 , то D k+1
равно a2 10-2 p , т.е. фактически удваивается число нулей после запятой.

Частные случаи:
1) Пусть l = L, т.е. матрица A = LI = lI – пропорциональна единичной окружности
(линии уровня – окружности).
Тогда:
2
lxk - b b
xk +1 = xk - 2
(lxk - b) = = x*
l lxk - b l

 φ(xk+1) = φ(x*) метод сходится за один шаг.


2) l  L: сходимость может быть еле заметной (q ~ 1), а графически это означает, что
линии уровня функции сильно вытянуты и функция имеет так называемый
"овражный" характер. Это означает, что
небольшое изменение некоторых
переменных приводит к резкому изменению
значений функции – эта группа переменных
характеризует "склон оврага", а по остальным переменным, задающим направление
"дна оврага", функция меняется незначительно.
def
max L
Число cond = = называется числом обусловленности матрицы  cond  1.
min l
Матрица называется хорошо обусловленной, если cond ~ 1 и наоборот.
Вообще, число обусловленности геометрически можно трактовать как меру
искажения отображения матрицей A единичной сферы. Действительно, cond(A)
есть отношение наибольшего к наименьшим расстояниям между точками на
единичной сфере после её отображения матрицей A. Чем больше cond(A), тем
больше искажение единичной сферы при её преобразовании в эллиптическую
форму – пусть A = diag(10,1).
Вывод: Метод наискорейшего спуска быстро сходится для хорошо обусловленных матриц
и наоборот.

Почему так много внимания уделяли квадратичной функции?


В окрестности locmin любую функцию можно приблизить квадратичной, и всё
сказанное выше про матрицу A будет справедливым для матрицы Гесса H(x*), которая
заменяет A в рассмотренном выше примере.
Геометрически: Линии уровня становятся замкнутыми и по мере
приближения к x* всё более напоминают эллипс.

Общий случай.
Определение 1. Функция  на множестве X  Rn удовлетворяет условию Липшица, если
существует L > 0 : u,u X  (u ) -  (u ) L u - u . Если градиент функции  существует,
непрерывен и удовлетворяет условию Липшица, то обозначается C1,1.

Определение 2. Функция  называется сильно выпуклой с параметром ж < 0 ,


если ∀�, � ∈ � �(�) ≥ �(�) + �' � , � − � + æ � − � 2 .

Теорема (о сходимости метода наискорейшего спуска). Рассмотрим задачу


 ( x)  min, x R n . Пусть   С1,1(Rn) и  – сильно выпуклая c параметром æ. Тогда при
любом начальном приближении для последовательности {xk}, построенной по методу
наискорейшего спуска, справедливы соотношения:
1) xk  x* = arg min  ( x)

2)  ( xk ) -  ( x* ) const q k , q = 1 - ,q [0,1)
L

Замечания.
1
1. Для квадратичной функции  ( x) = ( Ax, x) - (b, x) :
2
一) постоянная Липшица L есть наибольшее собственное число матрицы A:
 (u ) -  (u ) = Au - Au L u -u ;
l
二) она сильно выпукла с параметром . Действительно,
2
1 1
 (u ) -  (u ) = ( Au, u ) - ( Au ,u ) - (b, u - u ) =
2 2
1 l 2
= ( A(u - u ), u - u ) + ( (u ), u - u ) u - u + ( (u ), u - u )
2 2
2. Эквивалентные ограничения сильной выпуклости:
2
一)  – сильно выпукла  x (u ) =  (u ) + ж u – выпукла (это означает, что  имеет
"квадратичный запас" выпуклости);
2
二) пусть C1,  – сильно выпукла  ( (u ) -  (u ), u - u ) 2ж u - u ;
2
三) пусть С2,  – сильно выпукла  ( (u ) x, x ) 2ж x , x, т.е.  (u ) 2жI [в
смысле положительной определенности разности матриц]. С другой стороны, из
условия Липшица  (u ) LI , поэтому для сильно выпуклой   С2 существует
двойная оценка матрицы Гессе: 2жI  (u ) LI .
Покажем, что 2ж L . С одной стороны, из б) имеем
2
( (u) -  (u ), u - u ) 2ж u - u
С другой стороны,
 (u ) -  (u ) L u -u
2 2
 2ж u - u ( (u) -  (u ), u - u )  (u ) -  (u ) u - u L u -u 2 ж L , ч.т.д.
Выпуклость:
  (u )  (u ) + ( (u ), u - u ) .
Строгая выпуклость:
  (u ) >  (u ) + ( (u ), u - u ) .
Сильная выпуклость:
2
  (u )  (u ) + ( (u ), u - u ) + ж u - u для u, u Rn

Графическое представление дифференциальных критериев выпуклости.

График выпуклой функции расположен не ниже


касательной плоскости Z =  (u ) + ( (u ), u - u ) ,
проходящей через произв. точку поверхности
(u ,  (u )) .

График строго выпуклой функции имеет


единственную общую точку с этой плоскостью.

2
Пусть u* – ()min   (u * ) = 0  (u * ) + ж u - u * .
2ж 2
Поверхность Z =  (u * ) +u - u * – это
2
параболоид вращения с вершиной в точке
(u * ,  (u * )) .
 График сильно выпуклой функции расположен
внутри некоторого параболоида вращения.
Другие градиентные методы
Напомним, градиентные методы заключаются в построении релаксационной
последовательности:
{xk } : xk +1 = xk - a k ( xk )
Градиентные методы различаются между собой способом выбора ak.
1. Метод наискорейшего спуска, который был рассмотрен выше, заключается в
выборе
a k = arg min  ( xk - a ( xk ) ) .
Такой способ выбора a k является в некотором смысле наилучшим, т.к. он
обеспечивает достижение наименьшего значения функции вдоль заданного направления.
Однако он требует решения на любом шаге одномерной задачи минимизации. Эти задачи
решаются, как правило, приближенно с помощью численных методов, что приводит к
значительному объему вычислений. Кроме того, метод может привести к плохой
сходимости (овраги!).
Другим подходом для построения релаксационной последовательности является
попытка определить ak до начала вычислений. Какие есть для этого основания?
Допустим, что можно построить оценку для a k такую, что для   (0,1) выполняется
неравенство
2
  ( xk +1 ) -  ( xk ) - a k  ( xk ) ()

Тогда очевидно, что  ( xk +1 ) <  ( xk ) и соответствующий метод минимизации будет


методом спуска.
Справедливы следующие утверждения:

Лемма 1. Пусть функция C1,1(Rn) и


 ( x) -  ( x ) M x - x , x, x Rn , M > 0
Тогда для xkRn, (0,1) условие (1) выполнено при
1- 
0 < ak
M

Лемма 2. Пусть   дважды дифференцируема и матрица Гессе удовлетворяет условию


Липшица и
2
( ( x)h, h ) D h , x, h R n , D > 0
Тогда для xkRn, (0,1) условие (1) выполняется при
2(1 -  )
0 < ak
D

2. Градиентный метод с постоянным шагом.


В этом методе полагается a k  const. При этом иногда удается добиться выполнения
условия (1). Но для этого необходимо знать константы M и D, что далеко не всегда
удается вычислить.
Т.о., метод прост в реализации, но есть проблемы со сходимостью.
Пример. Пусть (x) = ax2
min = 0; x* = 0;
Тогда
xk +1 = xk - a 2axk = (1 - 2aa ) xk 1 - 2aa < 1  метод сходится.
Сходимость медленная!

3. Градиентный метод с убыванием длины шага.


В ряде методов достаточно потребовать выполнения условий:
c
a k > 0, k = 0,1,...; ak = ; a k2 < (например, a k = )
k =0 k =0 k +1
На интуитивном уровне объяснение следующее:

 условие сходимости ряда a k2 накладывают, чтобы добиться достаточно быстрой


k =0

сходимости последовательности a k к нулю с целью обеспечения сходимости


метода в окрестности точки экстремума x*.

 условие расходимости ряда ak призвано обеспечить достижение точки


k =0

экстремума x* даже при неудачном выборе начального приближения x0, т.е. при
больших расстояниях от x0 до x*.
Сходимость медленная!

4. Градиентный метод с дроблением шага.


Ещё один адаптивный способ выбора коэффициентов a k. Выбираются некоторые
const b  >0 и 0 <  < 1 (обычно  = ½). Для коэффициента a = b проверяется выполнение
условия  ( xk - a ( xk ))  ( xk ) . Если оно выполняется, то полагают a k = a . Если нет, то
производится дробление шага, т.е. принимается a =  b , и т.д. до тех пор, пока не
выполнится требуемое неравенство.
Процесс дробления не может продолжаться бесконечно, поскольку -   (x) –
направление убывания функции. Первое a , при котором условие выполнено и
принимается за ak.
Как показывает следующая лемма, с помощью описанного процесса дробления шага
можно добиться выполнения неравенства. (1)
Лемма 3. Пусть функция  дифференцируема на Rn. Тогда для xk Rn ,  (0,1)
найдется такое a0 > 0, что при a(0, a0] выполнено условие
2
 ( xk - a ( xk ) ) -  ( xk ) -a  ( xk ) .

Если необходимое неравенство оказывается выполненным при начальном значении


a = b, то иногда полезно увеличить шаг, взяв a = b, где  > 1. Так можно продолжать до
тех пор, пока значения функции не перестанут уменьшаться. Последнее a , при котором
произошло уменьшение, и берется в этом случае за ak.
5. Овражный метод – эвристический двухшаговый метод минимизации овражных
функций.
Характеристика степени овражности:
Пусть x* – точка минимума, d > 0.

{
Рассмотрим поверхность уровня Ld = x :  ( x) =  ( x* ) + d . }
Введем md = min x - x*
x Ld

Md = max x - x*
x Ld

Md
Определение. Тогда r = lim называется числом обусловленности точки locmin .
d 0 m
d

Рассмотрим "овражную" функцию (вытянута вдоль некоторых направлений). Если точка


лежит на склоне оврага, то направление спуска из этой
точки будет почти перпендикулярно к направлению "дна
оврага", и в результате приближения {uk}, получаемые
градиентным методом, будут поочередно находиться то
на одном, то на другом "склоне оврага". Если "склоны оврага" достаточно круты, то такие
скачки "со склона на склон" точек {uk} могут сильно замедлить сходимость градиентного
метода.
Для ускорения сходимости можно предложить следующий эвристический прием,
называемый овражным методом:
Пусть u 0, u 1 – две произвольные близкие точки.
Совершаем из них по одному шагу методом
наискорейшего спуска (или  вариант градиентного
метода).
Попадаем в окрестность "дна оврага". Соединяя их
прямой, делаем большой шаг в полученном направлении, перемещаясь вдоль "дна оврага".
Из полученной точки u 2, которая находится на "склоне оврага", производят спуск с
помощью градиентного метода и определяют следующую точку u2 на "дне оврага" и т.д.
Формула метода выглядит следующим образом.
h
uk +1 = uk - sign( (uk ) -  (uk -1 )) (uk - uk -1 )
uk - uk -1
Здесь:
sign( (uk ) -  (uk -1 )) определяет знак - чтобы спускаться, а не подниматься;
(uk - uk -1 ) - определяет направление спуска по дну оврага;
h - овражный шаг, выбирается эмпирически и от него многое зависит.
Если h – большое, то на крутых склонах точки uk могут слишком далеко удаляться от
"дна оврага"  большие объемы вычислений для градиентного метода спуска в
очередную точку на "дне оврага", кроме этого может произойти выброс точки u k из
"оврага" и правильное направление поиска будет потеряно.
Если h – малое, то эффект от применения овражного метода может быть
незначительным.
Эффективность применения овражного метода может резко возрасти, если величину
h выбирать переменной, реагирующей на "повороты" оврага, с тем, чтобы:
一) быстрее проходить прямолинейные участки на "дне оврага" за счет увеличения
овражного шага;
二) на крутых поворотах "оврага" избежать выброса из "оврага" за счет уменьшения
овражного шага;
三) добиться min отклонения точки u k от дна оврага с целью уменьшения объема
вычислений для градиентного метода.
Для правильной реакции на "повороты" оврага надо учитывать "кривизну" оврага.
Причем информацию о кривизне желательно получить по результатам предыдущих шагов.
Один из способов выбора шага:
hk +1 = hk ccos ak -cos ak -1 , k = 2,3... ,
где ak – угол между векторами uk - uk -1 , uk - uk -1 , определяемый
условием
(uk - uk -1, uk - uk -1 )
cos a k = ,
uk - uk -1 uk - uk -1
c - const > 1 – параметр алгоритма.
ak возрастает при возрастании кривизны  при переходе от участка с меньшей
кривизной на участок с большей кривизной имеем
cos a k - cos a k -1 < 0 hk +1 < hk и наоборот.
На участках с постоянной кривизной
cos a k - cos a k -1 : 0
 шаг остается постоянным, который был сформирован при выходе на
рассматриваемый участок.
Параметр с регулирует чувствительность "метода к изменению кривизны (повороты)"
и во многом определяет скорость движения "по оврагу".

Методы II порядка минимизации функции


(использование вторых производных)
Общая идея:
Последовательность {xk} будем строить по направление спуска
формулам: по градиентному
методу
xk +1 = xk - g k H k ( xk ) ,
где gk – длина шага, Hk – матрица поворота (nm).
Как выбрать матрицу Hk? желаемое направление
(надо "довернуть"
Если взять квадратичную функцию направление спуска)
1
 ( x) = ( Ax, x) - (b, x),  ( x) = Ax - b, x* = A-1b ,
2
то хочется сразу попасть в экстремальную точку:
xk +1 = xk - ( xk - A-1b) = xk - A-1 ( Axk - b) = xk - A-1  ( xk ) xk +1 = xk - A-1  ( xk )
 в качестве "матрицы доворота" надо брать g k H k = A-1 .
В общем случае: пусть  – дважды дифференцируема в Rn, разложим  (x) в ряд Тейлора в
точке �� :
1
�(�) = �(�� ) + (�'(��), � − �� ) + (�″(�� )(� − �� ), (� − �� )) + �( � − �� 2 )
2
Иначе формулу можно представить в виде:
�(�) =  ( x) + �( � − �� 2 ), где  ( x) – квадратичная функция.

(
Пренебрегаем o x - xk
2
) и ищем min�(�).

xk +1 = arg min  ( x)  ( x) =  ( xk ) +  ( xk )( x - xk ) = 0 ;
x

Пусть (xk) – положительно определена для xkRn  существует [(xk)-1].


Решая это уравнение, получим:
xk +1 = xk - [ ( xk )]-1 grad ( xk ) – это и есть метод Ньютона.
Квадратичная функция с положительно определенной   сильно выпукла, тогда
уравнение определяет единственную точку глобального минимума  ( x) .
Далее рассмотрим пример использования метода Ньютона для решения задачи
минимизации функции.
Пример.
�(�) = �31 + �32 − 6�1 �2 → min, � ∈ �2
' 3�21 − 6�2 6�1 −6
� � = ; �(�) =
2
3�2 − 6�1 −6 6�2
Область существования (   (x))-1 совпадает с областью положительной
определенности матрицы   (x), которую мы будем искать с помощью критерия
Сильвестра.
Критерий Сильвестра.
Симметрическая матрица A положительно определена  если все её главные миноры
положительны. При этом главным минором матрицы A называется определитель матрицы,
построенной из элементов матрицы A, стоящих на пересечении строк и столбцов с
одинаковыми номерами.

�1 > 0 �1 > 0
⇔ .
36�1 �2 − 36 > 0 �1�2 > 1
3
Возьмем x0 =
2
15 3 -1
 ( x0 ) = ; H ( x0 ) = 6
-6 -1 2
1 2 1
H -1 ( x0 ) =
30 1 3
3 1 2 1 15 2, 2
x1 = - =
2 30 1 3 -6 2,1
1,92 2, 2 -1 1 2,1 1
 ( x1 ) = ; H ( x1 ) = 6 ; H -1 ( x1 ) =
0, 03 -1 2,1 21, 72 1 2, 2
2, 2 1 2,1 1 1,92 2,04
x2 = - = ... » , и.т.д.
2,1 21,72 1 2, 2 0,03 2,01
3
Можно показать, что сходимость при x 0 = будет хуже.
1
Достоинства метода Ньютона:
1. Для квадратичной функции сходится за один шаг (метод Ньютона можно
рассмотреть, как градиентный метод с преобразованием координат [умножение на
H-1] таким, что исчезает "овраг", т.е. линии уровня становятся окружностями).
2. Высокая скорость сходимости. Можно показать, что
k
xk - x* constq 2 , 0 < q < 1 .

Порядок сходимости:
ln xk +1 - x* const + 2k +1 ln q
lim = lim =2
k ln xk - x* k const + 2k ln q

 важен выбор q в алгоритме. Если q = 10-1, то за один шаг точность результата


увеличивается на 2 разряда, а при линейной сходимости – на один разряд.

Недостатки метода Ньютона:


1. Локальная сходимость (матрица Гессе должна быть невырожденной). Начальное
приближение надо выбирать в окрестности точки локального минимума.
2. Большие вычислительные затраты:
 вычисление матрицы ;
 необходимость обращать её.

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


Например, существует так называемый метод Марквардта-Левенберга:
��+1 = �� − ��(�″(��) + ���)−1 �'(��), �� > 0.
При больших a k (вдали от x*) матрица �″ � + �� �~�, при �� → ∞ и это фактически
градиентный метод.
При малых ak (вблизи от x*) это метод Ньютона.
Имеет место:

Теорема (о сходимости метода Ньютона).


Пусть
1)  – сильно выпукла на Rn с параметром æ.
2) c2,2, т.е. ″ – дважды дифференцируема и  удовлетворяет условию Липшица:
$L > 0 : u,u R n  (u ) -  (u ) L u -u ;
3) Начальное приближение x0 удовлетворяет условию
8æ2
�'(�0 ) ≤ ,

8ж2
т.е.  ( x0 ) = q , где 0 < q < 1.
L
Тогда последовательность xk +1 = xk - [ ( xk )]-1 ( xk ) сходится к точке минимума x* с
квадратичной скоростью:
4ж 2k *
xk - x* q , x = arg min  ( x) (квадратичная сходимость)
L x
1. Несколько слов о норме матрицы:

Определение. Норму (nn)-матрицы определим следующим образом:


Ax
A = max ,
x 0 x
Тогда
2 xT AT Ax
A = max .
x 0 xT x

Поскольку ATA есть симметричная (n n)-матрица, то существует ортогональная матрица


T (T T = T -1 ) такая, что T T ( AT A)T – диагональная матрица L = diag (1 ,..., n ) 

A = 1 , где 12 – наибольшее собственное значение матрицы ATA.

A-1 = n-1 , n2 – наименьшее собственное значение матрицы ATA.

Для такой нормы выполняются все три условия


1) A > 0 , если A – ненулевая (покомпонентно);
2) A+ B A + B ;
3) aA = a A , где a – скаляр.
Кроме того, из определения нормы матрицы следует, что
Ax A x .
Имеем также
AB A B .
2. Отметим ещё раз, что для сходимости метода Ньютона начальная точка x0 должна
выбираться достаточной близкой к искомой точке x*. Это требование в теореме выражено
условием 3). Действительно, сильная выпуклость  означает:
2 8ж2 4ж
2ж x0 - x* ( ( x0 ) -  ( x* ), x0 - x* )  ( x0 x0 - x* = q x0 - x* ; x0 - x* q;
L L
 чем меньше q, тем ближе надо выбирать точку x0 к x* и тем быстрее сходимость.
Достоинства и недостатки градиентных методов и метода Ньютона

Метод Достоинства Недостатки


Градиентный 1. Глобальная сходимость, т.е. 1. Медленная сходимость (геометрическая
метод слабые требования на начальные скорость сходимости, порядок сходимости
приближения точки х0 и к f (x); d =1);
2. Относительная простота 2. Необходимость вычисления длины шага.
вычислений
Метод 1. Быстрая сходимость. 1. Локальная сходимость (начальная точка
Ньютона должна быть близка к х*);
2. Большой объем вычислений (на любом
шаге требуется вычислять матрицу вторых
производных и обращать её).
3. Жесткие требования на саму функцию
(непрерывная вторая производная).

Порядок применения методов


1) На 1-м этапе – методы 1-ого порядка, т.к. они обеспечивают глобальную
сходимость.
2) На 2-м этапе (когда приращения невелики) – выгодно применять методы 2-ого
порядка.
Перечисленные методы (градиентные и Ньютона) являются классическими.
Можно предложить методы более высокого порядка, тогда естественно ожидать, что
порядок сходимости будет равен p.
Как уже отмечалось, к недостаткам метода Ньютона относится:
 локальная сходимость;
 большой объем вычислений;
 жесткие требования на гладкость функции.
В силу названных причин применение классического метода Ньютона не всегда
приводит к успеху.
Многочисленные модификации направлены на то, чтобы, сохраняя основное
достоинство метода Ньютона – быструю сходимость, уменьшить трудоемкость и
ослабить требования на выбор начального приближения.

Метод Ньютона с регулировкой шага


Рассмотрим метод
��+1 = �� + �� ℎ� , �� > 0, ℎ� =− (�″(�� ))−1�'(��),
это метод Ньютона с регулировкой шага.
При ak  1 мы получили классический метод Ньютона.
Выбор a k обычно – из условия min функции, вдоль заданного направления, или методом
дробления шага, обеспечивающего выполнение условия (xk+1) < (xk).
Можно показать, что подобные методы регулировки шага сходятся при любой
начальной точке x0  Rn, причем скорость сходимости будет либо сверхлинейна, либо
квадратичная в зависимости от требований, которым удовлетворяет функция .
Таким образом, с помощью регулировки длины шага преодолевается недостаток
метода, связанный с необходимостью отыскания хорошего начального приближения.
Однако, трудоемкость вычислений при этом не исчезает.
Более перспективным в этом плане оказывается другой подход, при котором строится
аппроксимация матрицы (  (xk))-1 на основе информации о значениях градиентов   (xk),
(xk+1),…
Квазиньютоновы методы

Пусть функция  дважды дифференцируема. Рассмотрим метод


xk +1 = xk - ak Hk  ( xk ) (1)
ak – шаг, Hk – матрица.
一) Если Hk = единичная, имеем градиентный метод.
二) Если H k = ( ( xk ))-1 , то это метод Ньютона (с точностью до шага).

三) Если H k : H k ( ( xi ), i = 1, 2,..., k ) » ( ( xk ))-1 , то имеем метод, который объединяет


достоинства обоих методов.
Заметим, что
 ( xk ) -  ( xk +1 ) =  ( xk +1 )( xk - xk +1 ) + o ( xk - xk +1 ) .
Полагая невырожденной матрицу   (xk+1), отсюда с точностью до членов более
высокого порядка малости по сравнению с xk - xk +1 имеем:

 ( xk +1 )-1 ( ( xk +1 ) -  ( xk )) » xk +1 - xk .
1
Рассмотрим квадратичную функцию  ( x) = ( Ax, x) - (b, x) . Для нее
2
�' ��+1 = � ��+1 − �, �″(��) = �,
и приближенное равенство обращается в точное:
 ( xk +1 )-1 ( ( xk +1 ) -  ( xk )) = xk +1 - xk .
Поэтому естественно потребовать, чтобы для матрицы Hk+1, приближающей (  ″(xk+1))-1,
выполнялось условие:
Hk +1 ( ( xk +1 ) -  ( xk )) = xk +1 - xk (*)
Это условие называется квазиньютоновским. Оно лежит в основе целого ряда методов
аппроксимации (   )-1. Соответствующие методы минимизации, для которых на любом
шаге выполняется квазиньютоновское условие, также называются квазиньютоновскими.
Пусть приближения к (   )-1 пересчитываются шаг от шага по формуле
H k +1 = H k + DH k .
Различные квазиньютоновские методы различаются способом вычисления "добавки"
DHk таким образом, чтобы удовлетворялось соотношение (*).

1. Метод Дэвидона-Флетчера-Пауэлла
Обозначим:
qk =  ( xk +1 ) -  ( xk )
(*) H k +1 qk = rk
rk = xk +1 - xk
Метод заключается в построении релаксационной последовательности по
следующему правилу:
��+1 = �� − �����'(��)
rk rk T ( H k qk )( H k qk )T
H k +1 = H k + - (1.1)
(rk , qk ) (H q , q )
1 4 4 4 44 2 4k 4k 4 k4 43
DH k

Длина шага a k в квазиньютоновых методах выбирается так же, как в методе


наискорейшего спуска:
a k = arg min  ( xk - a H k ( xk ))
a 0

Как правило, начальное значение H0 = I. Вообще, если H0 – симметричная матрица, то Hk –


симметричная матрица для любого k.

2. Метод Бройдена-Флетчера-Шанно
Имеем
(��+1 )−1 �� = �� .
Если поставить задачу уточнять обратную матрицу, т.е. Gk = ( H k )-1 , Gk +1 = Gk + DGk
тогда:
(qk , H k qk ) rk rk T r q T H + H k qk rk T
H k +1 = H k + 1 + - k k k (1.2)
(rk , qk ) (rk , qk ) (rk qk )
(этот метод более устойчив к ошибкам округления)

1
Можно доказать, что для квадратичной функции  ( x) = ( Ax, x) + (b, x) , где A –
2
симметричная, положительно определенная матрица, оба метода (1.1) и (1.2) при любом
начальном приближении x0  Rn генерируют одну и ту же последовательность точек
x1 , x2 ,..., xn , причем

H n = ( ( xn ))-1 = A-1 , xn = x* = - A-1b = arg min  ( x) ,


x Rn
т.е. квазиньютоновские методы позволяют найти min квадратичной функции за n-
шагов.
Для неквадратичной функции, это не так. Однако можно показать, что при
соответствующих предположениях H k - ( ( xk ))-1  0, xn  x , причем скорость
сходимости сверхлинейна.
Так, например, пусть  – дважды непрерывно дифференцируемая функция, сильно
выпукла на Rn.
Тогда при любом начальном приближении x0  Rn последовательность точек {xk},
определяемая формулами (1.1.) и (1.2), сходится к x*.
Если, при этом, для всех x:  ( x)  ( x0 ) , справедливы неравенства

¶ 2 ¶ 2
( x) - ( x* ) M x - x* , i, j = 1,..., n ,
¶xi ¶xy ¶xi ¶xy
то xk сходится к x* сверхлинейно

(x k +1 - x* qk +1 xk - x* , qk  0+, k  ).
Замечания о квазиньютоновских методах:
1) Это двухшаговые методы.
2) Для квадратичных функций сходятся за n-шагов.
3) Обладают следующими преимуществами:
 небольшая вычислительная сложность;
 более глобальная сходимость, чем в методе Ньютона;
 сверхлинейная скорость сходимости.

Математическое программирование
(постановка задачи и основные определения)
Основная задача математического программирования состоит в минимизации
вещественной функции на множестве, определенном системой ограничений типа равенства
и/или неравенства.
Записывать задачу будем в следующем виде:
min  ( x) [ ( x)  min, x X ] , где
x X

Определение.  называется целевой функцией.

Ограничения или условия записываются в виде:

{
X = x R n : fi ( x) 0 , i = 1...m
, где
g k ( x) = 0 , k = 1...l

Определение. X называется допустимым множеством.


Размерность задачи: n – число переменных; m + l – число ограничений.

Запись min (x) означает:


一) либо найти оптимальную точку

x* X:  ( x* ) = min  ( x) или x* = arg min  ( x) .


x X x X

Определение. Всякая допустимая точка xX называется планом; x* – оптимальный план.

二) если x* не существует, то найти  * = inf  ( x) , например,  * = - .


x X

三) либо показать, что X =  (допустимое множество – пусто).

Классификация задач математического программирования

1) Если целевая функция линейна, т.е.  ( x) = (c, x) , где c  Rn и ограничения линейны, т.е.
имеют вид:
Ax  b, где A – m  n – матрица, bRm
Gx = h, где G – l  n – матрица, hRl,
то это задача линейного программирования (иначе, нелинейного, например, квадратичного).
2) Если целевая функция  – выпукла и допустимое множество X – выпуклое (fi, gk – выпуклые
функции), то это задача выпуклого программирования.
3) Если по условию переменные – целые числа, т.е. xi Z, i = 1,..., n , то это – задача
целочисленного программирования (в данном курсе не рассматривается).
Спецификация задач математического программирования

 как правило, методы классического анализа для отыскания условных экстремумов


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

Cведения о выпуклых множествах

34
Определение 1. Множество X Rn называется выпуклым, если x, y X a [0,1]
a x + (1 - a ) y X (выпуклое множество содержит отрезок, соединяющий две любые его точки).

Определение 2. Точка x  X называется внутренней, если существует  > 0 : u ( x) Х , где


u ( x ) = { y : y - x <  } –  -окрестность точки x, т.е. точка x  X называется внутренней, если
существует такая её окрестность, все точки которой принадлежат X. И наоборот, если найдется
такая  -окрестность точки u , которая не содержит ни одной точки множества X – такая точка
называется внешней по отношению к множеству X.

Определение 3. Точка xX называется граничной, если   > 0 существует y u ( x ) : y X и


существует y u ( x) : y X , т.е. в любой окрестности точки x содержатся как точки,
принадлежащие множеству X, так и точки, не предлежащие этому множеству.

Определение 4. Проекцией точки u на множество X называют такую точку pX, что


def
p - u = inf x - u = r (u , x) = r .
x X

При этом, r = r (u , x ) называют "расстояние" от точки u до множества X. Ясно, что если u X,
то p = u . Если же u  X, и множество X – открыто, то проекция p не существует. Если
множество X – не выпукло, то проекция может быть не единственной.

Верно следующее утверждение:

Лемма 1. Пусть X – выпуклое замкнутое множество из Rn, X R n , тогда:


1) Любая точка uRn имеет и притом единственную проекцию на это множество;
2) Для того чтобы точка pX была проекцией точки u на множество X, необходимо и
достаточно выполнения неравенства ( x - p , u - p ) 0 для xX.

Доказательство.
Докажем первое утверждение леммы.
Рассмотрим функцию g(x) вида
2
g ( x) = x - u ( )u Rn , x X.
тупой угол (x – p,u – p)  0)
Поскольку g(x) сильно выпукла, то по следствию из теоремы об

35
ограниченности множеств Лебега для сильно выпуклой функции можно утверждать, что g(x)
достигает своей нижней грани на Х в единственной точке pX.
Это означает, что
2 2
x -u p -u x -u p -u ,
Причем равенство здесь возможно, только когда x = p (т.к. p  единственная точка), а
тогда p = p, что и требовалось доказать.

Докажем второе утверждение леммы.


Необходимость. Пусть p – проекция точки u на X.
Возьмем произвольную точку xX, отличную от р, рассмотрим точку z p : z = ax + (1 - a ) p .
Ввиду выпуклости множества Х для a[0,1] точка zX.
2 2 2
Так как z -u = a 2 x - p + 2a ( x - p, p - u ) + p - u , и из определения проекции следует,
2 2 2
что z - u p - u , то a 2 x - p + 2a ( x - p, p - u ) 0 .
2
Поскольку это неравенство справедливо для a[0,1], то a x - p + 2( x - p, p - u ) 0.
Переходя к пределу при a->0, имеем ( x - p, p - u ) 0 , что и требовалось доказать.

Достаточность. Пусть верно ( x - p,u - р) 0 xX, тогда xX верно


2 2 2 2 2
x - v = ( x - p) + ( p - u ) = x - p + 2( x - p, p - u ) + p - u p -u ,
т.е. точка p является проекцией точки u на X.

Определение 5. Гиперплоскостью в Rn называется множество вида Г c , = { x : (c, x ) =  } ,

где c 0 – вектор  Rn,  R1 .

Свойства гиперплоскостей

1. Это множество всегда не пусто: если, например ci  0, то точка x0 с координатами



xi = , xj = 0 ( j i ) удовлетворяет равенству (c, x0 ) =  , т.е. x0 Г c , .
ci

2. Пусть x0 – () из Гc, , т.е. (c, x0 ) =  , тогда Г c, = {x : x R n , (c, x - x0 ) = 0} .


Известно, что два вектора a,b  Rn – ортогональны, если (a,b) = 0  гиперплоскость Гc, 
состоит из тех и только тех точек x, для которых вектор x–x0 ортогонален вектору с. Вектор с
называют нормальным вектором гиперплоскости Гc, .
36
3. В пространстве Rn гиперплоскость определяет два полупространства:
{x : (c, x) } и {x : (c, x)  } .

Лемма 2 (Теорема отделимости). Для любого выпуклого и замкнутого множества X и любой


точки u , не принадлежащей множеству X, существует такая гиперплоскость Г, что (c,u ) =  и
(c, x) <  для xX.

Очевиден геометрический смысл теоремы: существует проходящая через точку u


гиперплоскость Г такая, что X лежит в одном из полупространств, определенных Г.
Доказательство. Пусть p – проекция u на X.
def def
Определим c = (u - p),  = (c,u ) , и рассмотрим
гиперплоскость Г c, = { y : y R n ,(c, y) = } ,
для которой выполняется первое утверждение леммы 2.
По лемме 1, если p – проекция, то xX справедливо ( x,u - p) ( p,u - p) .
Поскольку точка uX, то расстояние r = u - p > 0 ( p,u - p) < (u ,u - p) .
Итак, имеем для xX : (c, x) = (u - p, x) (u - p, p) < (u - p, v) = (c, v) = 
x X (c, x) <  , ч.т.д.

Теорема (об опорной гиперплоскости).


В любой граничной точке x0 выпуклого множества существует опорная гиперплоскость, т.е.
существует c  0 и λ :

{ }
Г c, = y : y R n , (c, y ) =  ,  = (c, x0 ) , и для всех xX (c, x) <  .

37
Опорная гиперплоскость единственна (если Понятие опорной гиперплоскости – шире
существует касательная гиперплоскость, то она касательной. В точке x0 не существует
совпадает с опорной). И в этом случае опорная касательной, но существуют опорные
гиперплоскость единственная. гиперплоскости, причем в качестве вектора c
можно выбрать любой, лежащий между c1, c2.

Доказательство. Рассмотрим последовательность { u k} – внешних точек относительно


X : lim uk = x0 (т.е. по определению сходимости lim uk - x0 = 0 ).
k k

По лемме 2 (теорема отделимости) существует последовательность гиперплоскостей


Г ck ,k = { y : (ck , y ) = k } , где k = (ck ,uk ) и x X (ck , х) < k .
Т.к. длину ck можно выбирать произвольно, то, не умаляя общности, можно считать, что
def
ck = 1 . Не меняя обозначений, считаем, что lim ck = c .
x

Далее воспользуемся леммой Больцано-Вейерштрасса.


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

def
Рассмотрим lim(ck ,uk ) = (c, x0 ) =  .
x

Переходя к пределу в соотношении, определяющем Гk, получим гиперплоскость:


Г c , = { y : (c, y ) = } , где  = (с, x0).
А, переходя к пределу в соотношении (ck , x ) < k xX, получим:
(c, x )  для xX , ч.т.д. (равенство возникает, поскольку x0X, а (c, x0) = ) .

Теорема (о разделяющей гиперплоскости).


Пусть X0 – множество внутренних точек выпуклого множества X; Y – выпуклое множество.
Если X 0 (множество Х0 – не пусто) и X 0 Y= (не пересекается с другим множеством),
то для множеств X и Y существует разделяющая гиперплоскость, т.е.
существует c  0 : xX, yY справедливо соотношение (c, y)  (c, x).

38
def
Доказательство. Рассмотрим множество Z = {Z : Z = y - x, y Y , x X 0} . Это множество
выпукло. Действительно,
z = a z1 + (1 - a )z2 = a ( y1 - x1) + (1 - a )( y2 - x2 ) = [a y1 + (1 - a ) y2 ] - [a x1 + (1 - a ) x2 ] Z .
1 4 4 2 4 43 1 44 2 4 43
Y X0

Точка z = 0 не является внутренней точкой множества Z (т.к. x0 Y= ).


Поэтому существует с  0: z Z (c, z) (c,0) . Это неравенство справедливо:
- по теореме об опорной гиперплоскости, если точка z = 0 – граничная для множества Z;
- или по теореме о разделяющей гиперплоскости, если точка z = 0 – внешняя (тогда
неравенство строгое).
 (c, y - x) 0 (c, y) (c, x) y Y , x X 0 .
Последнее неравенство остается справедливым и для  y  Y и  x  X, поскольку
предельный переход не нарушает нестрогих неравенств, ч.т.д.

Введем два определения:

Определение 1. Точка x множества X (xX) называется угловой (или крайней) точкой, если в X
не существует таких точек x′ и x″, x′  x″, что x = a x + (1 - a ) x , при некотором a(0,1).

Геометрически: точка x – крайняя в X, если её нельзя поместить внутрь отрезка, концы


которого лежат в X.
Например,
 у треугольника крайние точки – вершины;
 у луча – начало;
 у круга – все точки окружности;
 прямая, гиперплоскость – крайних точек не имеют.

Определение 2. Точка x0  X называется выпуклой комбинацией точек x1,…, xn  X, если


существуют ai 0 , существуют xiX, i=1,…N, такие, что:
N N
x0 = ai xi ; ai = 1; ai 0, i = 1,..., N
i =1 i =1

Теорема Крейна–Мильмана (о представлении).


Пусть X – выпуклое, замкнутое, ограниченное множество, тогда  x0  X может быть
представлена в виде выпуклой комбинации конечного числа угловых точек множества, т.е.
x0X существуют ai  0, существуют xiX – угловые точки:
N N
x0 = a i xi ; ai = 1
i =1 i =1

39
Доказательство. Индукция по размерности пространства n.
При n = 1 X – отрезок  утверждение теоремы очевидно.
Предположим, что для n = k – 1 теорема справедлива.
x0 = a x1 + (1 - a ) x%=
Пусть XRk. Возможны два случая:
= a x1 + (1 - a ) b x2 + (1 - a )(1 - b ) x3
1) x0 – граничная точка X.
Построим в этой точке гиперплоскость, опорную к X (существует по теореме об опорной
гиперплоскости):
Г c , = { y : (c, y ) =  } , где  = (c, x0) – опорная гиперплоскость.
Рассмотрим множество X0 = X  Гc,  .. Оно, как пересечение выпуклого, замкнутого,
ограниченного множества X с выпуклым замкнутым множеством Гc,, само выпукло, замкнуто и
ограничено.
Кроме этого, X 0 Г c , R k -1 .

По индукционному предположению существуют x1 ,..., xn – угловые точки X0:


N N
x0 = ai xi , ai 0, i = 1,..., N , ai = 1
i =1 i =1

Покажем, что x1 , x2 ,..., xn являются угловыми точками и для множества X.


Предположим противное, т.е. что некоторая точка xi не является угловой для множества X.
Это означает, что существует x , x X,x x иa (0,1) : xi = a x + (1 - a ) x .
Т.к. xi X0 Г c, , то ( c , xi ) =  = ( c , x 0 )
и т.к. Гc, – опорная к X, то
( c, x ) ( c, x 0 )
(*)
( c, x ) ( c, x 0 )
Поскольку 0 < a < 1, можно записать:
1 1
 (c, x ) = [(c, xi ) - (1 - a )(c, x )] (c, x0 ) - (1, a )(c, x0 ) = (c, x0 ) .
a a
Из последнего соотношения следует, что (c, x) ≥ (c, x0), но
(c, x ) (c, x0 ) (c, x ) = (c, x0 ) x Г c , ,
Поскольку x X x X0 = X G c , .
Аналогично можно показать, что x″X0  противоречие с тем, что xi – угловая точка X0
 xi – угловая точка X, ч.т.д
2) Пусть теперь x0 – внутренняя точка множества X. Проведем через x0 прямую l. Пересечение
l  X является отрезком с концами x͂ и x͌, принадлежащими границе множества X, и, поскольку
x0 – внутренняя точка X  существует a(0,1):
x0 = a x%+ (1 + a ) x%
%.
Поскольку для граничных точек x͂ и x͌ теорема верна, то верна она и для x0. Действительно, для
граничных точек имеют место соотношения:

40
N1 N1
x%= b i yi , b i = 1, b i 0, i = 1,..., N1
i =1 i =1

N2 N2
x%
%= g i zi , g i = 1, g i 0, i = 1,..., N 2 ,
i =1 i =1

где все yi и zi – угловые точки множества X.


N1 N2
А тогда x 0 = ab i y i + (1 - a )g i z i , ч.т.д.
i =1 i =1

Замечание: Можно доказать, что в указанном представлении число угловых точек не


превосходит величины n–размерности пространства.

41

Вам также может понравиться