Смекни!
smekni.com

Минимум функции многих переменных (стр. 4 из 5)

.

Следовательно, за один цикл

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

Значит, когда число циклов

, то все первые производные линейно стремятся к нулю:

и
~
.

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

Случай (15) заведомо реализуется в достаточно малой окрестности невырожденного минимума, ибо эти условия эквивалентны требованию положительной определенности квадратичной формы (12). Такими образом, вблизи невырожденного минимума достаточно гладкой функции спуск по координатам линейно сходится к минимуму. В частности, для квадратичной функции этот метод сходится при любом нулевом приближении.

Фактическая скорость сходимости будет неплохой при малых

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

Если сходимость медленная, но траектория уже попала в близкую окрестность минимума, то итерации можно уточнять процессом Эйткена; разумеется, при этом надо брать в качестве исходных значения не на трех последних спусках, а на трех циклах спусков (т. е. не точки

, а точки
и третья точка, которой нет на рис. 3, а).

Разрешимый овраг напоминает сильно вытянутую котловину (см. рис. 3, б). При попадании траектории спуска в такой овраг сходимость становится настолько медленной, что расчет практически невозможно вести. Отметим, что в стохастических задачах наличие ошибок эквивалентно превращению истинных оврагов и гребней в разрешимые; расчет при этом можно продолжать, хотя практическая ценность такого расчета невелика: сходимость очень медленная.

Метод спуска по координатам несложен и легко программируется на ЭВМ. Но сходится он медленно, а при наличии оврагов – очень плохо. Поэтому его используют в качестве первой попытки при нахождении минимума.

Пример. Рассмотрим квадратичную функцию

и выберем нулевое приближение
. Выполняя вычисления, получим

.

Уточнение по Эйткену дает

, т. е. точное положение минимума (заметим, что делать уточнение с использованием нулевого приближения нельзя).

2.3 Наискорейший спуск

Спускаться можно не только параллельно осям координат. Вдоль любой прямой

функция зависит только от одной переменной,
, и минимум на этой прямой можно найти.

Наиболее известным является метод наискорейшего спуска, когда выбирается

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

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

Если функция является положительно определенной квадратичной функцией

, (16)

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

функция (16) квадратично зависит от параметра
:

. (17)

Из уравнения

легко находим ее минимум

, (18)

дающий нам следующую точку спуска:

(19)

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

. (20)

Подставляя это значение в формулы (18) – (19), получим окончательные выражения для вычисления последовательных спусков.

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

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

, где
; (21)

здесь

– собственные значения положительно определенной матрицы
(они вещественны и положительны). Если
, что соответствует сильно вытянутым эллипсам – линиям уровня, то
и сходимость может быть очень медленной.

Есть такие начальные приближения (рис. 4), когда точно реализуется наихудшая возможная оценка, т. е. в (21) имеет место равенство.

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

Для улучшения метода наискорейшего спуска предлагают «кухонные» поправки к алгоритму – например, совершают по каждому направлению спуск не точно до минимума. Наиболее любопытным представляется такое видоизменение алгоритма. Будем делать по направлению, противоположному градиенту, только бесконечно малый шаг и после него вновь уточнять направление спуска. Это приводит к движению по кривой

, являющейся решением системы обыкновенных дифференциальных уравнений:

. (22)

Вдоль этой кривой

, т. е. функция убывает, и мы движемся к минимуму при
. Уравнение (22) моделирует безынерционное движение материальной точки вниз по линии градиента. Можно построить и другие уравнения – например, дифференциальное уравнение второго порядка, моделирующее движение точки при наличии вязкого трения.

Однако от идеи метода еще далеко до надежного алгоритма. Фактически систему дифференциальных уравнений (22) надо численно интегрировать. Если интегрировать с большим шагом, то численное решение будет заметно отклоняться от линии градиента. А при интегрировании малым шагом сильно возрастает объем расчетов. Кроме того, если рельеф имеет извилистые овраги, то трудно ожидать хорошей сходимости этого метода.

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

) редко применяется, но в частных случаях он может оказаться полезным.