Экономический смысл элементов таблицы.
Пример: p2 = -2 – 2-й поставщик получает 2 денежные единицы за доставку 90 единиц продукции. q2 = 2 - 2 денежные единицы платит второй потребитель за доставку ему 156 единиц продукции.
IX. РЕШЕНИЕ ЗАДАЧИ РАСПРЕДЕЛЕНИЯ КАПВЛОЖЕНИЙ МЕТОДОМ ДИНАМИЧЕСКОГО ПРОГРАММИРОВАНИЯ.
Динамическое программирование - это вычислительный метод для решения задач управления определённой структуры. Данная задача с n переменными представляется как много шаговый процесс принятия решений. На каждом шаге определяется экстремум функции только от одной переменной.
Рассмотрим нелинейную задачу распределения ресурсов между предприятиями отрасли. Предположим, что указано n пунктов, где требуется построить или реконструировать предприятия одной отрасли, для чего выделено b рублей. Обозначим через fj(xj) прирост мощности или прибыли на j-том предприятии, если оно получит xj рублей капвложений. Требуется найти такое распределение (х1, х2, ..., хn) капвложений между предприятиями, которое максимизирует суммарный прирост мощности или прибыли
Z=f1(x1)+f2(x2)+...+fn(xn)
при ограничении по общей сумме капвложений
х1 + х2 +...+хn = b
причём будем считать, что все переменные xj принимают только целые значения xj =1,2,...
Функции fj(xj) мы считаем заданными, заметив, что их определение -довольно трудоёмкая экономическая задача.
Воспользуемся методом динамического программирования для решения этой задачи.
Введём параметр состояния и определим функцию состояния. За параметр состояния x примем количество рублей, выделяемых нескольким предприятиям, а функцию состояния Fk(x) определим как максимальную прибыль на первых k предприятиях, если они вместе получат x рублей. Параметр x может меняться от 0 до b. Если из x рублей k-ое предприятие получит Хк рублей, то каково бы ни было это значение, остальные x-Хк рублей естественно распределить между предприятиями от 10-го до (к-1)-го предприятия, чтобы была получен максимальная прибыль Fk-1(x-xk). Тогда прибыль k предприятий будет равна fk(xk) + Fk-1(x-xk). Надо выбрать такое значение xk между 0 и x, чтобы эта сумма была максимальной, и мы приходим к рекуррентному соотношению:
Fk(x) = max {fk(xk) + Fk-1(x-xk)}
0 £ X £ x
для k=2,3,....,n .Если же k=1 ,то
F1(x)=f1(x).
Рассмотрим конкретный пример. Пусть производственное объединение состоит из 4-х предприятий (k=4).Общая сумма капвложений равна 700 тыс. рублей (b=700) , выделяемые предприятиям суммы кратны 100 тыс. рублей.
Значения функций fj(xj) приведены в табл. 1.
Прежде всего заполняем табл.3. Значения f2(x2) складываем со значениями F1(x-x2)=f1(x-x2) и на каждой побочной диагонали находим наибольшее число, которое помечаем звёздочкой. Заполняем табл .3.
Продолжая процесс табулируем функции F3(x), x3(x) и т.д. В табл.6 заполняем только одну диагональ для значения x=700.
Таблица 1.
Xj | ||||||||
f1(xj) | ||||||||
f2(xj) | ||||||||
f3(xj) | ||||||||
f4(xj) |
Таблица 2.
x-х2 | |||||||||
х2 | |||||||||
--- | |||||||||
--- | --- | ||||||||
--- | --- | --- | |||||||
--- | --- | --- | --- | ||||||
--- | --- | --- | --- | --- | |||||
--- | --- | --- | --- | --- | --- | ||||
--- | --- | --- | --- | --- | --- | --- |
Таблица 3.
x | ||||||||
F2(x) | ||||||||
x2(x) | ||||||||
x2(x) |
Таблица 4.
x-x3 | |||||||||
x3 | |||||||||
0* | 15* | 26* | 38* | ||||||
49* | 59* | 74* | --- | ||||||
67* | 74* | --- | --- | ||||||
74* | --- | --- | --- | ||||||
--- | --- | --- | --- | ||||||
--- | --- | --- | --- | --- | |||||
--- | --- | --- | --- | --- | --- | ||||
--- | --- | --- | --- | --- | --- | --- |
Таблица 5.
x | ||||||||
F3(x) | ||||||||
x3(x) | ||||||||
x3(x) | ||||||||
x3(x) |
Таблица 6.
x-x4 | |||||||||
x4 | |||||||||
93* | |||||||||
Наибольшее число диагонали в табл.6 :
Zmax = 93 тыс. рублей
X4* = X(700) = 200
X3*+X2*+X1*=700–200=500
В табл.5:
где сумма равна 500
Х3* = 100
Х1*+Х2*=500-100=400
В табл.3.
где сумма равна 400
Х2*=100
Х1*=400-100=300
Оптимальная программа: 1) Х1*=300 ; Х2*=100 ;
Х3*=100 ; Х4*=200
Zmax(X1*;... X4*)=38+10+11+34=93 так как выполнилось равенство
Zmax(X1*;... X4*) = 101 эта программа оптимальна
Ответ: Оптимальная производственная программа имеет вид:
Х1* = 300 ; Х2* = 100 ; Х3* = 100 ; Х4* = 200 , при этом максимальная прибыль составляет 93 тыс. руб.
X. РЕШЕНИЕ МНОГОКРИТЕРИАЛЬНОЙ ЗАДАЧИ МЕТОДОМ ПОСЛЕДОВАТЕЛЬНЫХ УСТУПОК.
Трехкритериальная задача:
|
z2 = c21x1 + c22x2 ® max
z2 = c31x1 + c32x2 ® max
|
а11x1 + a12x2 £ b1
a21x1 + a22x2 £ b2
a31x1 + a32x2 £ b3
x1 ³ 0,x2 ³ 0
Исходные данные задачи имеют вид:
Δ1 | ||
Δ2 | ||
-- | ||
-6 | -7 | -87 |
|
z1 = 1x1 + 7x2 ® max
z2 = 4x1 + 4x2 ® max
z2 = 8x1 + 2x2 ® max
|
x1 + 4x2 £ 40
5х1 + 3x2 £ 64
-6x1 - 7x2 £ -87
x1 ³ 0, x2 ³ 0
|
x1 + 4x2 £ 40 (1)
5х1 + 3x2 £ 64 (2)
6x1 + 7x2 ³ 87 (3)
x1 ³ 0, x2 ³ 0
|
х1 = 0 х1* = 0
6х1 + 7х2 = 87 х2* =20
Z1*max = 140
Пусть Δ1 = 56, тогда Z1* - Δ1 = 84 и вводим новое ограничение
х1 + 7х2 ³ 84 (4)
Максимизируем Z2 при условиях (1)-(3) и (4). Решение - точка В.
|
х1 + 4х2 = 80 х1* = 0,97
5x1 + 3х2 = 64 х2* = 19,76
Z2*max = 4*0,97 + 4*19,76 = 82,87
Пусть Δ2 = 18.87, тогда Z2* - Δ2 = 82,88-18,87 = 64 и вводим новое ограничение
4х1 + 4х2 ³ 64 (5)
Максимизируем z3 при условиях (1)-(3) и (5). Решение - точка С. Её координаты х1* = 6,09 ; х2* = 11,13
Получаем оптимальное решение трёхкритериальной задачи при х1 = 6,09 и х2 = 11,13.
Z1 max = 1*6,09 + 7*11,13 = 84
Z2 max = 4*6,09 + 4*11,13 = 68,88
Z3 max = 8*6,09 + 2*11,13 = 70,98