Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Динамическое программирование в решении экономических задач.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.15 Mб
Скачать

Примеры решения задач динамического программирования

Рассмотрим применение метода динамического программирования на конкретных задачах.

  1. Выбор оптимального маршрута

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

Пусть известна схема возможных маршрутов движения от пункта А до пункта Б (рис.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 – Б):

.

  1. Задача о распределении средств между предприятиями

Рассмотрим схему решения задач динамического программирования с использованием уравнений Беллмана на примере задачи о распределении средств между предприятиями.

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

Планируется деятельность трех предприятий на очередной год. Начальные средства 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 при :  усл. ед.,  усл. ед.

Достоинством метода является возможность изменения числа шагов (предприятий), проведение анализа решения на чувствительность к изменению , безразличие метода к способу задания функций .