Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска.

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

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

Рассмотрим функцию Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru двух переменных Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru и Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru . Проекция линии пересечения функции Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru с плоскостью Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru (F – некоторое заданное значение функции Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru ) на плоскости Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru называется линией постоянного уровня. Задавая различные значения Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru , можно получить другие линии постоянного уровня и представить функцию Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru совокупностью этих линий. Перемещение по поверхности, отображающей функцию Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru , из точки Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru в точку Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru , эквивалентно перемещению из точки Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru в точку Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru на плоскости Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru . Если это перемещение осуществлять в направлении убывания функции Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru , то через определённое число шагов (итераций) можно достигнуть окрестности точки локального минимума.

Идея метода наискорейшего спуска состоит в следующем.

Если Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru и Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru – начальная и конечная точки перемещения (поиска) на k-ом шаге, то они связаны соотношением

Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru , (1)

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

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

Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru , (2)

получим следующее выражение для определения координат конечной точки перемещения на k-ом шаге:

Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru , (3)

Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru , (4)

где правые сомножители второго слагаемого правой части означают, что частные производные функции Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru вычисляются в точке Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru .

Если из точки Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru поиск ведётся в направлении антиградиента

Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru , то в точке Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru , являющейся начальной точкой следующего шага, направление поиска будет определяться антиградиентом– Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru . Векторы Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru и Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru в точке Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru перпендикулярны, откуда следует, что их скалярное произведение в данной точке равно 0, т.е.

Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru

(5)

или Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru .

С учётом (2) выражение (5) примет вид:

Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru . (6)

Решение уравнения (6) совместно с (3),(4) позволяет определить величину Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru на k-ом шаге поиска по методу наискорейшего спуска. Процесс поиска минимума в соответствии с (3) и (4) будет продолжаться до тех пор, пока не будет выполнено условие:

Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru , (7)

где Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru – требуемая точность определения минимума функции Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru . Величина Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru задаёт размеры окрестности точки минимума, удовлетворяющие заданной точности. С учётом (2) выражение (7) примет вид:

Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru . (8)

Таким образом, выражения (3), (4), (6), (8) являются основными рабочими соотношениями решения задач нелинейной оптимизации методом наискорейшего спуска.

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

Пример.Отыскатьминимумфункцииf(x) = x12 + 2x22 – 2x1 – 8x2 + 12 с точностью e = 0,6 при начальном значении x0 = (6;8).

Найдем в первую очередь частные производные целевой функции Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru :

Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru

В соответствии с формулами (2), (3) координаты точки на k-ом шаге поиска рассчитываются следующим образом:

x1(k) = x1(k-1) – gk(2 x1(k-1)–2), (9)
x2(k) = x2(k-1) –gk(4 x2(k-1)–8). (10)

Для определения величины шага gk используем уравнение (6), которое в данном случае имеет вид:

(2x1(k-1) – 2)(2x1(k) – 2) + (4x2(k-1) – 8)(4x2(k) – 8) = 0. (11)

Поисковая процедура завершается при выполнении условия (8)

Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru (12)

Последовательность поиска оптимального решения в соответствии (9)–(12) следующая.

Поскольку начальной точкой поиска является Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru = (6;8), то координаты точки в конце 1-го шага (k=1) определяются в соответствии с (9)–(12) следующими образом:

x1(1) = x1(0) –g1(2 x1(0) – 2),
x2(1) = x2(0) –g1(4 x2(0) – 8).

Тогда

x1(1) = 6 –g1(2×6 – 2) = 6 –g110,
x2(1) = 8 –g1(4×8 – 8) = 8 –g124.

Подставляя значения x1(0) = 6, x2(0) = 8, а также только что определенные значения x1(1) и x2(1) в (11), получим:

(2×6–2)(2×(6–10g1)–2) + (4×8 – 8)(4× (8 – 24g1) – 8) = 0,
10(10 – 20g1) + 24(24 – 96g1) = 0,
100 – 200g1 + 576 – 2304g1 = 0,
–2504g1 = –676.

Тогда g1 = 0.27.

Определим, используя найденное значение g1, координаты точки на 1-ом шаге:

