
- •Министерство образования Российской Федерации
- •1. Линейная производственная задача
- •2. Двойственная задача
- •Задача о "расшивке узких мест производства"
- •3. Транспортная задача линейного программирования
- •4. Динамическое программирование. Распределение капитальных вложений
- •5. Динамическая задача управления производством и запасами
- •6. Матричная игра как модель конкуренции и сотрудничества
- •8. Задача о кратчайшем пути
- •9. Задача о назначениях
- •14. Матричная модель производственной программы предприятия
- •15. Принятие решений в условиях неопределенности
- •Составим матрицу рисков.
- •16. Анализ доходности и риска финансовых операций
- •17. Задача формирования оптимального портфеля ценных бумаг
4. Динамическое программирование. Распределение капитальных вложений
Динамическое программирование - это вычислительный метод для решения задач управления определенной структуры. Данная задача с n переменными представляется как многошаговый процесс принятия решений. На каждом шаге определяется экстремум функции только от одной переменной.
Предположим, что указано n пунктов, где требуется построить или реконструировать предприятия одной отрасли, для чего выделено b рублей. Обозначим через fi(xi) прирост мощности или прибыли на j-м предприятии, если оно получит xi рублей капитальных вложений. Требуется найти такое распределение (x1,x2, ... , xn) капитальных вложений между предприятиями, которое максимизирует суммарный прирост мощности или прибыли
z = f1(x1) + f2(х2) + ... + fn(xn)
при ограничении по общей сумме капитальных вложений
x1 + x2 + ... + xn = b
причем будем считать, что все переменные xj принимают только целые неотрицательные значения.
Функции fj(xj) считаются заданными. Воспользуемся методом динамического программирования для решения этой задачи.
Производственное объединение состоит из четырех предприятий (n=4). Общая сумма капитальных вложений равна 700 тыс. рублей (b=700), выделяемые предприятиям суммы кратны 100 тыс. рублей. Значения функций fj(xj) приведены в таблице 1, где, например, число 44 означает, что если третье предприятие получит 400 тыс. руб. капитальных вложений, то прирост прибыли на этом предприятии составит 44 тыс. руб.
Таблица 1
xj |
0 |
100 |
200 |
300 |
400 |
500 |
600 |
700 |
f1 (x1) |
0 |
10 |
20 |
30 |
38 |
43 |
49 |
52 |
f2 (x2) |
0 |
13 |
25 |
37 |
47 |
55 |
61 |
66 |
f3 (x3) |
0 |
16 |
27 |
37 |
44 |
48 |
50 |
49 |
f4 (x4) |
0 |
10 |
17 |
23 |
29 |
34 |
38 |
41 |
Прежде
всего заполняем табл. 2. Значения f2(x2)
складываем со значениями F1(
- x2)
= f1(-
x2)
и на каждой северо-восточной диагонали
находим наибольшее число, которое
отмечаем звездочкой и указываем
соответствующее значение
.
Заполняем таблицу 3.
Продолжая
процесс, табулируем функции F3(),
()
и т.д. В табл. 6 заполняем только одну
диагональ для значения =
700. Наибольшее число на этой диагонали:
Zmax = 84 тыс. руб.,
причем четвертому предприятию должно быть выделено
х*4
=
4
(700) = 0 тыс.
руб.
На долю остальных трех предприятий остается 700 тыс. руб. Из табл. 5 видно, что третьему предприятию должно быть выделено
x*3
=
3
(700-x*4)
=
3
(700)
= 200
тыс. руб.
Продолжая обратный процесс, находим
x*2
=
2
(700 - x*4
- x*3)
=
2
(500) = 300 тыс. руб.
На долю первого предприятия остается
x*1 = 700 - x*4 - x*3 - x*2 = 200 тыс. руб.
Таким образом, наилучшим является следующее распределение капитальных вложений по предприятиям:
x*1 =200; x*2 =300; x*3 = 200; x*4 = 0.
Оно обеспечивает производственному объединению наибольший воможный прирост прибыли 20 + 37 + 27 = 84 тыс. руб.
f1(x*1) + f2(x*2) + f3(x*3) + f4(x*4) = z max
Другим решением может служить распределение x*1 =100; x*2 =300; x*3 = 200; x*4 = 100. Оно получается, если в таблице 6 4-му предприятию выделить 100 тыс. руб. Прирост прибыли в этом случае составит также 84 тыс. руб ( 10 + 27 + 37 + 10 ).
Таблица
2
|
- x2 |
0 100 200 300 400 500 600 700 |
x2 |
F1( - x2) f2(x2) |
0 10 20 30 38 43 49 52 |
|
0 |
0 10 20 30 38 43 49 52 |
100 |
13 |
13 23 33 43 51 56 62 |
200 |
25 |
25 35 45 55 63 68 |
300 |
37 |
37 47 57 67 75 |
400 |
47 |
47 57 67 77 |
500 |
55 |
55 65 75 |
600 |
61 |
61 71 |
700 |
66 |
66 . |
Таблица 3
|
0 100 200 300 400 500 600 700 |
F2() |
0 13 25 37 47 57 67 77 |
|
0 100 200 300 300 300 300 400 |
Таблица
4
|
- x3 |
0 100 200 300 400 500 600 700 |
x3 |
F2( - x3) f3(x3) |
0 13 25 37 47 57 67 77 |
|
0 |
0 13 25 37 47 57 67 72 |
100 |
16 |
16 29 41 53 63 73 83 |
200 |
27 |
27 40 52 64 74 84 |
300 |
37 |
37 50 62 74 84 |
400 |
44 |
44 57 69 81 |
500 |
48 |
48 61 73 |
600 |
50 |
50 63 |
700 |
49 |
49 . |
Таблица 5
|
0 100 200 300 400 500 600 700 |
F3() |
0 16 29 41 53 64 74 84 |
|
0 100 100 100 100 200 200 200 |
Таблица 6
|
- x4 |
0 100 200 300 400 500 600 700 |
x4 |
F3( - x4) f4(x4) |
0 16 29 41 53 64 74 84 |
|
0 |
84 |
100 |
10 |
84 |
200 |
17 |
81 |
300 |
23 |
76 |
400 |
29 |
70 |
500 |
34 |
63 |
600 |
38 |
54 |
700 |
41 |
41 . |