![](/user_photo/713_jUvlD.jpg)
- •Курсовая работа по дисциплине «Прикладная математика»
- •1. Линейная производственная задача
- •2. Двойственная задача
- •3. Задача о «расшивке узких мест производства»
- •4. Транспортная задача линейного программирования
- •5. Динамическое программирование. Распределение капитальных вложений
- •6. Матричная игра как модель конкуренции и сотрудничества
- •Найду решение игры в смешанных стратегиях.
- •Использованная литература:
5. Динамическое программирование. Распределение капитальных вложений
Динамическое программирование - это вычислительный метод для решения задач управления определённой структуры. Данная задача с nпеременными представляется как много шаговый процесс принятия решений. На каждом шаге определяется экстремум функции только от одной переменной.
Рассмотрю нелинейную задачу распределения ресурсов между предприятиями отрасли. Предположу, что указано nпунктов, где требуется построить или реконструировать предприятия одной отрасли, для чего выделеноbрублей. Обозначу черезfj(xj) прирост мощности или прибыли наj-том предприятии, если оно получитxjрублей капитальных вложений. Требуется найти такое распределение (х1, х2, ..., хn) капитальных вложений между предприятиями, которое максимизирует суммарный прирост мощности или прибыли
Z=f1(x1)+f2(x2)+...+fn(xn)
при ограничении по общей сумме капвложений х1 + х2 +...+хn = b, причём буду считать, что все переменныеxjпринимают только целые неотрицательные значенияxj=0,1,2,...
Функции fj(xj) я считаю заданными, заметив, что их определение -довольно трудоёмкая экономическая задача.
Воспользуюсь методом динамического программирования для решения этой задачи.
Введу параметр состояния и определю функцию состояния. За параметр состояния примем количество рублей, выделяемых нескольким предприятиям, а функцию состоянияFk() определим как максимальную прибыль на первыхkпредприятиях, если они вместе получатрублей. Параметрможет меняться от 0 доb. Если изрублейk-ое предприятие получит Хкрублей, то каково бы ни было это значение, остальные-Хкрублей естественно распределить между предприятиями от 1-го до (к-1)-го предприятия, чтобы была получена максимальная прибыльFk-1(-xk). Тогда прибыльkпредприятий будет равнаfk(xk) +Fk-1(-xk). Надо выбрать такое значениеxkмежду 0 и, чтобы эта сумма была максимальной, и я прихожу к рекуррентному соотношению:
Fk() =max{fk(xk) +Fk-1(-xk)}
0 X
для k=2,3,....,n.Если жеk=1 ,то
F1()=f1().
В моем случае производственное объединение состоит из 4-х предприятий (k=4).Общая сумма капитальных вложений равна 700 тыс. рублей (b=700) , выделяемые предприятиям суммы кратны 100 тыс. рублей.
Значения функций fj(xj) приведены в таблице 1, где, например, число 29 означает, что если 3-е предприятие получит 600 тыс. руб. капитальных вложений, то прирост прибыли на этом предприятии составит 29 тыс. руб.
Таблица 1
xj |
0 |
100 |
200 |
300 |
400 |
500 |
600 |
700 |
f1(xj) |
0 |
5 |
10 |
14 |
17 |
19 |
21 |
22 |
f2(xj) |
0 |
8 |
13 |
18 |
21 |
23 |
21 |
17 |
f3(xj) |
0 |
10 |
16 |
21 |
24 |
27 |
29 |
30 |
f4(xj) |
0 |
11 |
19 |
26 |
30 |
33 |
35 |
36 |
Прежде всего заполняю таблицу 2. Значения f2(x2) складываю со значениямиF1(-x2)=f1(-x2) и на каждой северо-восточной диагонали нахожу наибольшее число, которое помечаю звёздочкой и указываю соответствующее значениеx2(). Заполняю таблицу 3. Продолжая процесс, табулирую функцииF3(),x3() (см. табл.4 и 5) и т.д. В таблице 6 заполняю только одну диагональ для значения=700.
Таблица 2
|
0 |
100 |
200 |
300 |
400 |
500 |
600 |
700 | |
X2 |
F(-x2) f2(x2) |
0 |
5 |
10 |
14 |
17 |
19 |
21 |
22 |
0 |
0 |
0 |
5 |
10 |
14 |
17 |
19 |
21 |
22 |
100 |
8 |
8* |
13* |
18* |
22 |
25 |
27 |
29 |
--- |
200 |
13 |
13* |
18* |
23* |
27 |
30 |
32 |
--- |
--- |
300 |
18 |
18* |
23* |
28* |
32* |
35* |
--- |
--- |
--- |
400 |
21 |
21 |
26 |
31 |
35* |
--- |
--- |
--- |
--- |
500 |
23 |
23 |
28 |
33 |
--- |
--- |
--- |
--- |
--- |
600 |
21 |
21 |
26 |
--- |
--- |
--- |
--- |
--- |
--- |
700 |
17 |
17 |
--- |
--- |
--- |
--- |
--- |
--- |
--- |
Таблица 3
|
0 |
100 |
200 |
300 |
400 |
500 |
600 |
700 |
F2() |
0 |
8 |
13 |
18 |
23 |
28 |
32 |
35 |
x2() |
0 |
100 |
100 |
100 |
200 |
300 |
300 |
300 |
x2() x2() |
0 0 |
100 100 |
200
|
200 300 |
300
|
300 300 |
300 300 |
400
|
Таблица 4
|
0 |
100 |
200 |
300 |
400 |
500 |
600 |
700 | |
Х3 |
F(-x3) f2(x3) |
0 |
8 |
13 |
18 |
23 |
28 |
32 |
35 |
0 |
0 |
0 |
8 |
13 |
18 |
23 |
28 |
32 |
35 |
100 |
10 |
10* |
18* |
23 |
28 |
33 |
38 |
42 |
--- |
200 |
16 |
16 |
24* |
29* |
34* |
39* |
44* |
--- |
--- |
300 |
21 |
21 |
29* |
34* |
39* |
44* |
--- |
--- |
--- |
400 |
24 |
24 |
32 |
37 |
42 |
--- |
--- |
--- |
--- |
500 |
27 |
27 |
35 |
40 |
--- |
--- |
--- |
--- |
--- |
600 |
29 |
29 |
37 |
--- |
--- |
--- |
--- |
--- |
--- |
700 |
30 |
30 |
--- |
--- |
--- |
--- |
--- |
--- |
--- |
Таблица 5
|
0 |
100 |
200 |
300 |
400 |
500 |
600 |
700 |
F3() |
0 |
10 |
18 |
24 |
29 |
34 |
39 |
44 |
X3() |
0 |
100 |
100 |
200 |
200 |
200 |
200 |
200 |
X3() |
0 |
100 |
100 |
200 |
300 |
300 |
300 |
300 |
Таблица 6
|
0 |
100 |
200 |
300 |
400 |
500 |
600 |
700 | |
Х4 |
F(-x4) f2(x4) |
0 |
10 |
18 |
24 |
29 |
34 |
39 |
44 |
0 |
0 |
|
|
|
|
|
|
|
44 |
100 |
11 |
|
|
|
|
|
|
50 |
--- |
200 |
19 |
|
|
|
|
|
53 |
--- |
--- |
300 |
26 |
|
|
|
|
55 |
--- |
--- |
--- |
400 |
30 |
|
|
|
54 |
--- |
--- |
--- |
--- |
500 |
33 |
|
|
51 |
--- |
--- |
--- |
--- |
--- |
600 |
35 |
|
45 |
--- |
--- |
--- |
--- |
--- |
--- |
700 |
36 |
36 |
--- |
--- |
--- |
--- |
--- |
--- |
--- |
Наибольшее число на этой диагонали:
Zmax = 55 тыс. руб.,
причем четвертому предприятию должно быть выделено
х4* = х4(700) = 300 тыс. руб.
На долю остальных трех предприятий остается 400 тыс. руб. Из Таблицы 5 видно, что третьему предприятию должно быть выделено
х3* = х3(700 - х4*) = х3(400) = 200 тыс. руб.
Продолжая обратный процесс, нахожу
х2* = х2(700 - х4* - х3*) = х2(200) = 100 тыс. руб.
На долю первого предприятия останется
х1* = 700 - х4* - х3* - х2* = 100 тыс. руб.
Таким образом, наилучшим является следующее распределение капитальных вложений по предприятиям:
х1* = 100; |
Zmax = 55 |
х2* = 100; | |
х3* = 200; | |
х4* = 300 |
Этот план обеспечивает производственному объединению наибольший возможный прирост прибыли 55 тыс. руб. В качестве проверки правильности решения задачи можно использовать равенство
f1(x*1) + f2(x*2) + f3(x*3) + f4(x*4) = Zmax
f1(100) + f2(100) + f3(200) + f4(300) = 5 + 8 + 16 + 26 = 55 = Zmax
Следовательно, полученные решения верны.