Динамическое программирование

Раздел математического программирования, в котором процесс принятия решения разбивается на этапы.

Постановка задачи

Рассматривается система S, которая с течением времени может менять состояние. Говорят, что в системе протекает процесс. Процесс является управляемым. Управление – способ воздействия на систему.
Процесс принятия решения можно разбить на n шагов.
1 - состояние системы после i-ого шага.
3 - начальное состояние системы (может быть элементом множества начальных состояний 7).
8 - конечное состояние системы (может быть элементом множества конечных состояний 12).
13 - управление на i-ом шаге.
16 - вектор управления.
Под действием 17 система переходит из 4 в 9.
18
С переходом из 5 в 10связана заинтересованность с помощью критерия 19.

Среди всех возможных управлений 21, переводящих систему из 6 в 11 выбрать то, которое доставляет максимум функции 20.

Задачи динамического программирования решаются методом прямой прогонки и методом обратной прогонки.
Процесс нахождения решения разбивается да две стадии:
условная оптимизация;
безусловная оптимизация.
На стадии условной оптимизации определяются условные оптимальные выигрыши и условные оптимальные управления.
Прямая прогонка:              от первого шага к последнему.
Обратная прогонка:          от последнего шага к первому.
На стадии безусловной оптимизации строится оптимальное решение исходной задачи и определяется max (min).
Прямая прогонка:              от последнего шага к первому.
Обратная прогонка:          от первого шага к последнему.

Рассмотрим метод обратной прогонки.

В основе метода лежит принцип оптимальности Беллмана:
Управление на каждом шаге нужно выбирать так, чтобы сумма выигрыша на данном шаге и оптимального выигрыша на всех последующих шагах была максимальна.

Уравнение состояния: 22 - система перешла в состояние 2 из состояния 23 под управлением 14, при этом получен выигрыш 24.
25 - оптимальный выигрыш на последующих шагах.
26 - выигрыш на этом шаге и на всех последующих.
Согласно принципу Беллмана управление 15 надо выбрать так, что эта сумма была максимальной.

Условная оптимизация

27  - основное функциональное уравнение.

28 - функциональное уравнение для последнего шага.

Безусловная оптимизация

Если начальное состояние задано, то 29.
Если начальное состояние не задано, но сказано, что оно принадлежит какому-либо множеству, то 30.