Uploaded by Михаил Люльков

dyn program

advertisement
А.М. РОМАНОВСКАЯ
М.В. МЕНДЗИВ
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
Учебное пособие
Омск
2010
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ГОУ ВПО РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ ТОРГОВО-ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ
ОМСКИЙ ИНСТИТУТ (ФИЛИАЛ)
Омский государственный технический университет
А.М. РОМАНОВСКАЯ
М.В. МЕНДЗИВ
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
Учебное пособие
Омск
2010
1
ББК 22.183.47
УДК 519.857
Р 69
Рецензенты:
Алексеенко Е.Н., к.ф.-м.н.,доцент кафедры высшей математики
Омского филиала ФГОУ ВПО Академии бюджета
и казначейства Минфина России
Стратилатова Е.Н.,к.ф.-м.н.,доцент кафедры «Математика
и информатика» Омского института (филиала) РГТЭУ
Романовская, Адель Матвеевна
Р69 Динамическое программирование: Учебное пособие.
Романовская А.М., Мендзив М.В.– Омск: Издатель
Омский институт (филиал) РГТЭУ, 2010. – 58 с.
ISBN 978-5-91892-030-5
Приводится разработанная авторами методика изложения раздела «Динамическое программирование». Детально разобран ряд задач прикладного содержания.
Предназначено для студентов технических и экономических вузов, изучающих методы оптимизации.
ISBN 978-5-91892-030-5
ББК 22.183.47
УДК 519.857
© Романовская А.М., Мендзив М.В., 2010.
© Омский институт (филиал) РГТЭУ, 2010.
2
ОГЛАВЛЕНИЕ
Введение .................................................................................. 4
§1. Управляемая динамическая система с дискретным
временем .................................................................................. 6
§2. Аддитивная целевая функция. Общая задача
динамического программирования. ...................................... 7
§3. Принцип оптимальности. Алгоритм решения задачи
динамического программирования ....................................... 9
§4. Задача об оптимальном маршруте .............................. 11
§5. Построение оптимальной последовательности
операций в коммерческой деятельности ............................ 14
§6. Выбор оптимального маршрута перевозки грузов ... 17
§7. Задача об оптимальном распределении средств между
предприятиями ...................................................................... 19
§8. Двумерная модель распределения средств ................ 29
§9. Оптимальная стратегия замены оборудования .......... 35
§10. Задача о повышении надежности радиоэлектронной
аппаратуры ............................................................................. 39
Приложения ........................................................................... 48
Задачи для самостоятельного решения ........................... 48
Ответы ................................................................................ 55
Задания для контрольной работы .................................... 56
Литература ............................................................................. 58
3
ВВЕДЕНИЕ
Широкий класс задач техники, экономики, для которых применяются математические методы, – задачи оптимизации. Приведем три примера.
1. В распоряжении инженера, конструирующего аппаратуру заданного назначения, имеется набор конструкторских решений. Каждому варианту конструкторского
решения отвечает определенное числовое значение показателя качества (например, надежности). Требуется выбрать
такое конструкторское решение, при котором показатель
качества достигает оптимального решения.
2. В распоряжении инженера, занимающегося производством аппаратуры заданного назначения, имеется набор
технологических решений. Каждому варианту технического решения отвечает определенное числовое значение показателя качества (например, стоимость затрат). Требуется
выбрать вариант, которому отвечает оптимальное значение
показателя качества.
3. В распоряжении планирующей организации имеется набор вариантов распределения ресурсов между предприятиями. Требуется выбрать вариант, которому отвечает
оптимальная суммарная прибыль от произведенной продукции.
Многие задачи оптимизации вкладываются в следующую общую схему.
I. Имеется набор способов действий – допустимых
управлений.
II. Имеется целевая функция («прибыль», «убыток»)
S  S (u), где u пробегает допустимые управления. Требуется выбрать управление, которому отвечает оптимальное
значение целевой функции.
Совокупность методов оптимизации называется математическим программированием. В данном пособии из4
ложен один из широко применяемых методов оптимизации, разработанный в 50-е годы Р. Беллманом [1, 2], – динамическое программирование. Методика изложения отличается от принятой в других руководствах [3, 6]. Введенный в самом начале язык динамических систем позволяет кратко и четко сформулировать постановку задачи,
алгоритм решения. Детально разбирается ряд конкретных
прикладных задач.
5
§1. Управляемая динамическая система
с дискретным временем
Пусть имеется объект, способный развиваться во
времени, переходя от состояния к состоянию. Такой объект
будем называть динамической системой. Множество всех
возможных состояний динамической системы будем называть пространством состояний динамической системы или
фазовым пространством (фаза - состояние).
Если смена состояний происходит в отдельные дискретные моменты времени, то динамическая система называется динамической системой с дискретным временем.
Далее будем рассматривать только такие системы, поэтому
термин «с дискретным временем» опускаем. Моменты
времени, в которые происходит смена состояний, будем
обозначать
t0 , t1 , , tn , .
Предположим, что развитие динамической системы
происходит следующим образом.
1. В начальный момент времени t0 система находится в фиксированном состоянии  0 .
2. Переход k 1  k от состояния в момент tk 1 к состоянию в момент tk (от t0 к t1 , от t1 к t2 , ...) осуществляется так.
Имеется набор управлений (способов действий), каждый из которых позволяет перейти от состояния  k 1 к
одному из возможных состояний; обозначим это состояние
 k , выбранное управление – uk (см. рис. 1), т.е. на каждом
шаге указана связь:
 k   ( k 1, uk ),
(1)
6
0
 k 1
t0
tk 1
uk
k
n
tk
tn
t
Рисунок 1
Предполагается, что на каждом шаге [t0 , t1 ], [t1 , t2 ],
свой набор управлений.
После фиксированного числа n шагов развитие системы прекращается («система выключается»).
Набор состояний
(2)
0 , 1 , , n ,
через которые проходит динамическая система в процессе
развития, будем называть траекторией. Подчеркнем, что
начальное состояние  0 у всех траекторий одно и то же.
Динамические системы такого класса будем называть
управляемыми динамическими системами.
§2. Аддитивная целевая функция. Общая задача
динамического программирования
Пусть имеется управляемая динамическая система.
Предположим, что выбор той или иной траектории оценивается показателем качества (доходом, затратами) S :
S  S (u1 , u 2 ,, u n ).
Будем предполагать, что суммарный доход S равен
сумме доходов на каждом шаге:
S  f1  f 2    f n ,
(3)
где f k  доход на k-м шаге; f k зависит от состояния в начале k-го шага и выбранного на k-м шаге управления uk :
f k  f k ( k 1 , u k ).
7
(4)
Подставляя (4) в (3), получим
n
S   f k ( k 1 , u k ).
(5)
k 1
Функция (5) называется аддитивной целевой функцией.
Задача динамического программирования ставится
следующим образом.
I. Имеется управляемая динамическая система, что
означает:
1) выделено конечное число n шагов;
2) на каждом шаге указаны все возможные состояния
( k ), через которые проходит динамическая система, причем начальное состояние  0 фиксировано;
3) на каждом шаге заданы управления (uk ), причем
указана связь (1), по которой состояние к концу шага однозначно определяется состоянием в начале шага и выбранном на этом шаге управлением.
II. Задана аддитивная целевая функция, то есть на
каждом шаге заданы доходы (затраты) для всех возможных
состояний и для всех возможных управлений (функции 4)
и функция (5).
Решить задачу динамического программирования означает найти набор управлений u1, u2 ,, un так, чтобы целевая функция (5) достигла максимума:
S  max;
(u1 , u 2 ,, u n )  ?
В случае, если показатель качества в (5) есть не доход, а затраты, целевая функция (5) минимизируется:
S  min;
(u1 , u 2 ,, u n )  ?
Каждой траектории (2) динамической системы отвечает определенное значение целевой функции (5). Траектория, которой отвечает максимальное (минимальное)
значение целевой функции, называется оптимальной
8
траекторией. Очевидно, задача динамического программирования заключается в отыскании оптимальной траектории.
§3. Принцип оптимальности. Алгоритм решения
задачи динамического программирования
Пусть имеется управляемая динамическая система и
аддитивная целевая функция (5). Предположим, что к началу k-го шага система оказалась в состоянии  k 1 (рис. 2).
k
k
uk
n
uk
 k 1
