Методы оптимизации функций многих переменных

лабораторная работа

2. Порядок выполнения лабораторной работы

Записать необходимые условия экстремума. Аналитически или используя прикладные пакеты найти стационарные точки.

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

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

Выбрать несколько начальных точек для реализации численного метода. Задать критерий завершения итерационного процесса. Найти минимум. Сравнить результаты с аналитически найденным значением глобального минимума. Исследовать сходимость алгоритма, фиксируя точность определения минимума, количество итераций метода и количество вычислений минимизируемой функции в зависимости от задаваемой точности поиска. Результатом выполнения данного пункта должны быть выводы об объёме вычислений в зависимости от задаваемой точности и начального приближения.

3. Пример выполнения лабораторной работы Лабораторная работа выполнена студентом Коневым С.

Функция: min, x0= (-2,-2).

Методы: градиентного спуска и Ньютона.

Решение: 1. Построим график функции и линии уровня (рис.1).

Примечание: при построении графика используется среда MathCAD.

Рис.1. Графики функции и линий уровня

2. Решим задачу минимизации аналитически.

Система для нахождения стационарных точек из условия равенства нулю градиента имеет вид

Если x1x2 =0, то из системы следует, что x1 =0 и x2 =0.

Первая стационарная точка - A0 (0; 0).

Если

x1x2 ?0, то

Подставим х1 в первое уравнение:

Введем замену

:

Обозначим

, .

Получаем остальные стационарные точки:

;

;

;

.

Приближенные числовые координаты найденных точек:

А0 (0; 0), А1 (1.068; 1.668), А2 (-1.068; - 1.668), А3 (-0.331; 0.848), А4 (0.331;0.848).

Построим и исследуем на знакоопределенность матрицу Гессе в точках А0,…, А4.

;

.

H (A0 (0; 0)) =0

(требуется дополнительное исследование точки).

Анализ поведения функции в окрестности точки A0 (0; 0) показывает, что, придавая х1 положительное и отрицательное значение при любом х2, можно получить соответственно положительное и отрицательное значение функции. Таким образом, A0 (0; 0) не является ни точкой локального минимума, ни точкой локального максимума.

Н (А1 (1,068; 1,668)) ? , матрица отрицательно определена, в точке А1 локальный максимум.

Н (А2 (-1,068; - 1,668)) ? , матрица положительно определена, в точке А2 локальный минимум.

Н (А3 (-0,331; 0,848)) ? , матрица положительно определена, в точке А3 локальный минимум.

Н (А4 (0,331; - 0,848)) ? , матрица отрицательно определена, в точке А4 локальный максимум.

Точками глобального экстремума являются А1 (1,068; 1,668) - глобальный максимум, f (A1) ?1,801; А2 (-1,068; - 1,668) - глобальный минимум, f (A2) ?? - 1,801.

3. Остальные задания реализованы на языке СИ, для чего написаны классы для работы с векторами и матрицами (Cvector и Cmatrix) и использующее их приложение. В методе наискорейшего спуска для одномерной минимизации используется метод золотого сечения. Для отыскания собственных чисел матрицы Гессе применяется метод Якоби, для построения обратной матрицы - метод Жордана-Гаусса.

В начале работы программа выводит информацию о стационарных точках:

Stationary dots:

x1x2f (x1,x2) Extreme

1.0678901.6675661.801131LOC MAX

1.067890-1.667566-1.801131LOC MIN

0.3310770.848071-0.144426LOC MIN

0.331077-0.8480710.144426LOC MAX

GLOBAL MIN: x (-1.067890, - 1.667566)

f (x) = - 1.801131

GLOBAL MAX: x (1.067890, 1.667566)

f (x) = 1.801131

Затем устанавливается начальная точка x0 (-2,-2), функция исследуется на выпуклость/вогнутость в этой точке, выводится число обусловленности матрицы Гессе:

x0 (-2.000000, - 2.000000) Hessian: Alternating sign

f (x0) = - 0.398297

cond H (x0) = 4.751665

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

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

Steepest descent method:

x2 (-1.200031, - 1.706888) Hessian: Convex

grad_f (x2) = (-0.963083, 0.275166)

f (x2) = - 1.741440

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

Теперь из точки (-2; - 2) стартует метод Ньютона с поправкой гессиана. Результат двух итераций:

Newton method:

x2 (-2.735431, - 2.306328) Hessian: Alternating sign

grad_f (x2) = (-0.110421, 0.031948)

f (x2) = - 0.018516

Видно, что метод расходится. Начальная точка выбрана неудачно. Увеличение числа итераций приводит к дальнейшему расхождению метода. Это объясняется тем, что в начальной точке функция не является выпуклой. Анализируя линии уровня функции, выберем начальную точку ближе к оптимальной. Например, (-1; - 2):

x0 (-1.000000, - 2.000000) Hessian: Convex,

f (x0) = - 1.471518, cond H (x0) = 3.786885

Newton method:

x2 (-1.047041, - 1.722604) Hessian: Convex