x1(1) = 6 – 0.26×10 = 3.3,
x2(1) = 8 – 0.26×24 = 1.52.

Проверим выполнение условия (12):

Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru e.

Поскольку условие (12) не выполняется, перейдем ко 2-му шагу (k=2), исходной точкой которого будет Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru = (3.3;1.52). В соответствии с (9),(10) можно записать:

x1(2) = x1(1)–g2(2 x1(1)–2)= 3.3 –g2(2×3.3 – 2) = 3.3 –g24.6;
x2(2) = x2(1)–g2(4 x2(1)–8) =1.52 –g2(4×1.52 – 8) = 1.52 + g21.92.

Подставляя значения x1(1) = 3.30, x2(1) = 1.52, а также только что определенные значения x1(2) и x2(2) в (11), получим:

(2×3.3 – 2)(2× (3.3 – 4.6g2) – 2) + (4×1.52 – 8)(4× (1.52 + 1.92g2) – 8) =

= 4.6(4.6 – 9.2g2) + (–1.92)(–1.92 + 7.68g2) = 0,

откуда g2 = 0.436. Определим, используя найденное значение g2, координаты точки на 2-ом шаге согласно (9),(10):

x1(2) = 3.30 – 0.436×4.6 = 1.29,
x2(2) = 1.52 + 0.436×1.92 = 2.36.

Проверим выполнение условия (12):

Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru e.

Поскольку условие (12) не выполняется, перейдем к 3-му шагу (k=3), исходной точкой которого будет Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru = (1.29;2.36). В соответствии с (9),(10) можно записать:

x1(3) = x1(2) –g3(2 x1(2)–2) = 1.29 –g3(2×1.29 – 2) = 1.29 –g30.58,
x2(3) = x2(2 ) –g3(4 x2(2)–8) = 2.36 –g3(4×2.36 – 8) = 2.36 –g31.44.

Уравнение (11) для определения g3 примет вид

(2×1.29 – 2)(2×(1.29 – 0.58g3) – 2) + (4×2.36 – 8)(4×(2.36 – 1.44g3)–8) =

= 0.58(0.58 – 1.16g3) + 1.44(1.44 – 5.76g3) = 0,

откуда g3 = 0.28.

Тогда координаты точки в конце третьего шага будут иметь значения:

x1(3) = 1.29 – 0.28×0.58 = 1.13,
x2(3) = 2.35 – 0.28×1.44 = 1.96.

Проверим выполнение условия (12):

Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru .

Таким образом, на третьем шаге оптимизацииобеспечивается заданная точность, а полученной стационарной точкой будет Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru = (1.13;1.96).

Установим характер этой стационарной точки посредством проверки условия положительной определённости матрицы Гессе (матрицы вторых частных производных целевой функции в данной точке).

Итак, вторая частная производная по координате x1равна Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru , вторая частная производная по координате x2 равна Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru , а смешанные производные по координатам x1и x2 равны Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru . Таким образом, матрица Гессе имеет вид Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru .Её главные миноры первого и второго порядка соответственно равны Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru Следовательно, поскольку матрица Гессе является положительно определённой, в точке Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru = (1.13;1.96) находится локальный минимум целевой функции, а минимальнымзначеним целевойфункциибудет Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru

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

k
Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru 3.3 1.29
Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru 1.52 2.36
Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru 4.6 0.58
Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru –1.92 1.44
Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru 6–10g1 3.3 3.3–4.6g2 1.29 1.29–0.58g3 1.13
Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru 8–24g1 1.52 1.52+1.92g2 2.36 2.36–1.44g3 1.96
Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru 10–20g1 4.6 4.6–9.2g2 0.58 0.58–1.16g3 0.26
Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru 24 – 96g1 –1.92 –1.92+7.68g2 1.44 1.44–5.76g3 –0.17
Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru 676–23504g1=0 24.85–57.07g2=0 2.41–8.96g3=0
gk 0.27 0.436 0.28
Последовательность решения задачи безусловнойнелинейнойоптимизацииметодом наискорейшего спуска. - student2.ru 4.98 1.58 0.31

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