uk
uk
k
k
Рисунок 2
Оставшийся путь до конца система может проходить
по различным траекториям в зависимости от выбора последующих управлений. Каждой траектории отвечает свой
суммарный доход, т.е. доход на участке [k  1, n]. Обозначим этот доход через S k
S k  f k  f k 1    f n .
Тогда через S k* ( k 1 ) обозначим максимальный суммарный доход, начиная с k-го шага и до конца, т.е. на участке
9
[k  1, n] и назовем его условным максимальным доходом, очевидно, он зависит от состояния  k 1. Справедлива
формула
S k* ( k 1 )  max{ f k ( k 1 , u k )  S k* 1 ( k )},
(6)
uk
где максимум берется по всем возможным управлениям на
k-м шаге,  k  состояние, в которое переходит система из
состояния  k 1 под действием управления u k :
 k   ( k 1, uk ),
где  ( k 1, uk ) определяется (1).
В самом деле, имеем
S k* ( k 1 ) 
max
uk ,uk 1,,un
[ f k  f k 1    f n ] 
 max[ max ( f k  f k 1    f n )] 
uk
uk 1,,un
 max{ f k ( k 1 , u k ) 
uk
max [ f k 1 ( k , u k 1 )    f n ]} 
uk 1,,un
 max[ f k ( k 1 , u k )  S k*1 ( k )],
uk
что и требовалось.
Доказано следующее утверждение.
Теорема (принцип оптимальности). При построении
оптимальной траектории нужно выбирать управление на
каждом шаге так, чтобы доход на этом шаге плюс максимальный доход на последующих шагах был наибольшим.
Управление, на котором реализуется максимум в (6),
будем обозначать uk* ( k 1) и называть условным оптимальным управлением на k-м шаге.
10
Доказанное правило лежит в основе алгоритма решения задачи динамического программирования, состоящего
из двух этапов.
I этап (движение от конца к началу). Начиная с конца последовательно находим
S n* ( n 1 ), u n* ( n 1 ); S n* 1 ( n  2 ), u n* 1 ( n  2 ); ; S1* ( 0 ), u1* ( 0 );
для всех возможных на соответствующих шагах состояний
с использованием на каждом шаге, начиная с n-1-го, формулы (6). S n* вычисляется непосредственно по формуле
S n* ( n 1 )  max f n ( n 1 , u n ).
(7)
un
II этап (движение от начала к концу). Двигаясь от
начала, существенно используя закрепленность начального
состояния, строим безусловную оптимальную траекторию
0
u1* (0 )
* *
* u2 (1 )
1
 2*
 n*.
Здесь  k*  [ k*1, uk* ( k*1)].
Далее рассмотрим примеры решения различных по
своей природе задач, которые можно вложить в схему динамического программирования.
§4. Задача об оптимальном маршруте
Из всевозможных маршрутов, соединяющих точки A
и B (рис. 3), выбрать тот, на котором сумма чисел («потерь»), стоящих на звеньях, была бы наименьшей. Пункты,
через которые может проходить маршрут, обозначены на
рис. кружочками.
11
4
3
17
10
7
2 11
10
2
5
1 16
9
3
6
3
4
5
7
11
4
5
9
8
12
6
1
1
4
B
5
2
2
3
0 16
7
5
4
3
13
14
5
1
19
A
Рисунок 3
Данную задачу можно было бы решить, подсчитав
суммарные потери на всех возможных маршрутах, и выбрать тот, на котором эта потеря наименьшая. Очевидно,
возможных маршрутов достаточно много. Покажем, что
применение принципа оптимальности Беллмана сильно
упрощает решение данной задачи.
Вложим данную задачу в схему динамического программирования.
I. Строим управляемую динамическую систему:
1) под первым шагом будем понимать переход системы из кружка, соответствующего точке A, в один из
кружков, обведенных нижней пунктирной линией. Следующий шаг – переход системы из одного из двух кружков
в один из кружков, обведенных следующей пунктирной
линией и т.д. Имеем конечное число n  6 шагов;
12
2) под состояниями будем понимать кружки (пункты), через которые проходит маршрут. Они заданы на каждом шаге, причем начальное состояние  0 фиксировано,
соответствует одному кружку (точке A ). Конечным состоянием будет также единственный кружок, соответствующий точке B;
3) под управлением uk будем понимать выбор горизонтали (
) или вертикали ( ). Из рис. 3 видно, что при
выбранных состояниях и управлениях каждое состояние в
начале k-го шага (k = 1, 2, 3, 4, 5, 6) и конкретное управление на этом шаге однозначно определяет состояние к концу k-го шага.
II. Строим аддитивную целевую функцию.
Под величиной затрат на каждом шаге будем понимать потери на соответствующих возможных переходах
(рис. 3). Тогда под целевой функцией будем понимать
суммарные потери при переходе от  0 к  6 ; очевидно,
что они равны сумме потерь на каждом шаге, что означает аддитивность целевой функции. Решить данную задачу означает найти набор управлений на каждом шаге,
который доставляет минимум функции
S  min
u1 ,, u6  ?
Решение. Двигаясь последовательно от конца к началу, записываем цифры в кружки – минимальные потери на оставшейся части траектории до конца при условии, что траектория проходит через данный кружок.
Стрелки означают управление из данного кружка, при
котором реализуется данная потеря, при этом существенно используются цифры в кружках, полученные на
предыдущих шагах.
13
7
9 = min
10
9
4
{
4 + 5
10 + 7
5
Далее, двигаясь от начала к концу, существенно использовав закрепленность начального состояния, строим
оптимальную траекторию. Число 16, стоящее в кружке,
соответствующем начальному состоянию, равно минимальной потере, т.е. S min  16.
§5. Построение оптимальной последовательности
операций в коммерческой деятельности
Пусть на оптовую базу прибыло n машин с товаром
для разгрузки и m машин для загрузки товаров, направляемых в магазины. Материально ответственное лицо оптовой базы осуществляет оформление документов по операциям разгрузки или загрузки одной машины, а затем переходит к обслуживанию другой машины. Издержки от
операций обусловлены простоем транспорта, типом операции (прием или отгрузка товара) и не зависит от конкретной машины. Необходимо спланировать последовательность операций обоих видов таким образом, чтобы суммарные издержки по приему и отправке товаров для всех
машин были минимальными.
Из условия следует, что состояние экономической
системы характеризуется двумя параметрами: количеством
принятых и оформленных машин по разгрузке товаров и
количеством машин, отправляемых с товаром в магазины.
Поэтому решение будем искать на плоскости XOY , ограниченной прямоугольником, который является областью
14
допустимых состояний системы. Если по оси X отложить
число n разгруженных машин, а по оси Y  число m загруженных товаром машин, то можно построить на плоскости граф состояний процесса, в котором каждая вершина
характеризует состояние операции приема и отгрузки товара на оптовой базе. Ребра означают выполнение работы
по приему или отправке товара на очередной машине. Каждому ребру можно сопоставить издержки, связанные с
выполнением операции по разгрузке или загрузке машины.
Очевидно, поставленная задача свелась к той же задаче динамического программирования, что и задача об
оптимальном маршруте, т.е. управляемая динамическая
система и аддитивная целевая функция по смыслу совпадают. Рассмотрим конкретный пример.
Пример. Пусть n  6, m  4, известны затраты по
выполнению каждой операции, которые показаны на ребрах графа (рис. 4). Точка S 0 определяет начало процесса,
точка S1  конечное состояние, соответствующее приему и
отправке всех машин.
Решение. Решаем данную задачу аналогично задаче об
оптимальном маршруте (рис. 4). Минимальные издержки
Fmin соответствуют следующей оптимальной траектории:
(S0  E6  D6  D5  D4  D3  C3  B3  A2  A1  S1 )
и равны: Fmin  88 . Таким образом, в соответствии с решением оптимальное управление процессом разгрузки и загрузки машин товаром состоит в следующем: на первом шаге следует оформить документы по разгрузке одной машины, на
втором – по загрузке одной машины, далее обслуживать три
машины по разгрузке товара, три машины по загрузке и на последующих двух шагах оформить документы по разгрузке
двух машин. При этом минимальные суммарные издержки по
приему и отправке товаров для всех машин равны 88.
15
16
0
0
S0
1
0
88
11
10
D7
78
C7
B7
A6
69
8
70
7
66
2
3
4
загрузка m
12
11
10
12
14
C6
B6
A5
1
76
9
67
E6
D6
10
59
7
58
6
52
11
9
8
13
13
D5
C5
B5
A4
10
7
9
12
12
Рисунок 4
2
10
E5
68
58
9
51
8
46
8
39
C4
B4
A3
3
12
E4
63
51
D4
11
42
9
34
7
27
9
7
8
10
10
C3
B3
A2
4
13
E3
57
10
D3
44
34
9
25
8
17
13
9
10
9
9
5
14
D 2 13
C 2 12
B 2 13
A1 8
14
E2
53
39
11
28
10
18
10
8
B1
D1
6
48
разгрузка n
E1
14
34
12
11
C1
22
11
11
S1
§6. Выбор оптимального маршрута
перевозки грузов
Пусть транспортная сеть состоит из 10 узлов. На рис. 5 показаны сеть дорог и стоимость перевозки единицы груза
между пунктами сети. Ребра являются вариантами возможного выбора решения. Необходимо определить маршрут доставки груза из пункта 1 в пункт 10, обеспечивающий наименьшие транспортные расходы.
1
3
2
4
7
0 1
5
8
3
6
5
6
6
7
9
8
8
3
10
4
2
5
10 4
11
6
4
9
7
9
Рисунок 5
В задаче имеется ограничение – двигаться по изображенным на схеме маршрутам можно только слева направо, т.е. попав, например, в пункт 8, мы имеем право переместиться только в пункт 10 и не можем возвратиться
обратно в 5-й или 6-й.
Вложим данную задачу в схему динамического программирования.
I. Строим управляемую динамическую систему:
1) под первым шагом будем понимать переход системы из пункта 1 в один из пунктов 2, 3, 4. Под вторым
шагом – переход системы из пунктов 2, 3, 4 в один из
пунктов 5, 6 и т.д. Имеем конечное число n  4 шагов;
2) под состояниями будем понимать пункты, из которых состоит транспортная сеть. Они, очевидно, заданы на
17
каждом шаге, причем начальное состояние  0 фиксировано, соответствует пункту 1;
3) под управлением на каждом шаге будем понимать
ребра, соединяющие соответствующие кружки данного
шага. Из рис. 5 видно, что при выбранных состояниях и
управлениях каждое состояние в начале k-го шага (k = 1, 2,
3, 4) и конкретное управление на этом шаге однозначно
определяет состояние к концу k-го шага.
II. Строим аддитивную целевую функцию.
Под величиной затрат на каждом шаге будем понимать стоимость перевозки единицы груза между пунктами
сети. Они заданы для всех возможных состояний и всех
возможных управлений. Тогда под целевой функцией будем понимать суммарные стоимости перевозок при переходе от  0 к  4 ; очевидно, они равны сумме стоимостей
перевозок на каждом шаге, что означает аддитивность целевой функции. Решить данную задачу означает найти набор управлений на каждом шаге, который доставляет минимум целевой функции
S  min
u1 , u 2 , u3 , u4  ?
Решение.
19
2
7
20
1
5
4
8
15
3
4
6
6
9
7
9
8
7
8
3
12
6
10
6
15
5
5
21
10
11
4
9
7
9
11
Рисунок 6
Двигаясь последовательно от конца к началу находим минимальные потери из данного кружка и до конца при усло18
вии, что траектория проходит через данный кружок, и записываем их рядом с соответствующим кружком. Стрелки
означают управление из данного кружка, при котором реализуется данная потеря (см. рис. 6).
Далее, двигаясь от начала к концу, существенно используя закрепленность начального состояния, строим оптимальную траекторию.
Таким образом, оптимальный маршрут доставки груза: 1  3  6  8  10 (на рис. 6 он показан жирными
стрелками). При этом минимальные затраты на перевозку
груза из пункта 1 в пункт 10 равны 20, S min  20.
§7. Задача об оптимальном распределении
средств между предприятиями
Планируется распределение начальной суммы
средств X 0 между n предприятиями 1 ,  2 ,,  n , причем средства выделяются только в размерах, кратных определенному и заданному числу. Предполагается, что выделенные предприятию  k в начале планового периода
средства x приносят доход f k (x).
Будем считать, что:
1) доход, полученный от вложения средств в предприятие, не зависит от вложения средств в другие предприятия;
2) доход, полученный от разных предприятий, выражается в одинаковых единицах;
3) общий доход равен сумме доходов, полученных
от распределения средств по всем предприятиям.
Определить, какое количество надо выделить каждому предприятию, чтобы суммарный доход был максимальным.
19
Обозначим через x k количество средств, выделяемых предприятию  k . Тогда математическая модель данной задачи имеет вид:
S ( x1 , x2 ,, xn )  f1 ( x1 )  f 2 ( x2 )    f n ( xn )  max
xk
при условиях
x1  x2    xn  X 0 ,
где x k – натуральное, k  1, 2,, n.
Вложим сформулированную задачу в схему динамического программирования. Для этого надо построить
управляемую динамическую систему и показать, что целевая функция является аддитивной. Для этого введем искусственно дискретное время. Будем условно считать, что
вначале выделяем средства предприятию 1 , затем
 2 ,,  n . Тогда под k-м шагом будем понимать выделе-