grad_f (x2) = (0.379214, - 0.339841)

f (x2) = - 1.787758

Как в начальной, так и в конечной точке функция является выпуклой. За две итерации мы приблизились к точке А2 (-1,068; - 1,668).

Теперь возьмем начальную точку еще ближе к А2, например (-1; - 1,5):

x0 (-1.000000, - 1.500000) Hessian: Convex

f (x0) = - 1.752302

cond H (x0) = 3.857905

Newton method:

x2 (-1.067889, - 1.667566) Hessian: Convex

grad_f (x2) = (0.000000, 0.000000)

f (x2) = - 1.801131

Метод Ньютона достиг точки глобального минимума, об этом говорит практически нулевой вектор-градиент.

Точное значение отличается от полученного методом Ньютона на 4,729•10-7 (по модулю).

Выводы.

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

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

Разработанные классы Cvector и Cmatrix могут применяться в будущих проектах.

4. Задания для лабораторного практикума

Аналитически найти стационарные точки заданной функции, области выпуклости/вогнутости функции. Найти точку глобального минимума. Оценить овражность исследуемой функции в окрестности точки минимума.

Построить график функции, используя средства EXCEL или MATLAB.

Решить задачу минимизации численным методом из нескольких начальных точек. Сделать вывод об эффективности выбранного метода.

При выполнении задания на языке СИ написать классы для работы с векторами и матрицами.

Задание выбирать в соответствии с порядковым номером фамилии студента в списке группы.

, метод Хука-Дживса.

, метод наискорейшего спуска.

, метод Хука-Дживса.

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

, метод Нелдера-Мида.

, метод Ньютона.

, метод Нелдера-Мида.

, метод наискорейшего спуска.

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

, метод Хука-Дживса.

, метод Ньютона.

, метод дробления шага.

, метод наискорейшего спуска.

, метод Нелдера-Мида.

, метод дробления шага.

, метод Ньютона.

, метод Нелдера-Мида.

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

, метод наискорейшего спуска.

, метод Ньютона.

, метод дробления шага.

, метод Нелдера-Мида.

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

, метод Ньютона.

Контрольные вопросы:

Объяснить алгоритмы следующих методов

Метод конфигураций (Хука-Дживса).

Метод деформируемого многогранника (Нелдера Мида).

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

Метод сопряженных направлений и его модификации.

Метод Ньютона и его модификации.

Метод дробления шага.

Лабораторная работа № 2.

1. Методы условной оптимизации

Цель лабораторной работы закрепление навыков аналитического решения задач оптимизации со смешанными ограничениями с использованием теоремы Куна-Таккера, нахождение седловой точки функции Лагранжа, использование теории двойственности для оценки чувствительности решения задачи оптимизации.

1.1 Теоретический обзор. Решение задачи минимизации со смешанными ограничениями

Общая задача нахождения экстремума функции при наличии ограничений - равенств и ограничений неравенств записывается в следующем виде:

f (x) > extr, (6)

xX= {xEn: gi (x) ?0, i=1,2,…,r; gi (x) =0, i=r+1, …, m, m-r<n},

где среди функций f (x) и gi (x) могут быть нелинейные.

Активные ограничения - неравенства в точке х* - это ограничения, которые выполняются в данной точке в виде равенства.

Пассивные ограничения - неравенства в точке х* - это ограничения, которые выполняются в данной точке в виде строгого неравенства.

Если градиенты активных ограничений-неравенств и ограничений-равенств в точке х* линейно независимы, то говорят, что в оптимальной точке выполнено условие регулярности.

Обобщенная функция Лагранжа для задачи со смешанными ограничениями задается как

L (x,л0,л) =л0f (x) +лigi (x). (7)

При выполнении условия регулярности л0?0 и можно положить этот коэффициент равным 1.

Теорема Куна - Таккера (дифференциальная форма необходимого условия минимума). Пусть точка х* - точка локального минимума в задаче математического программирования (6), функции f,gr+1,…,gm дважды непрерывно дифференцируемы в точке х, функции g1,…,gr дважды непрерывно дифференцируемы в некоторой окрестности точки x. Тогда существует число и вектор такие, что выполняются следующие условия:

условие стационарности обобщенной функции Лагранжа по х:

gradxL (x*, ,) =0;

условие нетривиальности:

2+2>0,т.е. хотя бы один из множителей Лагранжа отличен от нуля;

условие неотрицательности:

?0, ?0, i=1, …, r,

т.е. множители Лагранжа, соответствующие целевой функции и ограничениям - неравенствам, неотрицательны;

условия дополняющей нежесткости:

gi (x*) =0, i=1, 2, …, r.

Если при этом выполнено условие регулярности, то для выпуклых функций f, gr+1,…, gm и линейных функций g1,…, gr условия теоремы Куна - Таккера являются одновременно необходимыми и достаточными условиями глобального минимума.

Достаточное условие минимума первого порядка.

