- •Динамическое программирование в решении экономических задач
- •Введение
- •Общая постановка задачи динамического программирования
- •Основные предположения
- •Принцип оптимальности и уравнения Беллмана
- •Общий алгоритм решения задачи
- •Примеры решения задач динамического программирования
- •Выбор оптимального маршрута
- •Задача о распределении средств между предприятиями
- •Двумерная задача о распределении средств между предприятиями на несколько лет
- •Задача о замене и ремонте оборудования
- •Задача о двух технологических линиях
- •Построение оптимальной последовательности операций
- •Другие примеры задач
- •Задача о рациональной эксплуатации гидростанций и тепловых станций (тэц, гэс) и выборе экономичного состава агрегатов.
- •Задача о наилучшей загрузке транспорта
- •Задача о контроле качества продукции на конвейере
- •Задачи для самостоятельного решения.
- •Список литературы
Примеры решения задач динамического программирования
Рассмотрим применение метода динамического программирования на конкретных задачах.
Выбор оптимального маршрута
Постановка задачи.
Пусть известна схема возможных маршрутов движения от пункта А до пункта Б (рис.4). Схема представляет собой ориентированный граф, вершины которого соответствуют промежуточным пунктам, ребра – возможным вариантам перемещения между соседними пунктами.
Весь
маршрут от пункта А до пункта Б можно
разбить на n
шагов. В данной схеме n=4.Состояния
системы определяются следующим образом:
,
промежуточные состояния определяются
номерами промежуточных пунктов
.
Показателем
эффективности
каждого шага в зависимости от целей
исследования может служить расстояние
между двумя смежными пунктами i
иj,
стоимость проезда, затраты времени,
топлива или иных ресурсов. Для
определенности в данном примере в
качестве показателя эффективности
рассмотрим стоимость проезда
между двумя смежными пунктами i
и j.
Управление
в данной задаче – это выбор возможного
перемещения на шаге k
из пункта i
в пункт j.
Целевая функция
определяет суммарную стоимость проезда
от пункта А до пункта Б. Необходимо из
всех возможных маршрутов выбрать
оптимальный, чтобы общая стоимость
проезда была минимальной.
Применительно к данной задаче уравнения Беллмана (10) соответствуют вычислению минимальной стоимости последующего пути из пункта i до пункта Б, начиная с шага k:
(13)
где
– минимальная стоимость проезда от
пункта j
до конечного
пункта Б.
Решение задачи.
Начинаем поиск оптимального маршрута с последнего шага (рис.5), локально-оптимальные решения каждого шага выделим жирной линией:
k=4
Переходим к предыдущему шагу, определяем оптимальные решения на двух последних шагах (рис.6):
Шаг k=3.
Переходим к предыдущему шагу, определяем оптимальные решения на трех последних шагах (рис.7):
Шаг k=2.
Для первого шага получаем (рис.8):
Шаг k=1.
Минимальная
суммарная стоимость проездаот пункта
А до пункта Б равна
.
В процессе решения получены две
последовательности оптимальных решений
и соответствующих состояний (пунктов),
так как при k=2
существует 2 оптимальных дальнейших
маршрута. На рис.8 оптимальные решения
выделены непрерывными ломаными линиями
от пункта А до пункта Б.
Первое оптимальное решение (маршрут А – 2 – 4 – 6 – Б):
.
Второе оптимальное решение (маршрут А – 2 – 5 – 7 – Б):
.
Задача о распределении средств между предприятиями
Рассмотрим схему решения задач динамического программирования с использованием уравнений Беллмана на примере задачи о распределении средств между предприятиями.
Постановка задачи.
Планируется
деятельность трех предприятий на
очередной год. Начальные средства s0,
которые следует распределить, составляют
5 усл. ед.
Размеры вложения в каждое предприятие
кратны 1 усл. ед. Средства x,
выделенные предприятию k,
приносят в конце года прибыль
Функции
заданы таблично (табл. 1). При решении
подобных задач принято считать, что
выполняются следующие предположения:
– прибыль
предприятия k
не зависит от вложения средств в другие
предприятия;
– прибыль выражается в одних условных единицах;
– общая прибыль равна сумме прибылей, полученных от каждого предприятия.
Требуется определить, какое количество средств нужно выделить каждому предприятию, чтобы общая прибыль была наибольшей.
Таблица 1
Эффективность использования средств
x |
f1(x) |
f2(x) |
f3(x) |
1 |
8 |
6 |
4 |
2 |
10 |
9 |
8 |
3 |
12 |
12 |
12 |
4 |
14 |
15 |
16 |
5 |
16 |
18 |
20 |
Построим математическую модель задачи. Обозначим через xk количество средств, выделенных предприятию k. Общая прибыль равна сумме прибылей предприятий:
(14)
Переменные xk удовлетворяют следующим ограничениям:
(15)
Требуется найти переменные x1, x2, x3, удовлетворяющие системе ограничений (15), при которых функция (14) достигает максимума.
Особенность модели состоит в том, что хотя ограничения линейные и переменные целочисленные, методы целочисленного линейного программирования применять нельзя, так как функции fk(x) заданы таблично.
Процесс
распределения средств
можно рассматривать как трехшаговый,
номер шага совпадает с номером предприятия.
Выбор переменных x1,
x2,
x3
– это выбор управления
соответственно на 1, 2 и 3 шаге. Конечное
состояние процесса распределения
,
когда все средства вложены в производство.
Графически схема распределения показана на рис. 9.
Уравнения состояний имеют вид:
(16)
где sk – параметр состояния, количество средств, оставшихся после k-го шага, т. е. эти средства остается распределить между (3 – k) оставшимися предприятиями.
Рассмотрим
функцию
– условную оптимальную прибыль,
полученную от предприятий k,
(k
+ 1), …, 3, если
между ними оптимальным образом
распределялись средства
.
Допустимые управления на шаге k
удовлетворяют условию:
.
Уравнения, связывающие оптимальную прибыль на каждом шаге, имеют вид:
(17)
Последовательно решаем уравнения, проводя условную оптимизацию каждого шага.
Решение задачи.
Шаг
k=3.
В табл. 1 прибыль
монотонно возрастает, поэтому все
средства, оставшиеся к третьему шагу,
следует вложить в предприятие 3 (рис.10).
При
этом для возможных значений
получим:
(18)
Шаг
k=2.
Делаем все
предположения относительно остатка
средств
ко второму шагу, т. е. после выбора
значения
величина
может принимать значения 0, 1, 2, 3, 4, 5. В
зависимости от этого выбираем
,
находим
и сравниваем для разных
при фиксированном
значения суммы
.
Для
каждого
наибольшее из этих значений
– это условная оптимальная прибыль,
получаемая при оптимальном распределении
средств между 2-м и 3-м предприятиями
(рис.11).
Вычисления
записаны в таблице 2. Для каждого значения
оптимальные значения
и
записаны
в графах 5 и 6.
Таблица 2
Оптимизация распределения средств при k=2
s1 |
x2 |
s2 |
|
|
|
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0+4=4 |
|
|
1 |
0 |
6+0=6 |
6 |
1 |
|
2 |
0 |
2 |
0+8=8 |
|
|
1 |
1 |
6+4=10 |
10 |
1 |
|
2 |
0 |
9+0=9 |
|
|
|
3 |
0 |
3 |
0+12=12 |
|
|
1 |
2 |
6+8=14 |
14 |
1 |
|
2 |
1 |
9+4=13 |
|
|
|
3 |
0 |
12+0=12 |
|
|
|
4 |
0 |
4 |
0+16=16 |
|
|
1 |
3 |
6+12=18 |
18 |
1 |
|
2 |
2 |
9+8=17 |
|
|
|
3 |
1 |
12+4=16 |
|
|
|
4 |
0 |
15+0=15 |
|
|
|
5 |
0 |
5 |
0+20=20 |
|
|
1 |
4 |
6+16=22 |
22 |
1 |
|
2 |
3 |
9+12=21 |
|
|
|
3 |
2 |
12+8=20 |
|
|
|
4 |
1 |
15+4=19 |
|
|
|
5 |
0 |
18+0=18 |
|
|
Шаг k=1. Графическое представление шага представлено на рисунке 12. Условная оптимизация проведена в таблице 3.
Например,
если
,
то
.
Прибыль, полученная от трех предприятий
при условии, что 5 единиц средств будут
распределены оптимально между оставшимися
двумя предприятиями, равна
.
Значение
взято из столбца 5 табл. 2 при
.
Если
,
то
.
Суммарная прибыль при условии оптимального
распределения средств равна
.
Значение
взято из исходных данных (табл. 1),
значение
– из столбца 5 табл. 2 при
.
Аналогично вычислены остальные значения
столбца 4 табл. 3.
Таблица 3
Оптимизация распределения средств при k=1
s0 |
x1 |
s1 |
|
|
|
5 |
0 |
5 |
0+22=22 |
|
|
1 |
4 |
8+18=26 |
26 |
1 |
|
2 |
3 |
10+14=24 |
|
|
|
3 |
2 |
12+10=22 |
|
|
|
4 |
1 |
14+6=20 |
|
|
|
5 |
0 |
16+0=16 |
|
|
Оптимальное
решение рассматриваемой задачи при
выделено в таблице 3 жирным шрифтом.
Максимум суммарной прибыли
получаем
при условии, что первому предприятию
выделяется
усл. ед.
и между 2 и 3 предприятиями распределяются
4 усл. ед. средств. Далее оптимальный
вариант распределения находим из табл.
2 при
:
усл. ед.,
усл. ед.
Достоинством метода является возможность изменения числа шагов (предприятий), проведение анализа решения на чувствительность к изменению , безразличие метода к способу задания функций .