ние средств предприятию  k . Получим n шагов.
Под состоянием  k будем понимать остаток денежных средств по завершению k-го шага или их наличие к
началу k+1-го шага.
Под управлением на k-м шаге u k будем понимать количество средств x k , выделяемых на k-м шаге (т.е. предприятию  k ). Формулы (1) для нашей задачи имеют вид
 k   k 1  uk ,
k  1, 2,, n.
(8)
Под величиной дохода на k-м шаге, очевидно, будем
понимать заданные функции дохода f k (u k ) , причем
n
S   f k (u k ),
k 1
что означает аддитивность целевой функции.
20
Начальное и конечное состояния жестко закреплены,
а именно:
 0  X 0 ,  n  0.
Получили задачу динамического программирования,
решить которую означает найти оптимальный набор
управлений на каждом шаге, т.е. такой набор управлений
u1* , u 2* ,, u n* , на котором S  max .
Теперь к решению задачи можно применить общую
схему решения задачи динамического программирования.
Формулы (6), (7) для нашей задачи имеют вид:
S n* ( n 1 ) 
S k* ( k 1 ) 
max
0  u n  n1
max
0  u k  k 1
f n (u n )  f n ( n 1 ),
(9)
[ f k (u k )  S k* 1 ( k 1  u k )],
(10)
k  1, 2,, n  1.
Здесь учтено соотношение (8), из которого также вытекает ограничение на u k :
0  u k   k 1 ,
k  1, 2,, n  1.
Кроме того, очевидно, что 0   k  X 0 .
Рассмотрим конкретный числовой пример. Решить
поставленную задачу по следующим данным:
1) X 0  200 млн. руб.; 2) n  4 ; 3) средства выделяются только в размерах, кратных 40 млн. руб.; 4) функции
дохода для каждого предприятия даны в табл. 1.
Таблица 1
х
40
80
120
160
200
f1 ( x)
8
10
11
12
18
f 2 ( x)
6
9
11
13
15
21
f 3 ( x)
3
4
7
11
18
f 4 ( x)
4
6
8
13
16
Решение.
I этап. Находим S 4* ( 3 ) , S 3* ( 2 ) , S 2* (1 ) , S1* ( 0 ) по
формулам (9), (10) для всех возможных значений  k (k = 1,
2, 3). Согласно условию задачи, состояния  k на любом
шаге могут принимать одни и те же значения: 0, 40, 80,
120, 160, 200.
По формуле (9)
S 4* ( 3 ) 
max
0  u 4  3
f 4 (u 4 )  f 4 ( 3 ),
т.е. из табл. 1 имеем значения, приведенные в табл. 2.
Таблица 2
3
S 4* ( 3 )
0
40
80
120
160
200
0
4
6
8
13
16
u 4* ( 3 )
0
40
80
120
160
200
Из формулы (10) при k  3
S 3* ( 2 ) 

