Экономический смысл элементов таблицы.

Пример: 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. РЕШЕНИЕ МНОГОКРИТЕРИАЛЬНОЙ ЗАДАЧИ МЕТОДОМ ПОСЛЕДОВАТЕЛЬНЫХ УСТУПОК.

Трехкритериальная задача:

{
z1 = c11x1 + c12x2 ® max

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

1 + 3x2 £ 64

-6x1 - 7x2 £ -87

x1 ³ 0, x2 ³ 0

 
 
{

x1 + 4x2 £ 40 (1)

1 + 3x2 £ 64 (2)

6x1 + 7x2 ³ 87 (3)

x1 ³ 0, x2 ³ 0

{
Максимизируем z1 при условиях (1) - (3) и графически решаем. Решение -точка А, найдём её координаты:

х1 = 0 х1* = 0

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 и вводим новое ограничение

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


Наши рекомендации