Принцип оптимальности беллмана
Решение задач математического программирования, которые могут быть представлены в виде многоэтапного многошагового процесса составляет предмет динамического программирования.
Динамическим программированием называется особый математический метод оптимизации решений, специально приспособленный к многошаговым процессам.
Процесс называется многошаговым, если он развивается во времени и распадается на ряд шагов или этапов.
Особенности динамического программирования:
1) Принятие решения по отношению к многошаговому процессу рассматривается не как единичный акт, а как целый комплекс взаимосвязанных решений.
Такая последовательность взаимосвязанных решений называется стратегией управления. Управлением же называется совокупность решений, принимаемых на каждом этапе с целью влияния на ход процесса.
Таким образом, решая задачи динамического программирования, мы рассматриваем управляемый экономический процесс, т.е. процесс, на ход которого можно влиять.
2) Оптимальное решение, которое принимается на данном шаге, не зависит от того, каким образом оптимизируемый процесс достиг настоящего состояния.
3) В методе динамического программирования поэтапное планирование многошагового процесса должно производиться так, чтобы при планировании каждого шага учитывалась не только выгода, получаемая на данном шаге, но и общая выгода, получаемая по окончании всего процесса.
Принцип оптимальности Беллмана. Каково бы ни было состояние системы перед очередным шагом, надо выбирать управление на этом шаге так, чтобы выигрыш на данном шаге плюс оптимальный выигрыш на всех последующих шагах был максимальным.
При решении оптимизационных задач методом динамического программирования необходимо учитывать на каждом шаге последствия, к которым приведёт в будущем решение, принимаемое в данный момент.
Исключением является последний шаг. Здесь процесс можно планировать так, чтобы последний шаг сам по себе приносил максимальный эффект.
Спланировав оптимально последний шаг, к нему можно пристроить предпоследний так, чтобы результат этих двух шагов был оптимальным и т.д.
Задачи динамического программирования решаются в два этапа.
I этап. Процесс условной оптимизации предполагает рассмотрение экономического процесса от конца к началу и решение на каждом шаге принимается при условиях, накладываемых предыдущим шагом.
Поэтому оптимальное решение, найденное при условии, что предыдущий шаг закончился определённым образом, называется условно-оптимальным.
II этап. Процесс безусловной оптимизации состоит в рассмотрении экономического процесса от начала к концу, в результате чего определяется оптимальное решение.
Математическая постановка задачи
динамического программирования
Рассматривается некоторый развивающийся во времени управляемый процесс. Предполагается, что этот процесс распадается на N шагов.
Состояние процесса на начало каждого шага характеризуется некоторым вектором Si. Этот вектор называется вектором состояния процесса.
Множество всех состояний, в которых может находиться процесс за период из N шагов обозначается S. Известно начальное состояние процесса S0. Развитие процесса заключается в последовательном переходе от одного состояния к другому (Si →Si+1).
Если процесс находится в состоянии Si, то его состояние на следующем шаге Si+1 определяется не только вектором Si, но и решением ui, принятым на i-м шаге (является некоторой функцией от величин Si и ui)
Si+1 = φ(Si, ui).
Решение ui на каждом шаге выбирается из множества U возможных решений: u0, u1, u2,…, uN-1; ui ÎU.
Само развитие процесса можно описать последовательностью состояний: s0, s1, s2,…, sN; si ÎS.
Стратегией управления называют любую последовательность допустимых решений u0, u1, u2,…, uN-1, которая приводит процесс из начального состояния s0 в конечное sN.
Для полного описания процесса, каждой стратегии ставится в соответствие значение оценочной функции fN(s) – эта функция называется целевой. Главное свойство этой функции – свойство аддитивности: fN(s) – целевая оценочная функция равняется сумме оценочных функций ri, которые получены на каждом шаге процесса при переходе из состояния si в состояние si+1
.
Поскольку задано допустимое множество состояний si–х, допустимое множество решений ui–х, правило перехода от одного состояния к другому и целевая функция, сформулируем общую задачу динамического программирования:
Найти стратегию управления u*={ u0, u1, u2,…, uN-1},
позволяющую достигнуть экстремума функции
при условиях:
1) вектор начального состояния процесса S0 задан
2) состояние на очередном i-м шаге определяется функцией
Si+1 = φ(Si, ui).
si ÎS (i = 0,1,…, N) ui ÎU (i = 0,1,…, N-1).
Математическая запись принципа оптимальности Беллмана. Пусть s0 и sN – начальное и конечное состояния N-шагового процесса.
Обозначим через fN(s0) – экстремальное значение целевой функции, полученное за N шагов при оптимальной стратегии u* управления процессом, который начинался в состоянии s0.
Допустим, на первом шаге было принято решение u0, под воздействием которого процесс перешёл из состояния s0 в состояние s1 (s0 →s1). Полученный при этом эффект характеризуется величиной r0(s0, u0).
Предположим, что после первого шага для управления процессом применялась оптимальная стратегия, которая обеспечивала на оставшихся N-1 шагах экстремальное значение fN-1(s1).
Значит, оптимальное значение эффекта на всех N шагах будет выражаться:
Обозначим через fN-i(si) – экстремум целевой функции, полученной на последних N-i шагах, если сначала процесс находился в состоянии si, тогда
Полученное выражение есть математическая запись принципа оптимальности Беллмана. Это уравнение называется основным функциональным уравнением динамического программирования.