max [ f 3 (u3 )  S 4* ( 3 )] 
0  u 3  2
max [ f 3 (u3 )  S 4* ( 2  u3 )].
0  u 3  2
Полагая теперь последовательно  2 = 0, 40, 80, 120,
160, 200, получаем:
S3* (0)  f 3 (0)  S 4* (0)  0;
S 3* (40) 
max [ f 3 (u3 )  S 4* (40  u3 ) 
0  u 3  40
 f (0)  S 4* (40)  0  4  4
 max  3
  4;
*
 f 3 (40)  S 4 (0)  3  0  3 
22
S 3* (80) 
max [ f 3 (u3 )  S 4* (80  u3 ) 
0  u 3  80
 f 3 (0)  S 4* (80)  0  6  6 




 max  f 3 (40)  S 4* (40)  3  4  7  7;


 f 3 (80)  S 4* (0)  4  0  4 


S 3* (120) 
max [ f 3 (u3 )  S 4* (120  u3 ) 
0  u 3 120
 f 3 (0)  S 4* (120)  0  8  8 




*
 f 3 (40)  S 4 (80)  3  6  9 
 max 
  9;
 f 3 (80)  S 4* (40)  4  4  8




*
 f 3 (120)  S 4 (0)  7  0  7 
S 3* (160) 
max [ f 3 (u3 )  S 4* (160  u3 ) 
0  u 3 160
 f 3 (0)  S 4* (160)  0  13  13 




*
 f 3 (40)  S 4 (120)  3  8  11 


 max  f 3 (80)  S 4* (80)  4  6  10   13;




*
 f 3 (120)  S 4 (40)  7  4  11


 f 3 (160)  S 4* (0)  11  0  11 


23
S 3* (200) 
max
[ f 3 (u3 )  S 4* (200  u 3 ) 
0  u 3  200
 f 3 (40)  S 4* (160)  3  13  16




*
 f 3 (0)  S 4 (200)  0  16  16 


 f 3 (80)  S 4* (120)  4  8  12 
  18.
 max 


*
 f 3 (120)  S 4 (80)  7  6  13 


 f 3 (160)  S 4* (40)  11  4  15


 f (200)  S * (0)  18  0  18 
4
 3

Полученные значения запишем в табл. 3.
Таблица 3
2
S 3* ( 2 )
0
0
40
4
80
7
120
9
160
13
200
18
Аналогично имеем k  2 ;
S 2* (1 ) 

u3* ( 2 )
0
0
40
40
0
200
max [ f 2 (u 2 )  S 3* ( 2 )] 
0  u 2  1
max [ f 2 (u 2 )  S 3* (1  u 2 )];
0  u 2  1
S 2* (0)  f 2 (0)  S3* (0)  0  0  0;
24
S 2* (40) 
max [ f 2 (u 2 )  S 3* (40  u 2 ) 
0  u 2  40
 f 2 (0)  S 3* (40)  0  4  4
  6;
 max 


*
 f 2 (40)  S 3 (0)  6  0  6 
S 2* (80) 
max [ f 2 (u 2 )  S 3* (80  u 2 ) 
0  u 2  80
 f 2 (0)  S 3* (80)  0  7  7 




 max  f 2 (40)  S 3* (40)  6  4  10  10;


 f 2 (80)  S 3* (0)  9  0  9 


S 2* (120) 
max
[ f 2 (u 2 )  S 3* (120  u 2 ) 
0  u 2 120
 f 2 (0)  S 3* (120)  0  9  9 




*
 f 2 (40)  S 3 (80)  6  7  13 
 max 
  13;
*
 f 2 (80)  S 3 (40)  9  4  13 




*
 f 2 (120)  S 3 (0)  11  0  11
25
S 2* (160) 
max
[ f 2 (u 2 )  S 3* (160  u 2 ) 
0  u 2 160
 f 2 (0)  S 3* (160)  0  13  13 




*
 f 2 (40)  S 3 (120)  6  9  15 


 max  f 2 (80)  S 3* (80)  9  7  16   16;




*
 f 2 (120)  S 3 (40)  11  4  15


 f 2 (160)  S 3* (0)  13  0  13 


S 2* (200) 
max
[ f 2 (u 2 )  S 3* (200  u 2 ) 
0  u 2  200
 f 2 (0)  S 3* (200)  0  18  18 




*
 f 2 (40)  S 3 (160)  6  13  19 


 f 2 (80)  S 3* (120)  9  9  18 
  19.
 max 


*
 f 2 (120)  S 3 (80)  11  7  18 


 f 2 (160)  S 3* (40)  13  4  17


 f (200)  S * (0)  15  0  15 
3
 2

26
Таблица 4
1
S 2* (1 )
0
6
10
13
16
19
0
40
80
120
160
200
u 2* (1 )
0
40
40
80
80
40
k  1 . Учитывая, что  0 принимает только одно значение,
имеем
S1* (200) 
max [ f1 (u1 )  S 2* (200  u1 ) 
0  u1  200
 f1 (0)  S 2* (200)  0  19  19 




*
 f1 (40)  S 2 (160)  8  16  24 


 f1 (80)  S 2* (120)  10  13  23
  24.
 max 


*
 f1 (120)  S 2 (80)  11  10  21 


 f1 (160)  S 2* (40)  12  6  18 


 f (200)  S * (0)  18  0  18 
2
 1

Все найденные значения S k* , u k* из табл. 2 – 4 занесем в табл. 5
27
Таблица 5
k 4
k
S 4* (3 )
k 3
u 4* ( 3 )
S3* ( 2 )
k 2
u3* ( 2 )
S 2* (1 )
k 1
u 2* (1 )
S1* ( 0 )
u1* ( 0 )
0
40
80
120
160
200
0
0
0
0
0
0
4
40
4
0
6
40
6
80
7
40
10
40
8
120
9
40
13
80
13
160
13
0
16
80
16
200
18
200
19
40
24
40
II этап. Найдем оптимальные управления на каждом
шаге, начиная с первого, пользуясь табл. 5:
=
u4*  40
=
u3*  40
=
u2*  80
1*
=
u1*  40
=
0
200
160
80
40
0
 2*
 3*
 4*.
Здесь мы учли, что  0 закреплено и равно 200, поэтому
u1*  (200)  40 является оптимальным управлением на 1-м
шаге, следовательно, однозначно находим из (8)
1*  0  u1*  200  40  160,
тогда из табл. 5 однозначно находим
u2* (1* )  u2* (160)  80
Итак,
искомый
набор
и т.д.
оптимальных
управлений
(u1* , u2* , u3* , u4* )  (40, 80, 40, 40) , при этом
S max  S (u1* , u 2* , u3* ,u 4*)  S1* ( 0 )  24.
Ответ. Максимальный доход при распределении между
данными четырьмя предприятиями 200 млн. руб. составляет 24 млн. руб. и будет получен, если первому предприятию выделить 40 млн. руб., второму выделить 80 млн.
руб., а третьему и четвертому – по 40 млн. руб.
28
§8. Двумерная модель распределения средств
Планируется деятельность двух предприятий в течение n лет. Начальные средства составляют X 0 . Средства
x , вложенные в предприятие I, приносят к концу года доход g1( x) и возвращаются в размере 1 ( x)  x, аналогично, средства x , вложенные в предприятие II, дают доход
g 2 ( x) и возвращаются в размере  2 ( x)  x. По истечении
года все оставшиеся средства заново распределяются между предприятиями I и II, новых средств не поступает, и доход в производство не вкладывается.
Требуется найти оптимальный способ распределения
имеющихся средств.
Вложим данную задачу в схему динамического программирования.
I. Построим управляемую динамическую систему:
1) под k-м шагом будем понимать k-й год планируемого периода. Имеем n шагов;
2) под состоянием  k будем понимать остаток денежных средств к концу k-го шага или их наличие в начале
k+1-го шага;
3) под управлением uk будем понимать количество
средств, вкладываемых в предприятие I. Тогда количество
средств, вкладываемых в предприятие II, будет равно
 k 1  u k . Откуда получаем
0  X 0 ,
0  k  X 0 ,
0  uk   k 1 ,
и формула (1) имеет вид
k  1(uk )  2 (k 1  uk ).
II. Строим аддитивную целевую функцию.
Доход на k-м шаге вычисляется по формуле
29
(11)
(12)
f k ( k 1 , uk )  g1 (uk )  g 2 ( k 1  u k )
(13)
и целевая функция
n
S   f k ( k 1 , u k ).
k 1
Задача состоит в нахождении такого набора
(u1, u2 ,, un ) , при котором S  max .
Рассмотрим конкретный пример задачи распределения средств.
Составить оптимальный план ежегодного распределения средств между двумя предприятиями в течение
трехлетнего планового периода при следующих условиях:
1) начальная сумма составляет 400; 2) вложенные средства
в размере x приносят на предприятии I доход g1( x) и возвращаются в размере 60% от x ; а на предприятии II – соответственно g 2 ( x) и 20%; 3) ежегодно распределяются
все наличные средства, получаемые из возвращенных
средств; 4) функции g1( x) и g 2 ( x) заданы в табл. 6.
Таблица 6
x
g (x)
50
100 150 200 250 300 350 400
6
10
15
26
28
38
45
49
g1( x)
12
20
28
35
40
46
48
g 2 ( x) 8
Решение.
Для данного примера 0  400 и все  k
(k  1, 2, , n) могут принимать значение 0, 50, 100, ... ,
400.
Формулы (12) имеют вид
k  0,6uk  0,2(k 1  uk ).
(14)
30
I этап. Находим, начиная с конца, все S k* ( k 1 ) и
uk* ( k 1) (k  3, 2, 1) по следующим формулам, вытекающим из формул (9) – (11), (13), (14).
S 3* ( 2 ) 
S k* ( k 1 ) 
max [ g1 (u3 )  g 2 ( 2  u3 )].
(15)
0  u 3  2
max
0  u k  k 1
[ g 1(u k )  g 2 ( k 1  u k ) 
 S k* 1 (0,6u k
 0,2( k 1  u k ))]
(16)
Результаты всех вычислений заносим в табл. 7.
Таблица 7
k
S 3* ( 2 )
0
50
100
150
200
250
300
350
0
8
14
20
28
35
41
46
400
54
u3* ( 2 )
0
0
50
0
0
0
50
0,
50,
200,
300
200
S 2* (1 )
u2* (1)
0
10,8
20,4
28,4
42,4
51,6
0
50
50
100
200
200
S1* ( 0 ) u1* (0 )
99,08
Имеем по формуле (15) и из табл. 6:
S 3* (0)  max [ g1 (0)  g 2 (0)]  0;
0  u3  0
S 3* (50) 
max [ g1 (u3 )  g 2 (50  u3 )] 
0  u 3  50
 g (0)  g 2 (50)  0  8 
 max  1
 8;
 g1 (50)  g 2 (0)  6  0
31
350
S 3* (100) 
max [ g1 (u3 )  g 2 (100  u3 )] 
0  u 3 100
 g1 (0)  g 2 (100)  0  12


 max  g1 (50)  g 2 (50)  6  8   14;


 g1 (100)  g 2 (0)  10  0
S 3* (150) 
max [ g1 (u3 )  g 2 (150  u3 )] 
0  u 3 150
 g1 (0)  g 2 (150)  0  20 


 g1 (50)  g 2 (100)  6  12
  20;
 max 
 g1 (100)  g 2 (50)  10  8 


 g1 (150)  g 2 (0)  15  0 
S 3* (200) 
max
[ g1 (u3 )  g 2 (200  u3 )]
0  u 3  200
и т.д.
По формуле (16) находим
S 2* (0)  max [ g1 (u 2 )  g 2 (0  u 2 )  S 3* (0)] 
0u2 0
 g1 (0)  g 2 (0)  0  0;
S 2* (50)  max [ g1 (u 2 )  g 2 (50  u 2 )  S 3* (0,6u 2  0,2(50  u 2 ))] 
0u2 50
 g1 (0)  g 2 (50)  S 3* (10)  0  8  1,6 
  10,8.
 max 


*
 g1 (50)  g 2 (0)  S 3 (30)  6  0  4,8
32
Здесь S 3* (10) и S 3* (30) нашли приближенно, пользуясь формулами линейной интерполяции, а именно:
*
*
 50  0  S 3 (50)  S 3 (0) 8  0
S 3* (10)  S 3* 

 1,6;

5
5
 5 
S3* (30)  S3* (10  3)  3  S3* (10)  4,8.
Аналогично находим
S 2* (100) 
max [ g1 (u 2 )  g 2 (100  u 2 )  S 3* (0,6u 2  0,2(100  u 2 ))] 
0u2 100
 g1 (0)  g 2 (100)  S 3* (20)  0  12  3,2




*
 max  g1 (50)  g 2 (50)  S 3 (40)  6  8  6,4   20,4.


 g1 (100)  g 2 (0)  S 3* (60)  10  0  9,2


Здесь
S3* (20)  2  1,6  3,2;
S3* (40)  4  1,6  6,4;
100  50 

S 3* (60)  S 3*  50 

5



S 3* (50) 
S 3* (100)  S 3* (50)
 8  1,2  9,2;
5
и т.д.
33
S1* (0 )  S1* (400) 
max [ g1(u1)  g 2 (400  u1) 
0u2  400
 S2* (0,6u1  0,2(400  u1))] 
 g1(0)  g 2 (400)  S2* (80)  0  48  16,56  64,56 




*
 g1(50)  g 2 (350)  S2 (100)  6  46  20,4  72,4 


 g1(100)  g 2 (300)  S2* (120)  10  40  23,6  73,6 




*
 g1(150)  g 2 (250)  S2 (140)  15  35  26,8  76,8 


 max  g1(200)  g 2 (200)  S2* (160)  26  28  31,2  85,2   99,08.


 g (250)  g (150)  S * (180)  28  20  36,8  84,8 
2
2
 1



*
 g1(300)  g 2 (100)  S2 (200)  38  12  42,4  92,4 


 g (350)  g (50)  S * (220)  45  8  46,08  99,08
2
2
 1



*
 g1(400)  g 2 (0)  S2 (240)  49  0  49,76  98,76 
II этап. Найдем оптимальные управления на каждом
шаге, начиная с первого, пользуясь табл. 7 и формулами (14):
 3*
=
 2*
u3*  24
=
u2*  200
1*
=
u1*  350
=
0
400
220
124
34
Итак, нами получен следующий оптимальный план распределения средств между двумя предприятиями по годам:
Предприятие
1-й год
2-й год
3-й год
I
350
200
24
II
50
20
100
При этом может быть получен максимальный доход
S max  99,1.
34
§9. Оптимальная стратегия замены оборудования
Одной из экономических проблем, с которыми приходится встречаться на практике, является определение
оптимальной стратегии в замене старого оборудования.
Старение оборудования включает в себя его физический и
моральный износ, в результате чего растут производственные затраты по выпуску продукции на старом оборудовании, увеличиваются затраты на его ремонт и обслуживание, а вместе с тем снижается производительность и так
называемая ликвидная стоимость.
Наступает момент, когда старое оборудование более
выгодно продать, заменить новым, чем эксплуатировать
ценой больших затрат.
Оптимальная стратегия замены оборудования состоит в определении оптимальных сроков замены. Критерием
оптимальности при определении сроков замены служит
прибыль от эксплуатации оборудования. Условимся считать, что решения о замене оборудования принимаются
периодически в начале каждого промежутка (года, месяца
и т.д.), на которые разбит плановый период.
Основной характеристикой оборудования является
его возраст. От возраста оборудования зависят эксплуатационные расходы, затраты на производство, производительность и ликвидная стоимость.
Конкретно задача о замене оборудования ставится
следующим образом.
Определить оптимальные сроки замены оборудования в
течение n лет, при которых прибыль от эксплуатации оборудования максимальна, если известны: p – начальная стоимость оборудования; R(t ) – стоимость производимой продукции на оборудовании возраста t лет; r (t ) – ежегодные затраты на эксплуатацию оборудования возраста t лет;  (t ) – лик35
видная стоимость оборудования возраста t лет. Предполагаются, что к началу планового периода оборудование является
новым.
Вложим данную задачу в схему динамического программирования.
I. Построим управляемую динамическую систему:
1) под k-м шагом будем понимать k-й год планируемого периода. Имеем n шагов;
2) под состоянием  k будем понимать возраст оборудования к концу k-го шага или к началу k+1-го шага. Отсюда вытекает, что на каждом шаге состояние  k может
принимать следующие значения:
(17)
0, 1, 2, , k ;
0  0;
3) в качестве управления uk на каждом шаге выступают решения о замене и сохранении оборудования.
Обозначим через u решение о сохранении оборудования; u – решение о замене оборудования.
Формула (1) для данной задачи имеет вид

 1,

 k 1
k  
uk  u
(18)

1
,
u

u
.
k

II. Построим аддитивную целевую функцию.
Под доходом на k-м шаге будем понимать прибыль от
эксплуатации оборудования на k-м шаге. Согласно условию задачи она, в зависимости от управления, будет выражаться следующим образом:
при uk  u

R( k 1)  r ( k 1)
f k ( k 1, uk )  
(19)

R
(
0
)

r
(
0
)


(

)

p
при
u

u
.
k 1
k

Очевидно, прибыль за n лет составит
36
n
S   f k ( k 1, uk ).
k 1
Рассмотрим конкретный пример задачи о замене оборудования.
К началу текущей пятилетки на предприятии установлено новое оборудование. Зависимость производительности этого оборудования от времени его использования
предприятием, а также ежегодные затраты на эксплуатацию оборудования возраста t приведены в табл. 8.
Таблица 8
0
1
2
3
4
5
80
75
65
60
60
55
R(t )
20
25
30
35
45
55
r (t )
Зная, что затраты, связанные с приобретением и установкой нового оборудования, идентичного с установленным, составляют 40 тыс. руб., а заменяемое оборудования списывается, составить такой план замены оборудования в течение пятилетки, при котором общая прибыль за
данный период времени максимальна.
Решение. В данном конкретном примере число шагов n  5 , функция  (t )  0 и p  40 , функции R(t ) и r (t )
заданы табл. 8.
I этап. Находим, начиная с конца, все Sk* ( k 1) и
uk* ( k 1) (k = 5, 4, 3, 2, 1) по формулам (9), (10) для всех
возможных значений  k (17) и полученные значения записываем в табл. 9, при этом следует учесть, что формулы
(19) для нашего примера имеют вид
R( k 1)  r ( k 1)
f k ( k 1, uk )  
80  20  40  20
37
при uk  u
при uk  u .
При n  5 и из формулы (10)

R(4 )  r ( 4 ) при u5  u
S5* ( 4 )  max f5 ( 4 , u5 )  max 
u5
u5 
20
при u5  u .

Давая  k всевозможные значения (17), с учетом
табл.8, заполним первые три столбца табл. 9.
Таблица 9
k
0
1
2
3
4
5
S5* (4 )
u5* ( 4 )
S4* (3 )
u4* (3 )
S3* (2 )
u3* ( 2 )
S2* (1)
u2* (1 )
S1* (0 )
u1* ( 0 )
60
50
35
25
20
u
u
u
u
u
110
85
70
70
u
u
u
u
145
120
105
u
u
u, u
180
155
u
u
215
u
Для нахождения всех остальных Sk* (k 1) и uk* ( k 1)
(k = 4, 3, 2, 1) используем формулу (10):
S4* (3 )  max{ f 4 (3 , u4 )  S5* ( 4 )} 
u4
 R(3 )  r (3 )  S5* (3  1)
при u4  u
 max 
u4 20  S * (1)  20  50  70
при u4  u .
5

Давая  k всевозможные значения (17), с учетом
табл.8, заполним четвертый и пятый столбцы табл. 9. Далее заполняем все остальные столбцы таблицы аналогично.
Следует учесть, что в последних столбцах, соответствующих k  1 , достаточно положить 0  0 .
II этап. Строим оптимальную траекторию, начиная с
первого шага, пользуясь табл. 9 и формулами (18) и учитывая, что 0  0 .
38
=
u3*  u
=
u2*  u
1*
=
u1*  u
=
0
0
1
2
3
u5*  u
 3*
5*.
=
 4*
=
u4*  u
 2*
1
2
Итак, искомый набор оптимальных управлений
(u, u, u, u , u) , при этом S max  S1* ( 0 )  215 .
Ответ. Максимальная прибыль, равная 215 тыс. руб.,
будет достигнута предприятием в течение пятилетки, если
заменить оборудование новым только на четвертом году
данного периода.
§10. Задача о повышении надежности
радиоэлектронной аппаратуры
Говорят, что случайная величина  подчинена экспоненциальному закону распределения, если
P(  t )  1  e t ,
(20)
где   0 – параметр экспоненциального закона.
Предположим, что некоторая аппаратура рассчитана
на время T . Надежностью аппаратуры называется вероятность того, что за расчетное время аппаратура не выйдет
из строя.
Пусть  – время безотказной работы аппаратуры,
тогда
p  P(  T ),
где p – надежность аппаратуры.
39
Предположим, что время безотказной работы подчинено экспоненциальному закону (20), тогда надежность
аппаратуры p вычисляется по следующей форме:
p  1  P(  T )  e T .
(21)
Рассмотрим следующую задачу.
Система состоит из трех блоков (рис. 7). В первый
блок входят 4 функциональных узла, во второй – 5 функциональных узлов, в третий – 3 функциональных узла.
Время безотказной работы каждого функционального узла
подчиняется экспоненциальному закону со следующими, в
зависимости от блока, параметрами:
1  0,01 1 r , 2  0,02 1 r , 3  0,005 1 r ,
(22)
Для приобретения запасного оборудования выделено
пять условных денежных единиц. Стоимость одного функционального узла первого и третьего блоков равна двум
денежным единицам, одного функционального узла второго блока – одной денежной единице. Найти количество
запасных узлов каждого типа, при котором надежность
системы в целом будет максимальна, исходя из расчетного
времени T  100 ч.
Составим математическую модель данной задачи.
Обозначим количество запасных узлов k-го типа через uk
(k = 1, 2, 3). Найдем надежность всей системы. Надежность
k-го блока вычисляется по правилам теории вероятности
[7] с учетом (21), (22) следующим образом:
pk  p( за 100 часов откажет  uk узлов ) 
 P(отк. 0)  P(отк. 1)    P(отк. uk ).
40
Откуда
P1  p14  C41 p13 q1 
 C4u1 p14u1 q1u1 , p1  e 1 , q1  1  e 1 ;
P2  p25  C51 p24 q2 
 C5u2 p25u2 q u2 2 , p2  e 2 , q2  1  e 2 ; (23)
 C3u3 p33u3 q3u3 , p3  e 0,5 , q2  1  e 0,5
P3  p33  C31 p32 q3 
I
II
III
u3
u1
u2
Рисунок 7
Надежность системы в целом, учитывая независимость работы блоков, равна [7]:
p  p1  p2  p3.
41
Тогда математическая модель имеет вид
2u1  u2  2u3  5,

целые ,
u1, u2 , u3  0,

 p  p1  p2  p3  max;
(u1, u2 , u3 )  ?
Для того чтобы полученную задачу можно было решить методом динамического программирования, перейдем от этой задачи к следующей эквивалентной задаче:

2u1  u2  2u3  5,


u1, u2 , u3  0, целые ,
(24)
S  f1 (u1 )  f 2 (u 2 )  f 3 (u3 )  min;
(u1, u2 , u3 )  ?
Здесь S   ln p , f k (uk )   ln pk . Очевидно, что
p  max  ln p  max   ln p  min .
Результаты вычислений f k (u ) по формулам (23) запишем
в табл. 10.
Таблица 10
u
f1(u )
f 2 (u )
f3 (u )
0
p1  0,018
3,999
p2  0,00005
10,002
p3  0,225
1,493
1
p1  0,144
1,936
p2  0,001
6,505
p3  0,659
0,417
2
p1  0,469
0,758
p2  0,02
3,911
p3  0,939
0,063
3
p2  0,097
2,338
4
p2  0,475
0,745
5
p2  0,958
0,043
Вложим эту задачу в схему динамического программирования. Введем искусственно дискретное время. Будем ус42
ловно считать, что запасное оборудование приобретается
сначала для первого блока, затем для второго, а затем для
третьего блока.
I. Построим управляемую динамическую систему:
1) под k-м шагом будем понимать приобретение запасного оборудования для k-го блока. Получим три шага;
2) под состоянием  k будем понимать остаток денежных средств по завершению k-го шага или их наличие к
началу k+1-го шага. Тогда состояния  k могут принимать
следующие значения:
(25)
0, 1, 2, 3, 4, 5,  0  5;
3) под управлением на k-м шаге будем понимать uk .
Формулы (1) для данной задачи имеют вид
(26)
1  0  2u1, 2  1  u2 , 3  2  2u3.
Откуда вытекает, что
2u1   0 , u2  1, 2u3   2 .
II. Строим аддитивную целевую функцию.
Под величиной потерь на k-м шаге будем понимать
функции f k (uk ) , тогда целевой функцией будет функция S
из (24), которая является аддитивной.
Решение.
Формулы (8), (9), с учетом формул (26), имеют вид
S 3* ( )  min f 3 (u ),
2u 
(27)
S 2* ( )  min[ f 2 (u )  S 3* (  u )],
u 
S1* ( 0 )  min [ f1 (u )  S 2* ( 0  2u )].
2u   0
43
(28)
I этап. Находим Sk* (k 1) по формулам (27), (28) для
всех возможных значений  k , определяемых (25). Результаты вычислений заносим в табл. 11.
Таблица 11
3-й шаг
2-й шаг
1-й шаг
k
S3* ( 2 )
0
1
2
1,493
0
1,493
0
0,417
1
3-й шаг
11,49
0
7,998
1
5,404
2
2-й шаг
k
S3* ( 2 )
S 2* (1 )
u 2* (1 )
S1* ( 0 )
u1* ( 0 )
3
4
5
0,417
0,063
0,063
3,831
2,238
1,539
3
4
5
5,535
0
u3* ( 2 )
u3* ( 2 )
1
2
2
S 2* (1 )
u 2* (1 )
S1* ( 0 )
u1* ( 0 )
1-й шаг
По формулам (27) имеем
S3* (0)  min f3 (u3 )  f3 (0)  1,493,
2u3 0
S3* (1)  min f3 (u3 )  f3 (0)  1,493,
2u3 1
S3* (2)  min f3 (u3 )  min{ f3 (0), f3 (1)}  0,417,
2u3  2
S3* (3)  min f3 (u3 )  min{ f3 (0), f3 (1)}  0,417,
2u3 3
S3* (4)  min f3 (u3 )  min{ f3 (0), f3 (1), f3 (2)}  0,063,
2u3  4
S3* (5)  min f3 (u3 )  min{ f3 (0), f3 (1), f3 (2)}  0,063.
2u3 5
44
По формулам (28) имеем
S2* (0)  min [ f 2 (u2 )  S3* (0  u2 )]  f 2 (0)  S3* (0)  11,495;
u2 0
S2* (1)  min [ f 2 (u2 )  S3* (1  u2 )] 
u2  1
 f 2 (0)  S3* (1)  11,495
  7,998;
 min 


