![](/user_photo/1334_ivfwg.png)
- •Основные понятия.
- •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
уравнения Беллмана.
Описанные
действия повторяют, пока не вычислят
в начальной вершине. Это и будет значение
функционала.
Описанный процесс часто называют обратным ходом, за которым следует прямой, в течение которого определяют оптимальную траекторию, которая определяется через выбранные при обратном ходе управления для каждой вершины.