Пусть имеется точка (х*,), удовлетворяющая условию стационарности обобщенной функции Лагранжа по х при ?0, суммарное число активных ограничений-неравенств в точке х* и ограничений-равенств совпадает с числом переменных n. Если >0 для всех активных ограничений gj (x), то точка х* - точка условного локального минимума в задаче (6).

Достаточное условие минимума второго порядка.

Пусть имеется точка (х*,), удовлетворяющая условию стационарности обобщенной функции Лагранжа по х при ?0. Если в этой точке d2L (х*,) >0 для всех ненулевых dx таких, что для активных в точке х* ограничений-неравенств dgj (x*) =0, >0 и dgj (x*) ?0, =0, то точка х* является точкой локального минимума.

Общая схема решения задачи условной минимизации функции:

Составляется обобщенная функция Лагранжа вида (7).

Выписываются необходимые условия минимума, сформулированные в теореме Куна - Таккера. К этим условиям добавляются ограничения, задающие допустимое множество Х. Полученная система алгебраических уравнений и неравенств используется для поиска условно-стационарных (подозрительных на экстремум) точек. Целесообразно проанализировать отдельно случаи л0=0 и л0=1 (или л0 - любое положительное число). Однако если выполнено одно из условий регулярности, то вариант л0=0 рассматривать не надо.

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

Чувствительность решения ЗНП.

Множители Лагранжа могут быть использованы для оценивания влияния малых изменений правых частей ограничений на оптимальное решение задачи нелинейного программирования. Пусть х*=х* (b) - решение ЗНП

f (x) > min, (8)

xX= {xEn: gi (x) ?bi, i=1,2,…, m; х?0}

при некотором векторе b свободных членов в ограничениях - неравенствах, а v (b) соответственно значение целевой функции при этом решении ЗНП, т.е. v (b) =f (x*). Тогда справедлива следующая оценка изменения целевой функции: ?v=f (b+?b) - f (b) при изменении вектора b на некоторый малый вектор-приращение ?b:

?f? (?b,л*), (9)

где л* - вектор множителей Лагранжа, соответствующий решению х* (b).

1.2 Седловые точки функции Лагранжа

Существование экстремума тесно связано с наличием у функции Лагранжа (6) так называемой седловой точки.

Рассматривается задача выпуклого программирования с ограничениями-неравенствами

f (x) > min, (10)

xX= {xEn: gi (x) ?0, i=1,2,…, m; х?0}.

Предполагается, что выполнено условие регулярности, т.е. можно рассматривать только вариант л0=1.

Определение. Точка (х*, л*), где х* Х, Еm, л*?0, называется седловой точкой функции Лагранжа L (x,л), если

L (x*,л) ? L (x*, л*) ? L (x, л*). (11)

Утверждение 1 (критерий для седловой точки функции Лагранжа). Точка (х*, л*) - является седловой для функции Лагранжа L (x,л) в том и только в том случае, когда выполнены следующие условия:

L (х*, л*) =min {L (x, л*) Р x Х}, (12)

L (х*, л*) =max {L (x*,л) Р л ?0}, (13)

gi (x*) =0, i=1, 2,..., m, (14)

х*?0,л*?0.

Условие (12) минимума функции Лагранжа по х эквивалентно выполнению в точке (х*, л*) неравенства

?0. (12?)

Условие (13) максимума функции Лагранжа по л эквивалентно выполнению в точке (х*, л*) неравенства

?0. (13?)

Утверждение 2. х* - оптимальное решение задачи (3) в том и только в том случае, когда существует такой вектор л* ?0, что (х*, л*) - седловая точка функции Лагранжа L (x,л).

1.3 Решение задач квадратичного программирования методом седловой точки

Рассмотрим задачу квадратичного программирования, т.е.

f (x) = (Сx,x) + (d,x) min, (15), g (x) =Ax ? b,

где С - матрица размера n*n; d, х - векторы-столбцы n*1; А - матрица размера m*n; b - вектор-столбец m*1. Для задачи квадратичного программирования критерий существования седловой точки приобретает вид задачи решения СЛАУ. Действительно, функция Лагранжа в этом случае запишется в виде

L = dkxk+ckjxkxj+ лi (aijxj-bi), (16)

где ckj - элементы матрицы С; dk - элементы вектора d; bi - элементы вектора свободных членов b; aij - элементы матрицы А; лi - коэффициенты Лагранжа. Необходимые и достаточные условия оптимальности решения х* принимают вид

vj dj+2ckjxk+ лiaij, vj ?0, (j=1,…,n), (17)

yi aijxj-bi, - yi ?0, (i=1,...,m), (18)

xjvj=0, xj?0, (j=1,...,n), (19)

лi (-yi) =0, лi?0. (20)

Равенства (17), (18) образуют систему n+m линейных уравнений с 2 (n+m) неизвестными x1,,xn,v1,…,vn, л1,…, лm,y1,,ym. Решения этой системы, при которых выполняются равенства (19), (20), дают координаты седловой точки (х*,л*). Соответственно n координат х* дают оптимальное решение задачи (15).

Делись добром ;)