*
 f 2 (1)  S3 (0)  7,998 
S 2* (2)  min [ f 2 (u2 )  S3* (2  u2 )] 
u2  2
 f 2 (0)  S3* (2)  10,419




 min  f 2 (1)  S3* (1)  7,998   5,404;


 f 2 (2)  S3* (0)  5,404 


S 2* (3)  min [ f 2 (u2 )  S3* (3  u2 )] 
u2  3
 f 2 (0)  S3* (3)  10,419




*
 f 2 (1)  S3 (2)  6,922 
 min 
  3,831;
*
 f 2 (2)  S3 (1)  5,404 




*
 f 2 (3)  S3 (0)  3,831 
45
S 2* (4)  min [ f 2 (u2 )  S3* (4  u2 )] 
u2  4
 f 2 (0)  S3* (4)  10,065




*
 f 2 (1)  S3 (3)  6,922 


*

 min f 2 (2)  S3 (2)  4,328   2,238;




*
 f 2 (3)  S3 (1)  3,831 


 f 2 (4)  S3* (0)  2,238 


S 2* (5)  min [ f 2 (u2 )  S3* (5  u2 )] 
u2  5
 f 2 (0)  S3* (5)  10,065




*
 f 2 (1)  S3 (4)  6,568 


 f 2 (2)  S3* (3)  4,328 
  1,536;
 min 


