- •Основные понятия.
- •1. Безусловная оптимизация (многомерные функции)
- •1.1 Методы первого порядка (градиентные методы)
- •1.1.1. Градиентный метод с постоянным шагом
- •1.1.2. Выпуклые функции и множества
- •Теорема
- •Определение.
- •Без доказательства
- •2.Теорема:
- •1.2. Градиентные методы (продолжение)
- •1.2.1. Градиентный метод с дроблением шага.
- •1.2.2. Метод наискорейшего спуска.
- •Без доказательства
- •1.2.3. Масштабирование
- •1.3. Метод Ньютона.
- •1.4. Многошаговые ( двухшаговые ) методы.
- •1.3.1. Метод тяжелого шарика
- •1.3.2. Метод сопряженных градиентов
- •1.3.3. Модификация Полака-Ривьера
- •1.5. Квазиньютоновские методы
- •1.6. Методы нулевого порядка (методы прямого поиска)
- •1.6.1. Методы аппроксимации
- •Метод покоординатного спуска
- •1.6.3. Метод симплексов (Нелдера-Мида)
- •1.6.4. Метод Пауэлла (сопряженных направлений)
- •1.7. Методы прямого поиска в задачах одномерной минимизации.
- •1.7.1. Метод квадратичной интерполяции.
- •1.7.2. Метод дихотомии ( половинного деления.).
- •1.7.3. Метод «золотого» сечения.
- •1.7.4. Метод Фибоначчи.
- •2. Условная минимизация.
- •2.1 Задача нелинейного программирования.
- •2.1.1. Ограничения типа равенства.
- •2.1.2. Ограничения типа неравенств.
- •2.2. Задача выпуклого программирования
- •2.3. Методы условной минимизации.
- •2.3.1. Метод проекции градиента.
- •2.3.2. Метод условного градиента.
- •2.3.3. Метод модифицированной функции Лагранжа.
- •2.3.4. Метод штрафных функций.
- •2.4. Двойственность звп
- •2.4.1. Двойственность злп
- •3. Линейное программирование
- •3.1. Основные понятия
- •3.2. Геометрическая интерпретация злп.
- •3.3. Условие оптимальности для злп.
- •3.4. Базис и базисное решение.
- •3.5. Симплекс - метод решения злп.
- •3.6 Транспортная задача
- •3.5.1. Построение первоначального опорного плана.
- •3.5.2. Построение оптимального плана. Метод потенциалов.
- •4. Решение переборных задач.
- •4.1. Метод ветвей и границ.
- •4.1.1. Задача о коммивояжере.
- •4.2. Динамическое программирование.
- •4.2.1. Абстрактная схема.
- •4.2.2. Вывод уравнения Беллмана.
- •4.2.3. Методика применения функции Беллмана для решения исходной задачи.
- •4.2.4. Примеры задач динамического программирования
- •5. Вариационное исчисление (ви)
- •5.1. Уравнение Эйлера-Лагранжа.
- •5.1.1. Частные случаи уравнения Эйлера-Лагранжа.
- •5.1.2. Задача о брахистохроне.
- •5.2. Вариационные задачи на условный экстремум.
- •5.2.1. Модельные задачи на условный экстремум.
- •6. Принцип максимума Понтрягина ( на примере задачи оптимального управления ).
- •6.1. Принцип максимума в задаче о быстродействии.
- •Список литературы
1.1.1. Градиентный метод с постоянным шагом
Пусть tk = t (т.е. не зависит от к)
xk+1 = xk - tf(xk)
Видно, что останавливаемся в любой точке, где f(xk)=0.
Пример:
f(x) = ax2, a>0, x-скаляр
xk+1=xk - 2taxk = (1- 2at)xk
Отсюда
1-2at<1 at<1- необходимое и достаточное условие существования предела
Если 0<tk<1/a - сходится,
tk>1/a - расходится,
tk=1/a - зацикливается.( tk=1/a x1=x0-2x0= -x0 x2=x1-2x1= -x1=x0 и т.д.)
Выбор постоянного шага приводит к осложнениям, так как a заранее часто не известно, а при малом значении a – много шагов; при большом – есть риск потери сходимости.
Оценим сходимость этого метода в общем случае.
Теорема (о сходимости метода градиентов)
Пусть f(x)- дифференцируема на Rn, f(x) удовлетворяет условию Липшица:
L>0, x, y верно || f(x)-f(y) || L ||x-y || (*)
(||x2|| = xi2 ), f(x)- ограничена снизу: f* такая, что f(x) f* >- (**)
и 0< t< 2/L (***)
Тогда при xk+1= xk - tf(xk), справедливо:
f(xk) 0, при k (градиент стремится к нулю),
функция f(x) монотонно убывает (f(xk+1)f(xk)),
f(xk+1) f(xk)-t(1-tL/2)||f(xk) ||2 .
Доказательство
Справедливо равенство:
(1)
Пусть x=xk, y= -tf(xk) (2)
Подставим (2) в(1):
f(xk+1)=f(xk)-t||f(xk) ||2-t-f(xk),f(xk))dt
Под интегралом:
(f(xk-tf(xk))-f(xk),-tf(xk))
Из условия теоремы известно: ||f(x)-f(y)|| L||x-y||
В данном случае:
x-y = -tf(xk), то есть ||f(xk-tf(xk))-f(xk)|| L||- tf(xk)||
и тогда соответствующее скалярное произведение принимает вид:
L(- tf(xk), - tf(xk)) = Lt2||f(xk)||2
f(xk)- ||f(xk)||2+Lt2||f(xk) ||2 =f(xk)-t(1-Lt/2) ||f(xk) ||2
Обозначим a = t(1-Lt/2); a>0, так как (***)
Отсюда f(xk+1) f(xk)-a||f(xk) ||2
Оценим f(xk+1) через f(x0)
Пусть k=0: f(x1) f(x0)- a||f(x0) ||2
k=1: f(x2) f(x1)- a||f(x1) ||2 f(x0)- a||f(x0) ||2 - a||f(x1) ||2.........
f(xs) f(x0)- a2
так как a>0, то 2 a-1(f(x0)-f(xs+1)) a-1(f(x0)-f*), S
то есть 2< ( сумма ограничена) ||f(xk) ||0, то есть теорема доказана.
Замечание:
Сходимость градиента к нулю не гарантирует сходимости к минимуму.
Пример:
, градиент сходится к нулю, но функция не имеет локальных минимумов.
Равенство градиента нулю - необходимое условие минимума; если к нему добавить положительность второй производной, то будет достаточное условие локального минимума.
Таким образом доказана сходимость метод при определенных условиях. Оценить скорость сходимости в общем случае можно для более узкого класса функции.
1.1.2. Выпуклые функции и множества
Определение. Множество X называется выпуклым, если x1,x2X, [0,1], выполняется x1+(1-)x2X, то есть вместе с любыми двумя точками оно содержит и отрезок их соединяющий.
На рис 1 изображено выпуклое множество, на рис 2 - невыпуклое.
рис 1 рис2
Определение. Точка Z называется выпуклой комбинацией точек x1,x2,...,xm, если
, ,,
Теорема (о выпуклом множестве)
Выпуклое множество X содержит все выпуклые комбинации своих точек. Доказать самостоятельно.