- •Лабораторная работа №5
- •Вероятностей
- •Краткие теоретические сведения
- •1.1 Общая схема решения задач динамического программирования.
- •1.2. Азартная игра
- •1.2.1. Постановка задачи
- •1.2.2. Формализация задачи
- •1.2.3. Метод решения задачи
- •1.2.4. Пример
- •1.3. Вероятностная задача инвестирования
- •1.4. Максимизация вероятности достижения цели
- •1.5. Классическая задача экономичного размера заказа
- •1.6. Задача экономичного размера заказа с разрывами цен
- •1.7. Многопродуктовая статическая модель с ограниченной вместимостью склада
- •1.8. Модель с затратами на оформление заказа
Краткие теоретические сведения
1.1 Общая схема решения задач динамического программирования.
Для решения задач динамического программирования необходимо провести ее формализацию, а именно:
1. Определить этапы.
2. Определить на каждом этапе вариантов решения (альтернатив).
3. Определить состояния на каждом этапе.
Из перечисленных выше элементов понятие состояния, как правило, представляется весьма сложным для восприятия. Рассмотренные в этом разделе приложения последовательно показывают, что определение состояния меняется в зависимости от моделируемой ситуации. При рассмотрении каждого приложения полезно ответить на следующие вопросы.
1. Какие соотношения связывают этапы вместе?
2. Какая информация необходима для того, чтобы получить допустимые решения на текущем этапе без повторной проверки решений, принятых на предыдущих этапах?
Далее после формализации применяется какой-нибудь метод решения, например метод обратной прогонки. Далее рассмотрим некоторые виды задач, примеры их формализации и решения.
1.2. Азартная игра
1.2.1. Постановка задачи
Одна из разновидностей игры в русскую рулетку состоит во вращении колеса, на котором по его периметру нанесены п последовательных чисел от 1 до п. Вероятность того, что колесо в результате одного вращения остановится на цифре i, равна р,. Игрок платит х долларов за возможность осуществить т вращений колеса. Сам же игрок получает сумму, равную удвоенному числу, которое выпало при последнем вращении колеса. Поскольку игра повторяется достаточно много раз (каждая до т вращений колеса), требуется разработать оптимальную стратегию для игрока.
1.2.2. Формализация задачи
Формализация задачи для динамического программирования сводится к определению этапов, состояний и вариантов решения на каждом этапе. Для данной задачи формализация будет следующей:
Альтернативы |
вращать/забрать деньги |
забрать/вращать |
Состояние |
последнее выпавшее число |
j |
Этап |
соответствует i-му вращению колеса |
i |
Пусть fi(j) — максимум ожидаемой прибыли при условии, что игра находится на этапе (вращении) i и исходом последнего вращения есть число j. Имеем следующее:
Рекуррентное уравнение для fi(j) можно записать следующим образом.
Обоснование рекуррентного уравнения
сводится к следующему. При первом
вращении колеса
состоянием
системы является
,
ибо игра только началась. Следовательно,
После
выполнения последнего вращения колеса
имеется
лишь один выбор — закончить игру
независимо от исхода j
т-го вращения. Следовательно,
Рекуррентные вычисления начинаются
,
заканчиваются при
и
сводятся таким образом к m+1
вычислительному этапу. Так как f1(0)
представляет собой ожидаемую прибыль
от всех m вращений
колеса, а игра обходится игроку в х
долларов, имеем следующее.
Ожидаемая прибыль = f1(0) – х.
1.2.3. Метод решения задачи
На каждом этапе составляются матрицы вида:
j |
альт-ва 1 |
… |
альт-ва N |
fi(j) |
Решение |
1 |
|
|
|
|
|
… |
|
|
|
|
|
… |
|
|
|
|
|
n |
|
|
|
|
|
В столбце j содержатся состояния. В столбцах альтернатив содержатся возможные выигрыши при выборе данной альтернативы и данном текущем состоянии. В fi(j) максимальный выигрыш. В стоблце Решение название альтернативы, которая дает максимальный результат.
В самом начале выбирается этап для которого нам известно, что будет выбрана одна единственная альтернатива. И далее используя рекурентные соотношения, производится итеративное построение матриц до тех пор пока не будет получена матрица соответствующая последнему рассматриваемому этапу. Ход работы данного метода целесообразно рассмотреть на примере.