*
 f 2 (3)  S3 (2)  2,755 


 f 2 (4)  S3* (1)  2,238 


 f (5)  S * (0)  1,536 
3
 2

S1* (5)  min [ f1(u1)  S2* (5  2u1)] 
2u1  5
 f1(0)  S2* (5)  5,535 




 min  f1(1)  S2* (3)  5,767   5,535.


 f 2 (2)  S2* (1)  8,756


46
II этап. Строим оптимальную траекторию, начиная с
начала:
=
u2*  5
1*
=
u1*  0
=
0
5
5
0
 2*
u3*  0
 3* .
Оптимальный набор управлений (0, 5, 0).
Ответ. Количество запасных узлов для второго блока
равно 5, а для остальных блоков равно 0.
47
ПРИЛОЖЕНИЯ
Задачи для самостоятельного решения
1. Из всевозможных маршрутов, соединяющих точки А
и В, выбрать тот, на котором сумма чисел, стоящих на звеньях, была бы наименьшей. Пункты, через которые может проходить маршрут, обозначены на рисунке кружочками.
B
а)
14
13
12
10
7
7
6
8
10
12
8
13
7
10
10
8
10
11
1
A
б)
12
8
9
9
9
9
10
9
10
8
11
7
10
11
7
12
14
12
11
10
9
12
10
15
10
B
13
14
15
11
12
10
12
14
15
18
10
8
13
10
12
15
9
14
10
14
13
11
15
11
13
21
11
12
12
15
12
20
13
10
13
13
19
13
9
A
12
14
10
15
10
12
13
13
16
9
10
19
14
13
14
48
13
18
12
10
11
12
15
8
15
11
18
17
19
в)
B
13
6
12
5
7
11
7
9
10
10
A
11
7
7
9
8
8
11
9
8
6
12
6
9
11
7
8
6
9
10
9
9
10
11
9
12
8
7
6
10
8
8
8
7
9
9
9
8
12
8
10
11
10
12
13
12
11
13
13
2. Определить оптимальную последовательность
операций по приемке и отпуску товаров на предприятии
оптовой торговли, позволяющую минимизировать суммарные издержки при условиях, приведенных в виде матрицы вариантов связей и затрат по каждой операции.
а)
m отгрузка товаров
10
4
15
3
11
2
10
1
9
0
12
18
10
13
8
14
13
10
10
13
19
10
15
9
13
12
13
12
14
20
12
10
11
12
14
11
15
15
21
12
14
13
11
13
12
13
14
18
13
16
12
10
15
14
16
13
19
18
17
S1
9
10
11
19
S0
0
1
2
3
49
4
5
6 n
приемка товаров
б)
m
отгрузка товаров
19
3
14
13
11
13
m
17
20
15
15
12
22
13
16
S0
1
2
3
4
n
приемка товаров
отгрузка товаров
22
3
18
12
15
12
2
12
16
18
18
19
17
10
21
22
20
13
24
19
20
13
S1
27
21
15
15
11
24
21
13
1
0
18
14
14
8
0
в)
12
11
12
18
18
11
S1
22
16
18
12
1
20
16
10
2
0
15
15
25
19
S0
0
1
2
3
4
n
приемка товаров
3. На заданной сети дорог имеется несколько маршрутов по доставке груза из пункта А в пункт В. Стоимость перевозки единицы груза между отдельными пунктами сети проставлена у ребер. Необходимо определить оптимальный
маршрут доставки груза из пункта А в пункт В, который
обеспечил бы минимальные транспортные расходы.
50
а)
8
2
5
9
3
А
6
3
6
3
7
6
8
5
9
14
5
5
В
10
2
6
13
11
7
3
6
10
5
8
4
12
6
4
5
1
9
6
2
6
10
8
б)
12
2
16
А
1
6
13
3 16
9
8
18
9
11
10
16
14
10
4
7
11
В
12
8
9
10
10
12
9
9
14
10
16
5
в)
13
А
10
10
7
9
9
8
7
1
5
3
8
11
5
12
12
10
9
15
2
15
4
14
11
8
6
10
51
10
5
11
11
12
В
4. Найти оптимальное распределение X 0 средств
между n предприятиями при условии, что прибыль f (x) ,
полученная от каждого предприятия, является функцией от
вложенных в него средств x . Вложения кратны x , а
функции f (x) заданы таблично.
а)
f1 ( x )
9
17
28
38
46
68
f2 ( x)
11
33
45
51
68
80
f3 ( x)
13
29
38
49
61
81
x
1
2
3
4
5
f1 ( x )
2,2
3
4,1
5,2
5,9
f2 ( x)
2
3,2
4,8
6,2
6,4
f3 ( x)
2,8
5,4
6,4
6,6
6,9
x
1
2
3
4
5
6
f1 ( x )
0,14
0,26
0,39
0,45
0,50
0,53
f2 ( x)
0,9
0,17
0,22
0,26
0,27
0,28
f3 ( x)
0,11
0,20
0,29
0,37
0,44
0,48
x
20
40
60
80
100
120
f4 ( x)
12
35
40
54
73
92
б)
X0  5,
n  3,
x  1 .
в)
52
X0  6 ,
n  3,
x  1 .
X 0  120 ,
n  4,
x  20 .
5. Найти оптимальное распределение начальной суммы средств X 0 между двумя отраслями производства I и II в
течение n лет, если даны функции доходов g1( x) и g2 ( x)
для каждой отрасли, функции возврата 1( x) и  2 ( x ) . По
истечении года только все возвращенные средства перераспределяются, доход в производство не вкладывается.
а) X 0  40 000 ед.; n  4 ; g1 ( x)  0,4 x ; g 2 ( x)  0,3x ;
1( x)  0,5x ; 2 ( x)  0,8x .
б) X 0  20 000 ед.; n  4 ; g1 ( x)  0,7 x ; g 2 ( x)  0,6 x ;
1( x)  0,5x ; 2 ( x)  0,8x .
в) X 0  10 000 ед.; n  4 ; g1 ( x)  0,6 x ; g 2 ( x)  0,5x ;
1( x)  0,7 x ; 2 ( x)  0,8x .
6. Найти оптимальный план замены оборудования в
течение n лет, при котором прибыль от эксплуатации оборудования максимальна, если известны: P – начальная
стоимость оборудования; R(t ) – стоимость производимой
продукции на оборудовании возраста t лет; r (t ) – ежегодные затраты на эксплуатацию оборудования возраста t
лет; ликвидная стоимость  (t )  0 . Предполагается, что к
началу планового периода оборудование является новым.
а) P  10 тыс. руб., n  9 , функции R(t ) и r (t ) приведены в таблице
t
0
1
2
3
4
5
6
7
8
9
R(t)
25
24
24
23
23
23
22
22
21
20
r(t)
15
15
16
16
17
17
18
18
19
20
53
б) P  40 тыс. руб., n  5 , функции R(t ) и r (t ) приведены в таблице
t
0
1
2
3
4
5
R(t)
90
85
70
65
65
60
r(t)
30
40
45
50
55
60
в) P  20 тыс. руб., n  5 , функции R(t ) и r (t ) приведены в таблице
t
0
1
2
3
4
5
R(t)
35
30
30
25
23
22
r(t)
15
15
20
20
21
22
54
Ответы
1. а) 64; б) 114; в) 78.
2. а) 108; б) 96;
в) 116.
3. а) (1 – 4 – 5 – 11 – 12 –14); 22;
б) (1 – 4 – 7 – 10 – 11); 41;
в) (1 – 2 – 6 – 8 – 10 – 12); 45.
4. а) (0; 40; 40; 40); 97;
б) (1; 2; 2); 10,8;
в) (4; 1; 1); 1,49.
5. а) I (0; 0; 0; 20 480),
II (40 000; 32 000; 25 600; 0); 37 472.
б) I (0; 0; 0; 10 240),
II (20 000; 16 000; 12 800; 0); 34 840.
в) I (0; 0; 6 400; 4 480),
II (10 000; 8 000; 0; 0); 15 528.
6. а) оборудование следует заменить к началу третьего и к
началу шестого года;
б) оборудование следует заменить к началу четвертого
года. Максимальная прибыль равна 195;
в) оборудование следует заменить к началу четвертого
года. Максимальная прибыль равна 60.
55
Задания для контрольной работы
Найти оптимальное распределение X 0  100 средств
между четырьмя предприятиями при условии, что прибыль
fi (x) (i  1, 2, 3, 4) , полученная от каждого предприятия,
является функцией от вложенных в него средств x . Вложения кратны x  20 , а функции дохода fi (x) для каждого предприятия даны по вариантам 1-10:
1.
f1
f2
f3
f4
2.
f1
f2
20
9
11 16 13
20
9
11 13 12
40
18 19 32 27
40
17 34 28 35
60
24 30 40 44
60
29 46 37 40
80
38 44 57 69
80
38 53 49 54
100 50 59 70 73
f3
f4
100 47 75 61 73
3.
f1
f2
f3
f4
4.
f1
f2
20
7
9
17 16
20
9
12 11 14
40
29 19 27 30
40
20 25 20 23
60
37 28 37 42
60
36 34 32 40
80
41 37 48 65
80
44 46 48 50
100 59 46 66 81
f3
f4
100 57 57 61 58
56
5.
f1
f2
f3
f4
6.
f1
20
9
8
12
7
20
11 13 12 10
40
18 19 25 15
40
21 20 22 27
60
29 30 51 52
60
40 42 34 33
80
41 47 58 59
80
54 45 55 57
100 60 58 69 60
f2
f3
f4
100 62 61 60 69
7.
f1
f2
f3
f4
8.
f1
f3
f4
20
12 16
9
15
20
14 12 13
7
40
26 21 17 25
40
24 30 25 33
60
40 36 35 51
60
37 42 45 46
80
60 49 51 62
80
45 58 62 60
100 72 63 65 76
f2
f3
f2
100 58 71 70 68
9.
f1
f4
10.
f1
20
16 10 15 17
20
12 14 11 16
40
28 29 27 23
40
28 26 24 21
60
36 42 46 38
60
39 40 43 36
80
49 50 58 53
80
47 51 51 49
100 60 74 65 67
f2
f3
f4
100 69 68 68 72
57
Литература
1. Беллман Р. Динамическое программирование. –
М.: Иностранная литература, 1960.
2. Беллман Р., Дрейфус С. Прикладные задачи динамического программирования. – М.: Наука, 1965.
3. Кузнецов Ю.Н., Кузубов В.И., Волощенко А.Б.
Математическое программирование. – М.: Высшая школа,
1980.
4. Калихман И.Л., Войтенко М.А. Динамическое
программирование в примерах и задачах. – М.: Высшая
школа, 1979.
5. Деньдобренко Б.Н., Малика А.С. Автоматизация
конструирования РЭА – М.: Высшая школа, 1980.
6. Ройтенберг Я.Н. Автоматическое управление. –
М.: Наука, 1978.
7. Вентцель Е.С. Теория вероятностей. – М.: Наука,
1964.
8. Исследование операций в экономике / Под ред.
профессора Н.Ш. Кремера. – М.: Банки и биржи, ЮНИТИ,
1997.
9. Фомин Г.П. Математические методы и модели в
коммерческой деятельности. – М.: Финансы и статистика,
2005.
58
Учебное
РОМАНОВСКАЯ Адель Матвеевна
МЕНДЗИВ Марьяна Вирославовна
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
Учебное пособие
В авторской редакции
Формат 60×90/16.
Печать цифровая. Бумага офсетная.
Объем 3,8 п.л. Тираж 500
Омский институт (филиал) РГТЭУ
644009, Омск, ул. 10 лет Октября, 195, корп. 18
ISBN 978-5-91892-030-5
59
60
Download