- •Основные понятия.
- •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.6. Методы нулевого порядка (методы прямого поиска)
1.6.1. Методы аппроксимации
В их основе лежит аппроксимация градиента и матрицы вторых производных с помощью конечных разностей.
Пусть ej - орт j-й оси.
f (x + ej) f(x) + (f/x)j + O(2)
f/xj ( f(x + ej) - f(x) )/ ( f(x + ej) - f(x - ej) )/ (2)
Здесь под градиентом понимается конечная разность. Если слишком мала, то слишком велики погрешности при вычислении производных. Если велика, то из-за O(2) погрешности тоже велики. Таким образом, проблема этих методов - выбор .
Метод покоординатного спуска
Нужны направления. Раньше их задавал градиент, теперь его нет. Возможен случайный выбор, а можно по координатным осям.
Алгоритм:
j :=1
min f(x’-ej)=f(x’’), x’’:= x’- *ej
j:=j+1, x’= x’’
if j n then goto 2)
if not (условие окончания цикла) then goto 1
Достоинство:
Требуется min функции вдоль только одной прямой.
1.6.3. Метод симплексов (Нелдера-Мида)
Алгоритм:
1.Фиксируем xo…xn ( n+1- точка)
Если n =2 , то выбираем равнобедренный треугольник.
2 .
т.е. вычисляем отражённую точку.
Если f(xj’) < f(xj), то xj := xj’; k:=0, иначе k:=k+1
где k- количество идущих подряд неудачных отражений
3. Если k<n, то (если j<n, то j:=j+1 , иначе j:=0) goto 2.
4.Иначе сжатие: xl = argmin f(xj), 0 j n - ищем вершину, в которой функция минимальна (то есть наименьшее значение из всех существующих вершин.
5. Cжатие: xj = xl + ( xj - xl), j (сжатие в раз).
6. Если ||x0 – x1||, то j:=0, goto 2.
7. Печать xl.
Особенность: метод в ряде случаев позволяет найти глобальный минимум, т.е. позволяет перескакивать через хребты.
Существует много модификации метода.
1.6.4. Метод Пауэлла (сопряженных направлений)
Идея: Для двух точек x0,x1 делается шаг в произвольном направлении p0. Получаем точки x2,x3. Следующий шаг делаем в направлении p1. Находится x*.
p1= x3-x2 x2 x3p1
x*
p0 p1
x0 x1
Утверждается, что (Ap1,po)=0.
Поэтому для квадратичной функции метод сойдется за n-шагов. Это один из лучших методов прямого поиска.
1.7. Методы прямого поиска в задачах одномерной минимизации.
Схема метода: xk+1 = xk + tkSk , где Sk -направление.
Необходимо определить tk.. Для этого надо найти минимум функции одной переменной (t) = f(xk + tSk). Будем искать точку локального минимума, поэтому ограничимся унимодальными функциями, т.е. имеющими один минимум. Больше ничего о функции неизвестно. Только можно вычислить (измерить) значения функции в точках.
1.7.1. Метод квадратичной интерполяции.
Пусть функция задана на прямой, даны при этом точки a<b<c, и , точка минимума в [a, c]
Через эти точки проведем параболу:
Положим:
, т.е. имеем 3 уравнения и 3 неизвестных g0, g1, g2.
Находим g0, g1, g2
Рассмотрим два случая:
Так поступаем до тех пор, пока точка не окажется в достаточно малой окрестности одной из трех точекa, b, c. После чего такую точку считаем точкой минимума.
Метод можно обобщить на случай кубических и т.д. функций, но потребуется вычислять большее количество точек.