Кафедра: ИТ
МЕТОДЫ ОПТИМИЗАЦИИ ФУНКЦИЙ
МНОГИХ ПЕРЕМЕННЫХ
Екатеринбург 2007
Оглавление
1. Методы безусловной оптимизации
1.1 Теоретический обзор. Исследование функции на безусловный экстремум
1.2 Численные методы минимизации функции
2. Порядок выполнения лабораторной работы
3. Пример выполнения лабораторной работы
4. Задания для лабораторного практикума
1. Методы условной оптимизации
1.1 Теоретический обзор. Решение задачи минимизации со смешанными ограничениями
1.2 Седловые точки функции Лагранжа
1.3 Решение задач квадратичного программирования методом седловой точки
2. Порядок выполнения лабораторной работы
3. Пример выполнения лабораторной работы
4. Задания для лабораторного практикума
Введение
Настоящая работа является первой в серии методических указаний к лабораторным работам по дисциплинам "Методы оптимизации и нелинейное программирование" и "Методы оптимизации". Данные дисциплины читаются студентам 2-го курса специальности 230101 - Вычислительные машины, комплексы, системы и сети и направления 230100 - Информатика и вычислительная техника (бакалавры).
В указаниях рассматриваются задачи безусловной и условной нелинейной оптимизации. В теоретической части по каждой теме приводятся базовые понятия, теоремы и алгоритмы, которые потребуются для выполнения работ. Для выполнения графической и расчетной частей задач и реализации численных методов оптимизации студенты должны применить знание языков программирования и пакетов MATLAB, MATCAD, EXCEL. Выбор конкретного инструмента предоставляется самому студенту. Приведены примеры порядка выполнения и оформления лабораторных работ.
Проведенные вычисления, графические работы, анализ полученных результатов должны быть оформлены в виде отчета в соответствии со стандартными требованиями, предъявляемыми к отчетам и пояснительным запискам [1]. Сведения из теории, содержащиеся в данных методических указаниях, в отчет включать не рекомендуется.
Лабораторная работа № 1.
1. Методы безусловной оптимизации
Цель лабораторной работы - закрепление навыков исследования функций на выпуклость, решение задач на нахождение безусловного экстремума выпуклой функции аналитически и численными методами, изучение способов визуализации функций двух переменных в EXCEL и MATLAB.
1.1 Теоретический обзор. Исследование функции на безусловный экстремум
Рассматривается задача
f (x) → extr, xRn. (1)
Метод поиска безусловного экстремума основывается на следующих утверждениях:
Пусть функция f (x) дифференцируема в точке х*Rn. Тогда если х*- локальное решение задачи (1), то
grad f (x*) =0. (2)
Пусть функция f (x) дважды дифференцируема в точке х*Rn. Тогда
а) если х* - точка локального минимума в задаче (1), то матрица Гессе Н (х*) неотрицательно определена, т.е. рRn выполняется неравенство (Н (х*) р,р) ≥0;
б) если х* - точка локального минимума в задаче (1), то матрица Н (х*) неположительно определена, т.е. рRn выполняется неравенство (Н (х*) р,р) ≤0.
Пусть функция f (x) дважды дифференцируема в точке х*Rn и
grad f (x*) =0. Тогда
а) если матрица Н (х*) положительно определена, т.е. рRn, р≠0, (Н (х*) р,р) >0, то х* - точка строгого локального минимума функции f (x) на Rn;
б) если матрица Н (х*) отрицательно определена, т.е. рR, р≠0, (Н (х*) р,р) <0, то х* - точка строгого локального максимума функции f (x) на Rn.
Если grad f (x*) =0, то х* называется стационарной точкой. Для выпуклой (вогнутой) на Rn функции стационарные точки являются точками ее глобального минимума (максимума). Строго выпуклые (вогнутые) функции имеют единственный глобальный минимум (максимум).
Критерий выпуклости функции. Дважды непрерывно дифференцируемая на выпуклом множестве Х с непустой внутренностью функция является выпуклой (вогнутой) на этом множестве в том и только том случае, когда матрица Гессе Н (х*) неотрицательно (не положительно) определена для всех х Х.
При исследовании на знакоопределенность матрицы вторых производных функции рекомендуется применять критерий Сильвестра или анализ собственных значений матрицы.
Схема поиска безусловных экстремумов функции:
Составить и решить систему алгебраических уравнений (2).
В стационарных точках (точках, являющихся решением системы (2)) исследовать на знакоопределенность матрицу вторых производных; точки, в которых Н (х) >0, являются точками глобального минимума; стационарные точки, в которых Н (х) <0, являются точками глобального максимума.
Исходя из вида исследуемой функции, проанализировать стационарные точки, в которых матрица вторых производных не является строго знакоопределенной.
Найденные точки локального экстремума исследуются на глобальный экстремум (если это возможно). В частности, если матрица Гессе неотрицательно (не положительно) определена на всем пространстве Еn, то все стационарные точки функции являются точками глобального минимума (максимума).
1.2 Численные методы минимизации функции
Численное решение задачи минимизации (1), как правило, связано с построением минимизирующей последовательности точек x0,x1,x2,…,xn,…, обладающих свойством
f (xk) <f (xk-1), k=0,1,… (3)
Общее правило построения минимизирующей последовательности имеет вид
x k+1=x k+t kd k, k=0,1,…,
где х0 - начальная точка поиска; dk - приемлемое направление перехода из точки xk в точку xk+1, которое обеспечивает выполнение условий (3) и называется направлением спуска; tk - величина шага. Начальная точка поиска задается исходя из физического содержания решаемой задачи и априорных данных о существовании и положении точек экстремума.
При решении вопроса о выборе численного метода рекомендуется оценить поведение линий уровня целевой функции в окрестностях предполагаемой точки экстремума. Число m = L/l, где L и l - максимальное и минимальное собственные значения гессиана функции f в предполагаемой точке экстремума x0 (характеризующее разброс собственных значений оператора f (x)), называется числом обусловленности гессиана функции f в точке x0. Если m >> 1, то функция f называется плохо обусловленной или овражной. Овражность, то есть вытянутость линий уровня вдоль одного направления, приводит к тому, что градиентные методы поиска экстремума функции сходятся медленно.
В зависимости от наивысшего порядка частных производных функции f (x), используемых для формирования dk и tk, численные методы принято делить на три группы:
Методы нулевого порядка, использующие информацию только о значениях функции f (x) (методы деформируемого многогранника, конфигураций). Эти методы могут применяться в тех случаях, когда функция задана неявно или не задана аналитически, но известен ряд значений функции или эти значения вычисляются непосредственно в ходе реализации алгоритма. Они также могут быть полезны в случаях, когда производные функции могут быть заданы аналитически, но их выражения очень громоздки.
Методы первого порядка, использующие информацию о значениях самой функции f (x) и ее первых производных (методы наискорейшего градиентного спуска, дробления шага, Гаусса-Зейделя, Флетчера-Ривса).
Методы второго порядка, использующие, кроме того, и информацию о вторых производных функции f (x) (метод Ньютона и его модификации).
Метод конфигураций (Хука - Дживса)
Следует выделить два этапа метода конфигураций:
1) исследование с циклическим изменением переменных и 2) ускорение поиска по образцам.
Исследующий поиск начинается в точке х0, называемой старым базисом. Направления поиска - координатные направления. По каждому направлению поочередно с шагом +t0 (-t0) проверяется выполнение условия (2) и в качестве нового базиса берется точка с координатами, полученными в результате удачных шагов из начальной точки по каждому направлению.
Направление от старого базиса к новому задает направление ускорения поиска: в качестве следующей точки минимизирующей последовательности проверяется точка y1=x0+l (x1-x0). Здесь l - ускоряющий множитель, задаваемый пользователем. Если полученная точка является удачной, то она берется в качестве следующей точки для исследования. В противном случае исследование ведется из точки x1.
Метод деформируемого многогранника (Нелдера - Мида).
При решении задачи поиска минимума функции f (x) методом Нелдера-Мида строится последовательность множеств из n+1 точек, которые являются вершинами выпуклого многогранника. На каждом последующем k+1-м шаге из системы точек xi (k), i=1, …,n+1, полученной на k-м шаге, выводится точка xh (k), в которой функция f (x) имеет наибольшее значение (худшая точка). Вместо xh (k) в систему вводится новая точка, выбираемая на отрезке прямой, проходящей через худшую точку и центр тяжести оставшихся n вершин многогранника:
xn+2= - центр тяжести;
xn+3= xn+2+a (xn+2 - xh)
новая точка (“растянутое” отражение наихудшей вершины).
Метод дробления шага.
В данном методе строится релаксационная последовательность точек, т.е. таких точек {xk}, k=0,1,…, что f (xk) <f (xk-1), k=0,1,…. Точки последовательности {xk} вычисляются по следующему правилу:
xk+1=xk-tkgrad f (xk), k=0,1,… (4)
Начальная точка х0 и начальный шаг t0 задаются пользователем. Величина шага t0 не изменяется до тех пор, пока функция убывает в точках последовательности. Это контролируется путем проверки выполнения условия f (xk+1) - f (xk) <0 (или <-ε). Если условие убывания не выполняется, то величина шага уменьшается, как правило, вдвое, т.е. tk=tk/2.
Метод наискорейшего градиентного спуска
Как и в предыдущем методе, точки релаксационной последовательности {xk}, k=0,1,… вычисляются по правилу (4). Точка х0 задается пользователем; величина шага tk определяется из условия минимума одномерной функции φ (tk) =f (xk-tkgrad f (xk)). Задача минимизации функции φ (tk) может быть решена с использованием необходимого условия минимума =0 с последующей проверкой достаточного условия минимума >0 или с использованием численных методов.
Метод сопряженных направлений (Флетчера - Ривса).
В данном методе используются свойства векторов, сопряженных относительно некоторой матрицы.
Определение. Векторы p и q называются сопряженными относительно матрицы Q, если выполняется равенство pQq=0.
Точки релаксационной последовательности {xk}, k=0,1,… вычисляются по правилу
xk+1=xk-tkdk, k=0,1,…;
dk = - grad f (xk) +βk-1 dk - 1; (5)
d0= - grad f (x0);
βk-1=║grad f (xk) ║2∕║grad f (xk-1) ║2.
Точка х0 задается пользователем; величина шага tk определяется из условия минимума функции φ (t) =f (xk-tdk). Задача минимизации одномерной функции φ (tk) может быть решена с использованием необходимого условия минимума =0 с последующей проверкой достаточного условия минимума >0 или с использованием численных методов. Коэффициент βk-1 вычисляется из условия сопряженности направлений dk и dk-1.
Метод Ньютона.
Строится последовательность точек {xk}, k=0,1,…, таких, что , k=0,1,… Точки последовательности {xk} вычисляются по правилу xk+1=xk+dk, k=0,1,… Точка х0 задается пользователем с учетом знакопостоянства и невырожденности матрицы Гессе в задаваемой начальной точке и близости выбранной точки к предполагаемой точке минимума. Направление спуска определяется для каждого значения k по формуле dk =-H-1 (xk) grad f (xk), где Н - матрица Гессе.
2. Порядок выполнения лабораторной работы
Записать необходимые условия экстремума. Аналитически или используя прикладные пакеты найти стационарные точки.
Проверить выполнение достаточных условий экстремума в найденных стационарных точках. Найти глобальный минимум функции. Оценить обусловленность задачи в точке минимума и овражность графика в окрестности точки минимума. Сделать предварительный вывод о работоспособности избранного численного метода.
Выбрать пакет, в котором будет строиться график. Рекомендации приведены в приложении. Построить график функции, задавая пределы изменения координат с учетом аналитически найденных точек минимума - максимума.
Выбрать несколько начальных точек для реализации численного метода. Задать критерий завершения итерационного процесса. Найти минимум. Сравнить результаты с аналитически найденным значением глобального минимума. Исследовать сходимость алгоритма, фиксируя точность определения минимума, количество итераций метода и количество вычислений минимизируемой функции в зависимости от задаваемой точности поиска. Результатом выполнения данного пункта должны быть выводы об объёме вычислений в зависимости от задаваемой точности и начального приближения.
3. Пример выполнения лабораторной работы1
Функция: 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)
xОX= {xОEn: 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)
xОX= {xОEn: 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)
xОX= {xОEn: 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).
2. Порядок выполнения лабораторной работы
Построить допустимую область задачи и линии уровня.
Записать функцию Лагранжа и необходимые условия экстремума, из которых аналитически или используя прикладные пакеты найти условно-стационарные точки.
Для каждой точки указать активные и пассивные ограничения. Проверить выполнение достаточных условий экстремума в найденных стационарных точках. Найти глобальный минимум функции. Используя критерий (утверждение 1), проверить, что найденная точка является седловой точкой функции Лагранжа.
Проверить справедливость оценки (9), решив задачу при положительных и отрицательных малых значениях приращения ∆b.
Решить задачу квадратичного программирования методом седловой точки. Для этого записать систему (17) - (18), найти ее решения, удовлетворяющие условиям (19) - (20).
3. Пример выполнения лабораторной работы
Минимизировать нелинейную функцию при условиях и , применяя метод функции Лагранжа. Проверить справедливость оценки изменения целевой функции (9).
Допустимая область - часть сферы , лежащая в подпространстве
, a= (1, 1,1).
Рассмотрим случай . Если при этом , то .
Из (21) - (23) ®, что противоречит (28).
Если , то (иначе получаем противоречия в (21) - (23)).
Из (21) - (23) ®. Подставим в (26): . Отсюда , что противоречит исходному предположению .
Рассмотрим теперь случай .
Если , то получаем точку (из (1′) … (3′), (7′)).
Остальные "симметричные" точки здесь и далее приводить не будем.
Если , , , то
,
,
.
Далее получаем точки
и . , .
Для значение
, для значение .
Если , , то
Если , то
и .
Следовательно, и . Однако, , значит, пришли к
противоречию.
Таким образом, .
Суммирование первых трех уравнений дает уравнение
,
в котором последнее слагаемое равно нулю, поэтому
.
С другой стороны,
и .
Следовательно, ,
откуда . Если , то .
Разделим равенства на : . Однако, если , то их произведение не может быть равно . Значит, . Если , получаем следующую систему:
.
Получаем точку
(в силу симметрии переменных х1, х2, х3 координаты можно переставить),
, .
Предположив , получим те же результаты.
Найдены следующие точки:
, , ;
, , , ;
, , , ;
, , , .
Запишем второй дифференциал обобщенной функции Лагранжа.
, , ;
.
является активным ограничением только для точки .
Применим достаточное условие минимума второго порядка к этой точке:
Подставив и во второй дифференциал функции Лагранжа, получим
.
Запишем матрицу квадратичной формы относительно приращений:
.
Для "верхнего" знака матрица
.
Для "нижнего" знака элементы матрицы меняют знак. Согласно критерию Сильвестра, в этой точке нет экстремума.
Сравним значения функции в остальных точках:
; ; .
Точкой глобального минимума является
,
значение функции в этой точке
-0, 192450. .
Проверим справедливость оценки для точки , .
Возьмем вектор , ему соответствуют множители Лагранжа
.
Следовательно,
.
Перепишем условие задачи, введя приращение :
;
.
Из первых трех уравнений получаем и подставим в последнее уравнение:
, .
.
.
Возьмем, например,
.
С другой стороны,
.
Аналогично для
и .
Решить задачу максимизации квадратичной функции
при условиях 15 и 1,2,3.
Перепишем условие следующим образом:
Функция Лагранжа имеет вид
.
Необходимые и достаточные условия минимума:
,, ,
,,.
Получаем систему уравнений и неравенств:
Для решения промежуточной задачи ЛП воспользуемся средствами MS Excel. Введем формулы, соответствующие системе (рис.2), и начальное приближение для решения системы уравнений (рис.3).
Рис.2. Ввод данных задачи
Рис.3. Задание начального приближения
Заполним поля диалога "Поиск решения" (рис.4).
Рис.4. Экранная форма "Поиск решения"
В окне "Параметры" установим флажок "Неотрицательные значения".
В результате решения найдена седловая точка функции Лагранжа
(х*,λ*) = (15; 0; 0; 30) (рис.5).
Рис.5. Результаты поиска решения.
Оптимальное решение задачи: х* (15; 0; 0), f (x*) = 225.
4. Задания для лабораторного практикума
Решить задачу минимизации функции методом множителей Лагранжа.
Решить ЗНП методом седловой точки. Промежуточную задачу решения СЛАУ решить, используя EXCEL.
1. .
2. .
3. .
4. .
5. .
6. .
7. .
8. .
Ограничения (для всех вариантов):
.
Контрольные вопросы:
Активные и пассивные ограничения. Регулярная задача.
Теорема Куна-Такера.
Достаточные условия минимума в задачах математического программирования.
Седловая точка.
Метод седловой точки для задачи квадратичного программирования.
Библиографический список
Стандарт предприятия: Общие требования и правила оформления дипломных и курсовых проектов (работ): СТП УГТУ - УПИ 1 - 96. Екатеринбург, 1996.
Акулич И.Л. Математическое программирование в примерах и задачах / И.Л. Акулич. М.: Высшая школа, 1993.335 с.
Аттетков А.В. Методы оптимизации / А.В. Аттетков, С.В. Галкин,
В.С. Зарубин. М.: МГТУ, 2004.432 с.
Васильев В.П. Численные методы решения экстремальных задач / В.П. Васильев. М.: Наука, 1980.518 с.
Габасов Р. Методы оптимизации / Р. Габасов, Ф.М. Кириллова. Минск: БГУ, 1981.350 с.
Дьяконов В. Matlab: учебный курс / В. Дьяконов. СПб.: Питер, 2001.560 с.
Еремин И.И. / И.И. Еремин, Н.Н. Астафьев. М.: Наука, 1976.192 с.
Пантелеев А.В. Методы оптимизации в примерах и задачах /
А.В. Пантелеев, Т.А. Летова. М.: Высшая школа, 2005.544 с.
МЕТОДЫ ОПТИМИЗАЦИИ ФУНКЦИЙ МНОГИХ ПЕРЕМЕННЫХ: методические указания к лабораторным работам / сост. С.Д. Чернина. Екатеринбург: УГТУ-УПИ, 2007.36 с.
Приложение
Рекомендации по использованию EXCEL и MATLAB
Построение графиков
Для построения графика функции y=f (x1,x2) могут быть использованы следующие инструменты:
1. В EXCEL - Мастер диаграмм, подтип Поверхность.
а. Используя автозаполнение, на листе EXCEL в столбец А и первую строку с выбранным шагом ввести соответственно значения переменных x1 и x2, для которых будут вычисляться значения функции.
б. В ячейку В2 ввести выражение для вычисления функции f (x1,x2) в точках $A2, B$1 (знак $ - признак абсолютной адресации, при которой будут зафиксированы первый столбец - перебор значений переменной x1 и первая строка - перебор значений переменной x2) и нажать одновременно три клавиши Ctrl, Shift, Enter, поскольку формула используется для обработки массивов. В строке формул должны появиться фигурные скобки.
в. Выделить ячейку В2 и, протянув маркер заполнения сначала вниз, пробегая все ячейки, заполненные в столбце А, а затем вправо, пробегая все ячейки, заполненные в строке 1, заполнить массив значений функции в узловых точках области построения графика.
г. На вкладке "Стандартные" Мастера диаграмм выбрать подтип Поверхность. Поверхностная диаграмма дает трехмерное изображение функции, а контурная диаграмма представляет вид сверху на поверхностную диаграмму и является аналогом линий уровня исследуемой функции.
2. В MATLAB - функции plot3, mesh, surf, surfl.
а. С помощью функции meshgrid получить двумерные массивы координат узловых точек области построения графика: u=a: ∆1: b; v=c: ∆2: d; [x,y] =meshgrid (u,v).
б. Задать исследуемую функцию: f= f (х, у).
в. Применяя указанные выше функции, получить трехмерное изображение: plot3 (x,y,f) или mesh (x,y,f), surf (x,y,f), surfl (x,y,f).
Действия с матрицами
Для нахождения собственных значений и собственных векторов матрицы Гессе могут быть использованы следующие инструменты MATLAB:
λ = eig (a) - функция eig (a) возвращает собственные значения заданной матрицы a. Пример задания матрицы 4х4: a = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1] ;
[v,d] = eig (a) - при таком обращении функция возвращает собственные векторы v и собственные значения как элементы диагональной матрицы d.
Для нахождения матрицы, обратной матрице Гессе, могут быть использованы следующие инструменты:
В EXCEL - функция МОБР возвращает обратную матрицу для матрицы, хранящейся в массиве.
В MATLAB - функция y=inv (a) возвращает обратную матрицу для матрицы a.
1 Лабораторная работа выполнена студентом Коневым С.