На этом шаге мы рассмотрим вероятностное динамическое программирования.
Выделяют два вида динамического программирования: детерминированное и вероятностное. [1, c 562].
Вероятностное динамическое программирование отличается от детерминированного динамического программирования тем, что состояния и прибыли на каждом этапе являются случайными. Модели вероятностного динамического программирования возникают, в частности, при рассмотрении стохастических моделей управления запасами и в теории марковских процессов принятия решений.
Чтобы лучше понять отличие вероятностного динамического программирования от детерминированного динамического программирования рассмотрим алгоритм решения задачи "Азартная игра". Она является ярким примером решения задачи с помощью вероятностного динамического программирования.
Сформулируем задачу в виде модели динамического программирования, используя следующие определения.
Пусть fi( j ) — максимум ожидаемой прибыли при условии, что игра находится на этапе (вращении) i и исходом последнего вращения есть число j. Ожидаемая прибыль на этапе i при условии, что исходом последнего вращения есть j, равна:
Рекуррентное уравнение для fi( j ) можно записать следующим образом:
Обоснование рекуррентного уравнения сводится к следующему:
При первом вращении колеса (i = 1) состоянием системы является j = 0, ибо игра только началась. Следовательно, f1( 0 ) = p1f2( 1 ) + p2f2( 2 ) + ... +pnf2( n ). После выполнения последнего вращения колеса (i = m) имеется лишь один выбор - закончить игру независимо от исхода j m-го вращения. Следовательно, fm+1( j ) = 2j.
Рекуррентные вычисления начинаются с fm+1, заканчиваются при f1( 0 ) и сводятся, таким образом, к m+1 вычислительному этапу. Так как f1( 0 ) представляет собой ожидаемую прибыль от всех m вращений колеса, а игра обходится игроку в x долларов, имеем следующее: ожидаемая прибыль равна f1( 0 ) - x.
Таким образом, алгоритм решения этой задачи составлен. Надеюсь, вы поняли что такое
вероятностное динамическое программирование. В дальнейшем мы будем рассматривать только
детерминированное динамическое программирование.
На следующем шаге мы выясним когда же все-таки применяется динамическое программирование.