Академический Документы
Профессиональный Документы
Культура Документы
Лежнёв А В Динамическое программирование в экономических задачах
Лежнёв А В Динамическое программирование в экономических задачах
Лежнёв
Динамическое
программирование
в экономических
задачах
4-е издание, электронное
Рекомендовано
Учебно-методическим
объединением по образованию
в области прикладной информатики
в качестве учебного пособия для студентов
высших учебных заведений
Москва
Лаборатория знаний
2020
УДК 519.8+330
ББК 22.19: 65.053
Л40
Лежнёв А. В.
Л40 Динамическое программирование в экономических зада-
чах : учебное пособие / А. В. Лежнёв. — 4-е изд., электрон. —
М. : Лаборатория знаний, 2020. — 179 с. — Систем. требования:
Adobe Reader XI ; экран 10".— Загл. с титул. экрана. — Текст :
электронный.
ISBN 978-5-00101-682-3
Изложен принцип оптимальности и базирующийся на нем метод
динамического программирования решения задач управления мно-
гошаговыми процессами, разобран ряд примеров решения типовых
задач экономического содержания, рассмотрены обобщения класси-
ческого принципа оптимальности и метода динамического програм-
мирования на случай задач из теории графов. Контрольные вопросы
и задачи позволят закрепить полученные знания теоретического
материала и обрести навык самостоятельного решения задач, дадут
возможность использовать пособие для работы на практических
занятиях.
Для студентов экономических специальностей вузов, а также для
студентов технических специальностей, изучающих соответствую-
щий раздел математического программирования.
УДК 519.8+330
ББК 22.19: 65.053
Условные обозначения
В гл. 1 и 2 настоящего учебного пособия используются следующие
основные обозначения:
N — число шагов в многошаговом процессе, N 1;
i — номер шага процесса, i = 1, 2, . . . , N , или индекс переменной
или функции, указывающий их отношение к номеру шага
процесса;
x, xi — фазовая переменная, или переменная состояния;
10 Введение
ЗАДАЧИ УПРАВЛЕНИЯ
МНОГОШАГОВЫМИ ПРОЦЕССАМИ
И МЕТОД ДИНАМИЧЕСКОГО
ПРОГРАММИРОВАНИЯ
x1 = f (x0 , u),
z = z(x0 , u).
x0 xN
x1
xN −1
u1 u2 uN −1 uN
Рис. 1.1
так что
max{a(t) + b(t)} = 1 = 2 = max{a(t)} + max{b(t)}.
t t t
шаге:
Z ∗ = B0 (x0 ) = max z1 (x0 , u1 ) + B1 (x1 ) |x1 = f1 (x0 , u1 ) .
u1
Предварительный • → • → • → ... → • → •
⇓
Условной оптимизации • ← • ← • ← ... ← • ← •
⇓
Безусловной оптимизации • → • → • → ... → • → •
Вспомогательная таблица
xi−1 ... } ⇓ i = 1, 2, . . . , N,
Bi−1 (xi−1 ) ... } ⇑ i = N, N − 1, . . . , 2, 1,
Основная таблица
➲ Контрольные вопросы
1. Поясните роль и значение математических методов в решении
практических задач управления.
2. Дайте понятие многошагового процесса.
3. Для решения какого класса задач применяется метод ДП?
4. Что такое фазовая переменная и в чем состоят ее роль и пред-
назначение?
5. Что такое управляющая переменная и каковы ее роль и пред-
назначение?
6. Что такое функция процесса и в чем заключаются ее предна-
значение и экономическое содержание?
7. Что такое целевая функция и в чем состоят ее предназначение
и экономическое содержание?
8. Сформулируйте понятие допустимого управления и поясните,
в чем состоит его смысл.
9. Сформулируйте понятие оптимального управления и поясните,
в чем состоит его смысл.
10. Дайте понятие траектории и оптимальной траектории.
11. Дайте понятие оптимального значения задачи.
12. Сформулируйте и поясните основные допущения метода ДП.
13. По какой причине оптимизация по нескольким шагам процесса
не сводится к независимой оптимизации по отдельным шагам?
Контрольные вопросы 33
x0 0
B0 (x0 )
x0 u1 x1 z1 B1 (x1 ) z 1 + B1 B0 (x0 )
0 0 0 0
1 1 2
2 2 4
3 3 6
4 4 8
5 5 10
i = 2.
На втором шаге в первую строку вспомогательной таблицы внесем
все значения переменной x1 , рассчитанные на предшествующем шаге
и фигурирующие в третьем столбце предыдущей основной таблицы.
Получаем следующую вспомогательную таблицу:
x1 0 1 2 3 4 5
B1 (x1 )
x1 u2 x2 z2 B2 (x2 ) z 2 + B2 B1 (x1 )
0 0 0 0
1 1 1
2 2 2
3 3 6
4 4 10
5 5 12
x1 u2 x2 z2 B2 (x2 ) z 2 + B2 B1 (x1 )
0 0 0 0
1 1 1
2 2 2
3 3 6
4 4 10
x1 u2 x2 z2 B2 (x2 ) z 2 + B2 B1 (x1 )
0 0 0 0
1 1 1
2 2 2
3 3 6
4 4 10
5 5 12
1 0 1 0
1 2 1
2 3 2
3 4 6
4 5 10
2 0 2 0
1 3 1
2 4 2
3 5 6
3 0 3 0
1 4 1
2 5 2
4 0 4 0
1 5 1
5 0 5 0
i = 3.
На третьем шаге в первую строку вспомогательной таблицы внесем
все значения переменной x2 , рассчитанные на предшествующем шаге
и фигурирующие в третьем столбце предыдущей основной таблицы.
Эти значения многократно повторяются, но вносим их только по од-
ному разу (за счет этого, в частности, сокращается объем вычислений).
Получаем следующую вспомогательную таблицу:
x2 0 1 2 3 4 5
B2 (x2 )
x2 u3 x3 z3 B3 (x3 ) z 3 + B3 B2 (x2 )
0 5 5 10
1 4 5 9
2 3 5 8
3 2 5 6
4 1 5 3
5 0 5 0
x2 u3 x3 z3 B3 (x3 ) z 3 + B3 B2 (x2 )
0 5 5 10 0 10 10
1 4 5 9 0 9 9
2 3 5 8 0 8 8
3 2 5 6 0 6 6
4 1 5 3 0 3 3
5 0 5 0 0 0 0
x2 0 1 2 3 4 5
B2 (x2 ) 10 9 8 6 3 0
x1 u2 x2 z2 B2 (x2 ) z 2 + B2 B1 (x1 )
0 0 0 0 10 10 13
1 1 1 9 10
2 2 2 8 10
3 3 6 6 12
4 4 10 3 13
5 5 12 0 12
x1 u2 x2 z2 B2 (x2 ) z 2 + B2 B1 (x1 )
1 0 1 0 9 9 10
1 2 1 8 9
2 3 2 6 8
3 4 6 3 9
4 5 10 0 10
x1 u2 x2 z2 B2 (x2 ) z 2 + B2 B1 (x1 )
0 0 0 0 10 10 13
1 1 1 9 10
2 2 2 8 10
3 3 6 6 12
4 4 10 3 13
5 5 12 0 12
1 0 1 0 9 9 10
1 2 1 8 9
2 3 2 6 8
3 4 6 3 9
4 5 10 0 10
2 0 2 0 8 8 8
1 3 1 6 7
2 4 2 3 5
3 5 6 0 6
3 0 3 0 6 6 6
1 4 1 3 4
2 5 2 0 2
4 0 4 0 3 3 3
1 5 1 0 1
5 0 5 0 0 0 0
x1 0 1 2 3 4 5
B1 (x1 ) 13 10 8 6 3 0
44 Глава 2. Примеры решения типовых задач
x1 0 1 2 3 4 5
ũ2 (x1 ) 4 4 0 0 0 0
x0 u1 x1 z1 B1 (x1 ) z 1 + B1 B0 (x0 )
0 0 0 0 13 13 13
1 1 2 10 12
2 2 4 8 12
3 3 6 6 12
4 4 8 3 11
5 5 10 0 10
x0 0
B0 (x0 ) 13
Номер варианта u1 u2 u3 z1 z2 z3 Z
1 0 0 5 0 0 10 10
2 1 4 0 1 9 10
3 2 3 0 2 8 10
4 3 2 0 6 6 12
5 4 1 0 10 3 13
6 5 0 0 12 0 12
7 1 0 4 2 0 9 11
8 1 3 2 1 8 11
9 2 2 2 2 6 10
10 3 1 2 6 3 11
11 4 0 2 10 0 12
12 2 0 3 4 0 8 12
13 1 2 4 1 6 11
14 2 1 4 2 3 9
15 3 0 4 6 0 10
16 3 0 2 6 0 6 12
17 1 1 6 1 3 10
18 2 0 6 2 0 8
19 4 0 1 8 0 3 11
20 1 0 8 1 0 9
21 5 0 0 10 0 0 10
2.1. Задача о распределении инвестиций 47
x0 3 4 5
B0 (x0 ) 8 10 13
x0 u1 x1 z1 B1 (x1 ) z 1 + B1 B0 (x0 )
3 0 3 0 8 8 8
1 2 2 6 8
2 1 4 3 7
3 0 6 0 6
4 0 4 0 10 10 10
1 3 2 8 10
2 2 4 6 10
3 1 6 3 9
4 0 8 0 8
5 0 5 0 13 13 13
1 4 2 10 12
2 3 4 8 12
3 2 6 6 12
4 1 8 3 11
5 0 10 0 10
x1 0 1 2 3 4 5
B1 (x1 ) 0 3 6 8 10 13
x1 u2 x2 z2 B2 (x2 ) z 2 + B2 B1 (x1 )
0 0 0 0 0 0 0
1 0 1 0 3 3 3
1 0 1 0 1
2 0 2 0 6 6 6
1 1 1 3 4
2 0 2 0 2
3 0 3 0 8 8 8
1 2 1 6 7
2 1 2 3 5
3 0 6 0 6
4 0 4 0 9 9 10
1 3 1 8 9
2 2 2 6 8
3 1 6 3 9
4 0 10 0 10
5 0 5 0 10 10 13
1 4 1 9 10
2 3 2 8 10
3 2 6 6 12
4 1 10 3 13
5 0 12 0 12
x2 0 1 2 3 4 5
B2 (x2 ) 0 3 6 8 9 10
x2 u3 x3 z3 B3 (x3 ) z 3 + B3 B2 (x2 )
0 0 0 0 0 0 0
1 1 0 3 0 3 3
2 2 0 6 0 6 6
3 3 0 8 0 8 8
4 4 0 9 0 9 9
5 5 0 10 0 10 10
T1 T2 T3
m 11 17 23
p 20 36 48
T1 T2
m 2 3
p 5 9
2.3. Задача о загрузке транспортного средства 59
x0 u1 x1 z1 B1 (x1 ) z 1 + B1 B0 (x0 )
0 0 0 0 96 96 96
1 11 20 72 92
2 22 40 48 88
3 33 60 36 96
4 44 80 0 80
x1 0 11 22 33 44
B1 (x1 ) 96 72 48 36 0
x1 u2 x2 z2 B2 (x2 ) z2 + B2 B1 (x1 )
0 0 0 0 96 96 96
1 17 36 48 84
2 34 72 0 72
62 Глава 2. Примеры решения типовых задач
x1 u2 x2 z2 B2 (x2 ) z2 + B2 B1 (x1 )
11 0 11 0 48 48 72
1 28 36 0 36
2 45 72 0 72
22 0 22 0 48 48 48
1 39 36 0 36
33 0 33 0 0 0 36
1 50 36 0 36
44 0 44 0 0 0 0
x2 0 11 17 22 28 33 34 39 44 45 50
B2 (x2 ) 96 48 48 48 0 0 0 0 0 0 0
x2 u3 x3 z3 B3 (x3 ) z3 + B3 B2 (x2 )
0 0 0 0 0 0 96
1 23 48 0 48
2 46 96 0 96
11 0 11 0 0 0 48
1 34 48 0 48
17 0 17 0 0 0 48
1 40 48 0 48
22 0 22 0 0 0 48
1 45 48 0 48
28 0 28 0 0 0 0
33 0 33 0 0 0 0
34 0 34 0 0 0 0
39 0 39 0 0 0 0
44 0 44 0 0 0 0
45 0 45 0 0 0 0
50 0 50 0 0 0 0
2.3. Задача о загрузке транспортного средства 63
i = 3.
Из третьей основной таблицы выбираем тот строчный фрагмент,
который соответствует найденному на предшествующем шаге x∗2 = 0.
В этом фрагменте условно-оптимальным является единственное управ-
ление u3 = 2, отмеченное знаком «»; полагаем u∗3 = 2, и в той же
строке таблицы находим x∗3 = 46.
На этом построение первого оптимального решения задачи, имею-
щего вид (0, 0, 2), завершено. Проведем построение второго оптималь-
ного решения, соответствующего u∗1 = 3, проходя все основные таблицы
еще раз.
i = 1: x∗0 = 0, u∗1 = 3, x∗1 = 33.
i = 2: x∗1 = 33, u∗2 = 1, x∗2 = 50.
i = 3: x∗2 = 50, u∗3 = 0, x∗3 = 50.
x2 u3 x3 z3 B3 (x3 ) z 3 + B3 B2 (x2 )
0 2 46 96 0 96 96
11 1 34 48 0 48 48
17 1 40 48 0 48 48
22 1 45 48 0 48 48
выполняются неравенства
p1 m
u1 < k2 1 u1 .
p2 m2
Тогда вектор (0, u2 + k2 , . . .) в силу неравенств
m1
m1 · 0 + m2 (u2 + k2 ) + m′ m2 u2 + m2 u1 + m′ M
m2
является допустимым решением и с учетом соотношений
p1
p1 · 0 + p2 (u2 + k2 ) + p′ > p2 u2 + p2 u1 + p′ = p2 u2 + p1 u1 + p′
p2
дает большее значение стоимости, чем исходный вектор (u1 , u2 , . . .).
Иными словами, мы показали, что погрузка слишком большого коли-
чества предметов типа T1 малой ценности не является целесообразной,
что полностью соответствует интуитивным представлениям и конкре-
тизирует их. Для рассматриваемой задачи
−1
p1 p2 m1 p1
= 1, 82, = 2, 12, − = 10, 93
m1 m2 m2 p2
(здесь получаемые значения округлены до второго знака после за-
пятой). Это означает, что погружать 11 и более предметов типа T1
невыгодно: погрузка надлежащего числа предметов типа T2 в этом
случае даст большее значение стоимости. Например, 12 предметов
типа T1 имеют массу 132 и стоимость 240; в то же время предметы
типа T2 в количестве
m1
· 12 = 7
m2
имеют массу 119 < 132 и стоимость 252 > 240. Конечно, грузоподъем-
ность M = 50 вообще не позволит погрузить 12 предметов типа T1 , но
если принять, например, M = 250, то таких предметов можно будет
погрузить
250
= 22,
11
и учет условия избыточности позволит сократить число рассматри-
ваемых вариантов погрузки предметов этого типа примерно вдвое.
Заметим, что условие избыточности малоценных предметов типа T1
можно обобщить и записать в виде
−1
m1 p1
u1 min − ,
i>1 mi pi
а также сформулировать аналогичные условия для предметов других
типов. Отметим, однако, что проведенные рассмотрения устанавливают
70 Глава 2. Примеры решения типовых задач
Квартал M
1 12
2 12
3 11
4 10
Наработка P Q S
0 350 15 —
1 350 16 8
2 330 18 6
3 300 21 3
4 — — 1
1, ui = З;
xi =
xi−1 + 1, ui = С.
x0 2
B0 (x0 ) 67
x0 u1 x1 z1 B1 (x1 ) z 1 + B1 B0 (x0 )
2 З 1 14 53 67 67
С 3 15 47 62
x1 1 3
B1 (x1 ) 53 47
x1 u2 x2 z2 B2 (x2 ) z 2 + B2 B1 (x1 )
1 З 1 16 36 52 53
С 2 19 34 53
3 З 1 11 36 47 47
С 4 9 29 38
i = 3.
Заносим в первую строку вспомогательной таблицы все полученные
на предшествующем этапе значения переменной x2 :
x2 1 2 4
B2 (x2 ) 36 34 29
2.4. Задача о замене оборудования 75
x2 u3 x3 z3 B3 (x3 ) z 3 + B3 B2 (x2 )
1 З 1 17 19 36 36
С 2 19 16 35
2 З 1 15 19 34 34
С 3 15 13 28
4 З 1 10 19 29 29
i = 4.
Вспомогательная таблица на данном шаге имеет вид
x3 1 2 3
B3 (x3 ) 19 16 13
x3 u4 x4 z4 B4 (x4 ) z 4 + B4 B3 (x3 )
1 З 1 18 0 18 19
С 2 19 0 19
2 З 1 16 0 16 16
С 3 15 0 15
3 З 1 13 0 13 13
С 4 9 0 9
i ui xi zi
1 З 1 14
2 З 1 16
3 З 1 17
4 З 1 18
При этом
Z = 14 + 16 + 17 + 18 = 65.
Во втором случае получаются значения:
2.5. Задача о распределении ресурсов 77
i ui xi zi
1 С 3 15
2 С 4 9
3 З 1 10
4 С 2 19
При этом
Z = 15 + 9 + 10 + 19 = 53.
Таким образом, рассмотренные простейшие стратегии могут обеспечить
лишь около 97 % и 79 % соответственно от максимального экономи-
ческого эффекта Z ∗ = 67. Первая стратегия дает весьма высокий
результат, однако излишне частое обновление оборудования связано
с известными организационными неудобствами и издержками. Вторая
же стратегия имеет слишком низкую эффективность, что еще раз под-
тверждает высокую важность и актуальность оптимизационных задач.
Замечание 3. Отметим, что отказ от проведения предваритель-
ного этапа приведет к необходимости выполнения излишней вычис-
лительной работы — расчетам функций Беллмана для нереализуемых
значений x1 = 2, 4, x2 = 3 и x3 = 4.
i = 2.
В начале данного шага общий объем ресурсов производственного
объединения равен некоторому пока неизвестному значению x1 0.
Запишем основное функциональное уравнение Беллмана для этого
последнего шага:
B1 (x1 ) = max z2 (x1 , u2 ) + B2 (x2 ) | x2 = f2 (x1 , u2 ) ,
u2
Объем инвестиций
№ вари- 0 1 2 3 4 5 6
анта Ожидаемая прибыль предприятий, П1 / П2 / П3
1 −3/3/−4 16/14/6 21/26/23 32/31/34 47/48/49 52/53/57 64/62/65
2 −1/2/2 9/12/7 24/27/18 35/30/33 46/43/45 60/58/59 63/61/69
3 1/−1/5 11/8/13 27/25/28 31/39/36 44/47/41 53/56/55 67/74/76
4 −2/1/3 18/6/10 26/24/22 29/38/35 43/46/45 54/52/56 73/76/68
5 −3/−5/−6 13/7/8 31/29/28 34/42/37 55/58/54 70/60/71 75/81/84
6 0/−1/6 9/18/19 27/26/31 40/36/43 57/49/56 65/68/66 79/75/83
7 1/1/4 18/8/11 32/23/25 44/35/48 63/62/52 76/73/75 77/82/85
8 3/1/1 17/15/12 24/27/30 38/41/43 54/61/56 71/75/74 86/80/81
9 7/4/5 11/14/15 33/28/36 44/45/46 51/59/64 72/81/69 91/89/84
10 0/−4/−1 10/17/13 29/37/35 51/49/47 60/55/61 77/79/74 83/88/93
Т а б л и ц а 2.2
T1 T2 T3
№ варианта M
m r m r m r
1 76 11 19 16 28 25 45
2 77 12 20 17 29 26 46
3 79 12 21 16 30 26 47
4 83 12 22 17 31 27 48
5 84 13 23 18 32 28 49
6 85 13 25 19 33 29 51
7 87 14 25 19 34 30 53
8 89 15 26 20 35 31 55
9 92 15 28 19 36 32 57
10 93 16 29 21 36 33 60
M (i − xi−1 ), xi−1 i − 1;
M=
M0 , xi−1 > i − 1.
Доказать, что неравенство xi > i эквивалентно условию отсутствия
обновления оборудования за период с 1-го по i-й год включительно.
88 Глава 2. Примеры решения типовых задач
a1 a2
0,1 0,3; 0,5; 0,7; 0,9
0,3 0,5; 0,7; 0,9
0,5 0,7; 0,9
0,7 0,9
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
В ТЕОРИИ ГРАФОВ
α
ε ζ
δ
η
β
γ
Рис. 3.1
v3
v1
p
v2
v6
v4
v5
Рис. 3.2
L H
G A
Рис. 3.3
3.2. Перечисление путей на графе 99
Рис. 3.4
3.3. Задача о кратчайшем пути 103
Рис. 3.5
u1
v1 L(v1 )
vкон
L(v2 )
u2
v2
L(v3 )
u3 v3
Рис. 3.6
Рис. 3.7
1—2—5—7—9 1—3—5—8—9
1—2—5—8—9 1—3—6—8—9
1—3—5—7—9 1—4—6—8—9
Рис. 3.10
Рис. 3.11
составляет
16 + 23
= 19,5 усл. ден. ед.
2
При этом отрезок дороги между двумя √ соседними расположенными
по диагонали точками имеет длину 2 √ · 10 км; будем считать его
приближенно равным 14 км (поскольку 2 ≈ 1, 4142). Отметим, что
в новой постановке задачи множество допустимых вариантов строи-
тельства шире, чем в исходной постановке; в силу этого новая ми-
нимальная стоимость дороги должна получиться не выше значения
1220 усл. ден. ед., полученного для исходной задачи.
Задание. Провести решение рассматриваемой задачи в новой по-
становке методом ДП.
Рис. 3.12
1 2 5
Рис. 3.13
122 Глава 3. Динамическое программирование в теории графов
2 2
1 3 1 3
G1 G2
Рис. 3.14
Рис. 3.15
3.7. Задача о кратчайшем пути на ориентированных графах 125
Рис. 3.16
u1 w1
w2
u2
w3
v
u3
w4
V− (v) V+ (v)
Рис. 3.17
1 2
Рис. 3.18
4
8 3
7
A D E
1
2 10
Рис. 3.19
3.9. Задача об управлении самолетом 137
H1
H0
V0 V1
Рис. 3.20
для вершин (1;5) и (3;3) имеется лишь по одной исходящей дуге, за-
ходящей в вершину с уже известным значением функции L(v). По
основной формуле метода ДП для этих вершин
L(1; 5) = 28 + L(2; 5) = 28 + 29 = 57,
L(3; 3) = 46 + L(3; 4) = 46 + 48 = 94.
Для вершины (2;4) имеются две дуги, соответствующие увеличению
скорости и набору высоты и заходящие в вершины с уже известными
значениями функции L(v); соответственно
L(2; 4) = min 27 + L(3; 4); 47 + L(2; 5) = min {27 + 48; 47 + 29} = 75.
Найденный минимум достигается при управлении, отвечающем уве-
личению скорости самолета; данный факт будем отмечать двойной
дугой на орграфе, см. рис. 3.21. Проводя аналогию с классическим
методом ДП, можно сказать, что для вершины (2;4) увеличение ско-
рости представляет собой условно-оптимальное управление, т. е. первый
шаг условно-оптимальной траектории, начинающейся из вершины (2;4),
имеет вид (2; 4) → (3; 4).
Поступая аналогичным образом, мы последовательно вычислим зна-
чения функции L(v) во всех вершинах орграфа; при этом расчеты
ведутся, переходя от указанной выше «диагонали» к следующим ни-
жестоящим. Последней вершиной, в которой будет вычислено значе-
ние функции L(v), является начальная вершина с координатами (0;0).
Для нее
L(0; 0) = min 16 + L(1; 0); 31 + L(0; 1) =
= min {16 + 245; 31 + 229} = 260,
причем минимум достигается при управлении, отвечающем набору
высоты. Как обычно, данный факт отмечаем двойной дугой на ор-
графе. Таким образом, для начальной вершины (0;0) набор высоты
представляет собой условно-оптимальное управление, а первый шаг
оптимальной траектории имеет вид (0; 0) → (0; 1).
Вычисление значения функции L(v) для начальной вершины озна-
чает завершение этапа условной оптимизации решения задачи. Ре-
зультаты расчетов приведены на рис. 3.21 жирным шрифтом на месте
соответствующих вершин. Отметим, что для вершины (0;3) имеется
две двойные дуги, что означает наличие двух различных условно-
оптимальных траекторий из этой вершины в конечную.
Приступаем к этапу безусловной оптимизации. Как видно из расче-
тов, оптимальное значение задачи, т. е. минимальные затраты топлива
на выполнение маневра, составляют 260 усл. ед. Оптимальное управ-
3.9. Задача об управлении самолетом 141
H0
H1
V0 V1
Рис. 3.21
Таким образом,
(m + n)!
P (m, n) = (m + n − 1) .
m! · n!
Сопоставим вычисленные функции в наиболее простом случае, ко-
гда число шагов по обоим направлениям совпадает, т. е. m = n = k.
Тогда
(2k)!
P (k, k) = (2k − 1) 2, P ∗ (k, k) = 2k(k + 1).
(k!)
Отношение P (k, k) (2k − 1)(2k − 1)!
=
P ∗ (k, k) (k + 1)(k!)2
является показателем того, насколько метод ДП более экономичен
в плане вычислений для задач данного типа, чем метод перечисле-
ния путей. Обозначим целую часть рассматриваемого отношения че-
рез R(k). Некоторые значения функции R(k) приведены в следующей
таблице.
k 2 3 5 10 15 20
R(k) 1 4 37 15 956 9 371 683 6 400 017 409
Рис. 3.22
3.10. Построение максимального пути 147
Рис. 3.23
148 Глава 3. Динамическое программирование в теории графов
Рис. 3.24
всех дуг будем считать равными единице (они на графе явно не ука-
заны). В качестве начальной вершины возьмем вершину 2, в качестве
конечной — вершину 6.
Решение задачи зависит от наличия дуги 9 → 6, показанной на ри-
сунке штриховой линией; рассмотрим оба случая. Расчет начинается
с условия M (6) = 0. Изучая структуру орграфа, устанавливаем:
— дугу 1 → 2 можно исключить, поскольку вершина 2 является
начальной, и любой маршрут, содержащий 1 → 2, имеет вид
2 → . . . → 1 → 2 → . . . → 6,
Рис. 3.25
Рис. 3.26
Предшествующее Длительность
Событие Сумма Ранний срок
событие работы
i tр (h) + T (h, i) tр (i)
h T (h, i)
... ... ... ... ...
160 Глава 3. Динамическое программирование в теории графов
Последующее Длительность
Событие Разность Поздний срок
событие работы
i tп (j) − T (i, j) tп (i)
j T (i, j)
... ... ... ... ...
tр (i) tп (i)
r(i)
Рис. 3.27
Поскольку
Tкр − max T (L(j, F )) = tп (j),
L(j,F )
Рис. 3.28
Предшествующее Длительность
Событие Сумма Ранний срок
событие работы
i tр (h) + T (h, i) tр (i)
h T (h, i)
E N 6 0+6 = 6 8
S 1 7+1 = 8
K Q 7 11 + 7 = 18 18
R 2 15 + 2 = 17
W 9 2 + 9 = 11
N — — — 0
Q E 3 8 + 3 = 11 11
W 8 2 + 8 = 10
R E 5 8 + 5 = 13 15
Q 4 11 + 4 = 15
S 3 7 + 3 = 10
S N 7 0+7 = 7 7
W N 2 0+2 = 2 2
Последующее Длительность
Событие Разность Поздний срок
событие работы
i tп (j) − T (i, j) tп (i)
j T (i, j)
E Q 3 11 − 3 = 8 8
R 5 16 − 5 = 11
K — — — 18
N E 6 8−6=2 0
S 7 7−7=0
W 2 3−2=1
Q K 7 18 − 7 = 11 11
R 4 16 − 4 = 12
R K 2 18 − 2 = 16 16
S E 1 8−1=7 7
R 3 16 − 3 = 13
W K 9 18 − 9 = 9 3
Q 8 11 − 8 = 3
➲ Контрольные вопросы
1. Сформулируйте понятие графа и приведите примеры графов.
2. Сформулируйте основные понятия теории графов.
3. Каким образом можно применить метод перечисления путей к ре-
шению вопроса о связности заданного графа?
4. Структура графа задана с помощью матриц смежности и инци-
дентности. Сформулируйте в терминах данных матриц алгоритм
перечисления путей.
5. В чем заключается сходство и в чем состоит различие между
методом ДП решения задачи о кратчайшем пути на неориенти-
рованных графах и классическим методом ДП? Что является
аналогом функций Беллмана?
6. В каком случае задача о кратчайшем пути на неориентированном
графе не имеет решения?
7. Какие объекты в задаче о кратчайшем пути является аналогами
фазовой и управляющей переменных, целевой функции, траек-
тории системы, оптимальной траектории, оптимального значе-
ния задачи, допустимого и оптимального управлений для задачи
управления многошаговыми процессами?
8. Поясните, как проводится расчет оценок длины пути при решении
задачи о кратчайшем пути методом ДП?
9. Поясните, какие свойства задачи о кратчайшем пути на гра-
фах являются аналогами основных допущений классического
метода ДП.
10. С какой целью расставляются метки на ребрах графа в ходе
расчетов по методу ДП?
11. Почему метод ДП решения задачи о кратчайшем пути на неори-
ентированных графах не применим в случае отрицательных весов
ребер?
12. Дайте детальное описание алгоритма Дийкстры решения задачи
о кратчайшем пути.
13. Структура графа задана с помощью матриц смежности и ин-
цидентности. Сформулируйте в терминах данных матриц
1) метод ДП решения задачи о кратчайшем пути;
2) алгоритм Дийкстры решения задачи о кратчайшем пути.
14. Сформулируйте понятие ориентированного графа и приведите
примеры.
168 Глава 3. Динамическое программирование в теории графов
4
6
1 8
7 9
5
3
2 7
5
1 6 4
1
5 9
8 3
4
3 8
9 6
2
Основная литература
1. Беллман Р. Динамическое программирование. — М.: ИЛ, 1960. — 400 с.
2. Вагнер Г. Основы исследования операций, т. 2. — М.: Мир, 1973. — 488 с.
3. Вентцель Е. С. Исследование операций. Задачи, принципы, методология. — М.:
Высш. шк., 2001. — 208 с.
4. Вентцель Е. С. Элементы динамического программирования. — М.: Наука, 1964.
– 175 с.
5. Кузнецов А. В., Сакович В. А., Холод Н. И. и др. Сборник задач и упражнений
по высшей математике. Математическое программирование: Учеб. пособие. —
Минск: Выш. школа, 1995. — 382 с.
6. Кузнецов Ю. Н., Кузубов В. И., Волощенко А. Б. Математическое программи-
рование: Учеб. пособие. — М.: Высш. школа, 1980. — 300 с.
7. Руководство к решению задач по математическому программированию: Учеб.
пособие / А. В. Кузнецов, Н. И. Холод, Л. С. Костевич; Под общ. ред. А. В. Куз-
нецова. — 2-е изд., перераб. и доп. — Мн.: Выш. шк., 2001. — 448 с.
8. Кузнецов Б. Т. Математика: учебник для студентов вузов, обучающихся по
специальностям экономики и управления. — М.: ЮНИТИ-ДАНА, 2004. — 719 с.
Дополнительная литература
9. Арис Р. Дискретное динамическое программирование. Введение в оптимизацию
многошаговых процессов. М.: Мир, 1969. — 171 с.
10. Беллман Р., Дрейфус С. Прикладные задачи динамического программирова-
ния. — М.: Наука, 1965. — 458 с.
11. Бурков В. Н. и др. Сетевые модели и задачи управления. — М.: Сов. радио,
1967. — 144 с.
12. Габасов Р. Ф., Кириллова Ф. М. Основы динамического программирования. —
Мн.: Изд-во БГУ, 1975. — 264 c.
13. Голенко Д. И. Статистические методы сетевого планирования и управления. —
М.: Наука, 1968. — 400 с.
14. Калихман И. Л., Войтенко М. А. Динамическое программирование в примерах
и задачах: Учеб. пособие. — М.: Высш. школа, 1979. — 125 с.
15. Кузнецова В. Я., Резник И. Г., Качалина Л. М. Сетевое планирование и управ-
ление системами работ. — М.: МГРИ, 1984. — 44 с.
16. Мину М. Математическое программирование: Теория и алгоритмы. — М.: Наука,
1990. — 485 с.
17. Наумова Е. А. Методы динамического программирования в задачах управления
производством: Учеб. пособие. — СПб: Изд. центр. Мор. техн. ун-та, 1996. —
56 с.
18. Основные положения по разработке и применению систем сетевого планиро-
вания и управления. — М.: Экономика, 1974. — 216 с.
19. Хедли Дж. Нелинейное и динамическое программирование. М.: Мир, 1967. —
506 с.
Оглавление
Предисловие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Глава 1. Задачи управления многошаговыми процессами и метод
динамического программирования . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.1. Основные понятия и постановка задачи . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2. Допущения метода динамического программирования . . . . . . . . . . . . 16
1.3. Замечания по оптимизации многошаговых процессов . . . . . . . . . . . . 17
1.4. Методика вычисления оптимального значения задачи . . . . . . . . . . . . 20
1.5. Принцип оптимальности Беллмана . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.6. Метод динамического программирования и его основные этапы . . . 26
1.7. Замечания по практическому применению метода динамического
программирования . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Контрольные вопросы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Глава 2. Примеры решения типовых задач методом динамического
программирования . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.1. Задача о распределении инвестиций . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.2. Задача о распределении инвестиций по максимуму нормы
прибыли . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.3. Задача о загрузке транспортного средства. . . . . . . . . . . . . . . . . . . . . . 58
2.4. Задача о замене оборудования . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
2.5. Задача о распределении ресурсов. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Задачи для самостоятельного решения . . . . . . . . . . . . . . . . . . . . . . . . . 85
Глава 3. Динамическое программирование в теории графов . . . . . . . . 90
3.1. Основные понятия теории графов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
3.2. Перечисление путей на графе . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
3.3. Задача о кратчайшем пути . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
3.4. Решение задачи о кратчайшем пути методом динамического
программирования . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
3.5. Задача о проектировании дороги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
3.6. Ориентированные графы и сети . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
3.7. Задача о кратчайшем пути на ориентированных графах . . . . . . . . . 125
3.8. Динамическое программирование на ориентированных графах . . . . 132
3.9. Задача об управлении самолетом . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
3.10. Построение максимального пути. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
3.11. Динамическое программирование в задачах сетевого
планирования . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
3.12. Пример расчета параметров сетевого графика . . . . . . . . . . . . . . . . . . 162
Контрольные вопросы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Задачи для самостоятельного решения . . . . . . . . . . . . . . . . . . . . . . . . . 169
Заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
Литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Минимальные системные требования определяются соответствующими требова-
ниями программ Adobe Reader версии не ниже 11-й либо Adobe Digital Editions версии
не ниже 4.5 для платформ Windows, Mac OS, Android и iOS; экран 10"