Задание к лабораторной работе № 5 по теме «Метод наискорейшего спуска»

Требуется выполнить 3 шага метода наискорейшего спуска для функции

Задание к лабораторной работе № 5 по теме «Метод наискорейшего спуска» - student2.ru Задание к лабораторной работе № 5 по теме «Метод наискорейшего спуска» - student2.ru из своего варианта из задания №1, если начальная точка Задание к лабораторной работе № 5 по теме «Метод наискорейшего спуска» - student2.ru . Матрицу квадратичной формы возьмите с диагональным преобладанием, чтобы выполнялись достаточные условия минимума. Необходимо учесть, что схема метода наискорейшего спуска выглядит следующим образом:

Задание к лабораторной работе № 5 по теме «Метод наискорейшего спуска» - student2.ru

где Задание к лабораторной работе № 5 по теме «Метод наискорейшего спуска» - student2.ru длина шага, вычисляется как решение задачи одномерной минимизации, т.е.

Задание к лабораторной работе № 5 по теме «Метод наискорейшего спуска» - student2.ru

Нарисовать график в плоскости, на которой нанесены все вычисленные точки, начиная с начальной точки x0 = (2, 3)T, а также стационарная (полученная в результате проверки) точка.

Проверка. Вычислить из равенства нулю вектора производной стационарную точку Задание к лабораторной работе № 5 по теме «Метод наискорейшего спуска» - student2.ru , к которой сходится метод наискорейшего спуска, т.е. точку минимума функции f(x1, x2).

5.2. Методы условной минимизации. Метод проекции градиента.

Будем рассматривать задачу

f(x)→inf; xÎUÍEn, (6)

где множество U необязательно совпадает со всем пространством Еn, а функция f(x)ÎC'(U). Непосредственное применение описанного выше градиентного метода в случае U≠Еn может привести к затруднениям, так как точка xk+1 из (3) при каком-то k может не принадлежать U. Однако эту трудность можно преодолеть, если полученную с помощью формулы (3) точку xк - ak×f '(xк) при каждом к проектировать на множество U.

Определение 1.Пусть U - некоторое множество из Еn. Проекцией точки x из Еn называется ближайшая к х точка множества U, т.е. wÎU, удовлетворяющая условию

Задание к лабораторной работе № 5 по теме «Метод наискорейшего спуска» - student2.ru

Проекцию точки х на множество U будем через PrU(x) =w.

В результате мы придем к так называемому методу проекции градиента.

Задание к лабораторной работе № 5 по теме «Метод наискорейшего спуска» - student2.ru

Рис. 5.1. Метод проекции градиента.

А именно, пусть x0ÎU — некоторое начальное приближение. Далее будем строить последовательность {uк} по правилу

