- •Основные понятия.
- •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. Принцип максимума в задаче о быстродействии.
- •Список литературы
4.2. Динамическое программирование.
Модельная задача: поиск кратчайшего пути на графе.
Рис.1
На дугах проставлены расстояния между двумя вершинами. В вершинах - кратчайшее расстояние до конечной вершины .
Кратчайший путь имеет длину 5.
Этот граф без циклов.
Таким образом, можно разметить любой граф без циклов.
Двигаемся от конечной вершины к начальной:
любая вершина - состояние процесса,
дуги - переходы.
Таким образом, задача: на множестве всех траекторий выбрать ту, длина которой минимальна.
4.2.1. Абстрактная схема.
Пусть - конечное множества состояний и конечное множество управлений U. На некотором подмножестве U задана функция перехода : . Пусть есть последовательность состояний {,,...,} и последовательность управлений {,,...,}, для которых () =.
Определение: Совокупность состояний и управлений называется траекторией процесса.
( множество состояний )
Введем множество траекторий Т, соединяющих начальные и конечные вершины.
Пусть на Т задан функционал:
(*)
Требуется найти траекторию с минимальным значением функционала:
J (t) ?
Заметим, что (*) можно представить в виде:
J (,...,) =
Функционал такого вида называется аддитивным. Следует подчеркнуть, что динамическое программирование применимо, если функционал аддитивный.
Метод динамического программирования позволяет свести минимизацию функции n переменных к n одномерным минимизациям.
4.2.2. Вывод уравнения Беллмана.
Пусть - множество траекторий , ведущих изi-й вершины в конечную.
Обозначим -множество управлений, допустимых для данной вершины.
(u,)
вершина ,в которой осуществляется переход
Тогда
=(2)
- хвост траектории.
Введем функцию:
Z() =J (t) (3)
Используя (2) получим соотношение для функции (3):
Z() =J ((,u),)
Представим функционал через (*):
Выделим первую компоненту этой суммы:
+
не зависит от (i,uj) при j1 («хвоста траектории»).
Поэтому :
*
Z(
(,u))
см.(3)
(+ Z( (,u)))
Существуют марковские процессы или процессы без предыстории ( так называются процессы, развитие которых при t >не зависит от характера их протекания при t<).
Например, процесс задачи коммивояжера не марковский (очевидно).
Для процессов марковского типа Беллман сформулировал так называемый принцип оптимальности:
Конечный участок оптимальной траектории (хвост) является оптимальной траекторией.
Учитывая принцип оптимальности , можем написать:
=(+)- уравнение Беллмана
-функция Беллмана
= 0 (н.у. для рекурсии)
-конечная вершина.
4.2.3. Методика применения функции Беллмана для решения исходной задачи.
Рассмотрим множество вершин , из которых можно попасть только в конечную (см. рис.1),
= 0 (-конечная вершина).
С помощью уравнения Беллмана можно рассчитать в любой точке множества.
Для каждой из этих вершин можно зафиксировать управление u , на котором
достигается min уравнения Беллмана.
Рассмотрим множество вершин, , из которых можно попасть только в . С помощью уравнения Беллмана можно вычислитьв любой точкеи зафиксироватьu, на котором достигается min уравнения Беллмана.
Описанные действия повторяют, пока не вычислят в начальной вершине. Это и будет значение функционала.
Описанный процесс часто называют обратным ходом, за которым следует прямой, в течение которого определяют оптимальную траекторию, которая определяется через выбранные при обратном ходе управления для каждой вершины.