xк+1 = PrU(xк - ak×f '(xк)), k= 0, 1, …, (7)

где ak - положительная величина. Если U — выпуклое замкнутое множество и способ выбора {ak} в (7) задан, то в силу теоремы 4.4.1 [Васильев] последовательность {xk} будет однозначно определяться условием (7). В частности, при U = En метод (7) превратится в градиентный метод.

Если в (7) на некоторой итерации оказалось xk+1 = xk (например, это случится при f '(xk) = 0), то процесс (7) прекращают. В этом случае точка uk удовлетворяет необходимому условию оптимальности

xk = PU(xk - ak×f '(xk)),

и для выяснения того, является ли в действительности xk решением задачи (6) или нет, при необходимости нужно провести дополнительное исследование поведения функции f(x) в окрестности точки xk. В частности, если f(x) - выпуклая функция, то такая точка xk является решением задачи (6).

В зависимости от способа выбора ak в (7) можно получить различные варианты метода проекции градиента. Укажем несколько наиболее употребительных на практике способов выбора ak.

1) Введем функцию одной переменной

yk(a) = f(PrU(xk - ak×f '(xk))), (a³0)

и определим ak из условий

yk(ak) = Задание к лабораторной работе № 5 по теме «Метод наискорейшего спуска» - student2.ru , ak >0. (8)

Очевидно, при U = En метод (7), (8) превратится в метод наискорейшего спуска. Поскольку величину ak из условий (8) удается найти точно лишь в редких случаях (возможно также, что нижняя грань в (8) не всегда достигается), то ak на практике определяют приближенно.

2) Иногда приходится довольствоваться нахождением какого-либо ak>0, обеспечивающего условие монотонности: f(xk+l)< f(xk). Для этого обычно выбирают какую-либо постоянную a > 0 и в методе (2) на каждой итерации берут ak = a, а затем проверяют условие монотонности и при необходимости дробят величину ak = a, добиваясь выполнения условия монотонности.

3) Если функция f(x) принадлежит С1,1(U) и константа Липшица L для градиента f '(x) известна [Васильев], то в (7) в качестве ak можно взять любое число, удовлетворяющее условиям

0<e0 ≤ ak ≤ 2/(L+2×e), (9)

где e0, e - положительные числа, являющиеся параметрами метода.

4) Возможен выбор ak из условия

f(xk) - f(PrU(xk - ak×f '(xk))) ³ e×ïxk - PrU(xk - ak×f '(xk ))ï, (10)

где e > 0 — параметр метода. Для определения такого ak можно взять какое-либо число ak = a (например, a = 1) и затем дробить его до тех пор, пока не выполнится условие (10). Если f(x) принадлежит С1,1(U), то можно показать, что выполнения условия (10) можно добиться за конечное число дроблений.

5) Возможно априорное задание величин ak из условий

ak >0, к = 0,1,…; Задание к лабораторной работе № 5 по теме «Метод наискорейшего спуска» - student2.ru , (11)

например, ak = (k+1)-1 (k = 0, 1, ...). Сходимость метода (7), (11) была исследована в [Васильев].

Заметим, что описанные здесь варианты метода (7) при U = Еn переходят в соответствующие варианты градиентного метода.

На практике для ускорения сходимости вместо (7) часто пользуются более общим вариантом метода проекции градиента

xк+1 = xk + bk×(PrU(xк - ak×f '(xк)) - xk) =

= bk× PrU(xк - ak×f '(xк)) + (1 - bk)×xk, 0<bk ≤ 1, ak >0, (7')

где параметры ak и bk могут выбираться различными способами.

Заметим, что в методах (7) или (7') на каждой итерации, кроме выбора параметров ak и bk, нужно еще проектировать точку на множество U или, иначе говоря, решить задачу минимизации

Fk(x) = ïx - (xk - ak× f '(xк))ï2 ® inf, xÎU; (12);

здесь возможно использование функции

Fk(x) = ïx - xkï2 + 2×ak×<f '(xк), x -xk>,

отличающейся от предыдущей функции постоянным слагаемым. Задачу (12) можно решать приближенно и вместо точки xk+1ÎU, Fk(xk+1) = Задание к лабораторной работе № 5 по теме «Метод наискорейшего спуска» - student2.ru = Fk*, определить ее приближение zk+1 из условий

zk+1ÎU, Fk(zk+1) ≤ Fk* + dk2. (13)

Конечно, задачи (12), (13) далеко не всегда просто решаются. Поэтому методом проекции градиента обычно пользуются лишь в тех случаях, когда проекция точки на множество легко определяется. Например, когда множество U представляет собой шар в Еn, параллелепипед, гиперплоскость, полупространство или положительный октант, задача проектирования точки решается просто и в явном виде, и реализация каждой итерации метода проекции градиента в этом случае не вызывает особых затруднений. Если же задача проектирования для своего решения в свою очередь требует применения тех или иных итерационных методов, то эффективность метода проекции градиента, вообще говоря, значительно снижается.

Алгоритм метода проекции градиента.

Будем считать, что некоторая начальная точка x0 выбрана так, чтобы выполнялись условия теоремы Вейерштрасса, а именно множество С(x0) = {xÎRn ï f(x) £ f(x0)} было замкнуто и ограничено.

Шаг 1. Полагаем k=0 (номер итерации), xk = x0 = 0, e = 0,01.

Шаг 2. Вычисляем h(xk) = -f '(xk), а также Dk = |xk - xk-1 |.

Шаг 3. Если Dk <e, то перейти в шагу 6, иначе перейти к следующему шагу 4.

Шаг 4. Вычислим ak>0 из условия.

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

yk(a) = f(PrU(xk - ak×f '(xk))), (a³0)

и определим ak из условий

yk(ak) = Задание к лабораторной работе № 5 по теме «Метод наискорейшего спуска» - student2.ru , ak >0

Шаг 5. Вычисляем следующее приближение

xk+1 = PrU(xk - ak×f '(xk)).

Полагаем k:= k+1 и переходим к шагу 2.

Шаг 6. В качестве точки минимума возьмем последнее приближение

x* = xk,

а также в качестве минимального значения функции f(x*) = f(xk).

Наши рекомендации