Динамическая задача управления производством
|
Рассмотрим трехэтапную систему управления запасами с дискретной продукцией и динамическим детерминированным спросом.
Пусть спрос (заявки) потребителей на нашу продукцию составляют: на первый этап d1=5 единицы, на второй – d2=2, на третий - d3=3 единицы. К началу первого этапа на складе имеется только 4 единицы продукции, т.е. начальный уровень запаса равен y1=4. Затраты на хранение единицы продукции на разных этапах различны и составляют соответственно h1=4, h2=5, h3=6. Затраты на производство xj единиц продукции на j-м этапе определяются функцией
jj(xj) =2xj2 + 2xj + 2 (1)
т.е. а=2; b=2; с=2. Требуется указать, сколько единиц продукции на отдельных этапах следует производить, чтобы заявки потребителей были удовлетворены, а наши общие затраты на производство и хранение за все три этапа были наименьшими.
Решение.
Представим исходные данные задачи в виде таблицы:
Таблица 12.
Период К | 1 2 3 |
Спрос dK, ед | 5 2 2 |
Затраты на производство АК , руб. | 2 2 2 |
Затраты на хранение hK , руб. | 4 5 6 |
Воспользовавшись рекуррентными соотношениями, последовательно вычисляем
F1 (x = y2), F2 (x = y3), F3 (x = y4), и соответственно находим 1 (x= y2),
2 (x = y3 ), 3 (x = y4)
Положим k = 1. Тогда имеем
(2)
Учтем, что параметр состояния x = у2 может принимать целые значения на отрезке
0 у2 d2 + d3 (3)
0 y2 2 + 2
т.е.
у2 = 0, 1, 2, 3, 4.
При этом каждому значению параметра состояния должна отвечать определенная область изменения переменной x1, а именно
0 х1 2 + у2 (4)
На первом этапе спрос d1 = 5, исходный запас у1 = 4. Из балансового уравнения
х1 + у1 - d1 = у2 (5)
непосредственно следует, что объем производства связан со значением параметра состояния x= у2 соотношением
x1 = y2 + d1 - y1 = y2 + 5 - 4 = y2 + 1 (6)
Если задан уровень запаса к началу первого этапа, то каждому значению у2 отвечает единственное значение х1 и потому
F1(x = y2) = W1 (x1, y2) = ах12 + bx1 + c + h1y2 (7)
|
y2 = 0, x1 = 1, W1 (0;0) = 2 ∙ 12 + 2 × 1 + 2 + 4 × 0 = 6
y2 = 1, x1 = 2, W1 (1;1) = 2 ∙ 22 + 2 × 2 + 2 + 4 × 1 = 18
y2 = 2, x1 = 3, W1 (2;2) = 2 ∙ 32 + 2 ∙ 3 + 2 + 4 ∙ 2 = 34
y2 = 3, x1 = 4, W1 (3;3) = 2 ∙ 42 + 2 ∙ 4 + 2 + 4 ∙ 3 = 54
y2 = 4, x1 = 5, W1 (4;4) = 2 ∙ 52 + 2 ∙ 5 + 2 + 4 ∙ 4 = 78
Значения функции состояния F1(x ) представлены в табл. 13.
Таблица 13.
x = y2 | |||||
F1 (x = y2) | |||||
x1(x=y2) |
Переходим ко второму этапу. Полагаем k = 2 и табулируем функцию
F2(x = y3).
(8)
Здесь минимум берется по единственной переменной х2, которая может изменяться в пределах
0 £ x2 £ d2 + y3 или 0 £ x2 £ 2 + y3 (9)
где верхняя граница зависит от параметра состояния x = у3, который, принимает значения на отрезке
0 £ y3 £ d3 , т.е. 0 £ y3 £ 2 (10)
а аргумент у2 в последнем слагаемом справа в соотношении (8) связан с х2 и у3 балансовым уравнением
x2 + y2 - d2 = y3
откуда следует
y2 = y3 + d2 - x2 = y3 + 2 - x2 (11)
Придавая параметру состояния различные значения от 0 до 2, будем последовательно вычислять W2 (x2, x), а затем определять F2(x ) и 2(x ).
Положим, например x = у3 = 2. Тогда, согласно (9),
0 £ x2 £ 4,
т.е. переменная х2 может принимать значения: 0, 1, 2, 3, 4, а каждому значению х2 отвечает определенное значение у2, вычисляемое по формуле (11):
у2 = 4 - х2
Последовательно находим:
если x2 = 0, то y2 = 4-0 = 4, W2 (0,2) = 2∙02 + 2×0 + 2 + 5×2 + F1(4) = 12 + 78 = 90,
x2 = 1, y2 = 4-1 = 3, W2 (1,2) =2∙12 + 2×1+ 2 + 5×2 + F1(3) = 16 + 54 = 70,
x2 = 2, y2 = 4-2 = 2, W2 (2,2) =2∙22 +2×2 + 2 + 5×2 + F1(2) = 24 + 34 = 58,
x2 = 3, y2 = 4-3 = 1, W2 (3,2) =2∙32+2×3 + 2 + 5×2 + F1(1) = 36 + 18 = 54*,
x2 = 4, y2 = 4-4 = 0, W2 (4,2) = 2∙42 + 2×4 + 2 + 5×2 + F1(0) = 52+ 6 = 58.
|
F2 (x = y3 = 2) = min W2 (x2,2) = min (90, 70, 58, 54, 58) = 54,
x2
причем минимум достигается при значении х2, равном
` 2 (x = y3 = 2) = 3
Аналогично для всех остальных значений у3 = 0, 1.
F2 (x = y3 = 0) = 20; ` 2 (x = y3 = 0) = 2.
F2 (x = y3 = 1) = 32; ` 2 (x = y3 = 1) = 2.
Процесс табулирования функции F2 (x = y3) приведен в табл. 14, а результаты табулирования сведены в табл. 15.
Таблица 15.
x= у3 | |||
F2 (x= y3) | |||
(x= y3) |
Переходим к следующему этапу. Полагаем k=3 и табулируем функцию
F3 (x = y4):
Вычисляем значение функции состояния только для одного значения аргумента x = у4 = 0, так как не хотим оставлять продукцию в запас в конце исследуемого периода. Процесс вычислений приведен в табл. 16. Получаем
F3 (x = y4) = min W3 (x3,0) = min (56, 38, 34) = 34,
x3
минимум достигается при значении переменной х3, равной
` 3 (x = y4 = 0) = 2.
Таким образом, мы получили не только минимальные общие затраты на производство и хранение продукции, но и последнюю компоненту оптимального решения. Она равна
= 2.
Остальные компоненты оптимального решения найдем по обычным правилам метода динамического программирования. Чтобы найти предпоследнюю компоненту, учтем, что
х3 + у3 - d3 = y4
или
2 + у3 - 2 = 0,
откуда
у3 = 0.
Из таблицы 15 находим значение
Аналогично, продолжая двигаться в обратном направлении и учитывая, что
х2 + у2 - d2 = y3
|
2 + у2 - 2 = 0,
получаем
у2 = 0;
из таблицы 13 находим значение х1(x)
.
Итак, оптимальный план производства имеет вид
х1 = 1
х2 = 2
х3 = 2,
а минимальные общие затраты составляют 34 единицы.
Сделаем проверку полученного результата. Для этого по исходным данным и найденному плану производства заполняем таблицу 17 и убеждаемся, что заявки потребителей на каждом этапе выполняются
у1 + х1 ³ d1 у2 + х2 ³ d2 у3 + х3 ³ d3
4 + 1 ³ 5 0 + 2 ³ 2 0 + 2 ³ 2
и что суммарный объем производства и имевшегося к началу первого этапа запаса продукции равен суммарной потребности
у1 + х1 + х2 + х3 = d1 + d2 + d3
4 + 1 + 2 + 2 = 5 + 2 + 2
причем это достигается при наименьших возможных затратах на производство и хранение продукции
j(х1) + j(х2) + j(х3) + h1у2 + h2у3 = F3(y4=0)
(2∙12 + 2∙1 + 2) + (2∙22 + 2∙2 + 2) + (2∙22 + 2∙2 + 2) + 4∙0 + 5∙0 =
= 6 + 14 + 14 + 0 + 0 = 34
| xk | yk = yk+1 + dk - xk | Wk(xk, yk+1) =jk(xk) + hkyk+1 + Fk-1(yk) | ||||||||
0 £ y3 £ d3 | x = y3 | 0 £ x2 £ d2 + y3 | X2 | y2 = y3 + d2 - x2 | W2(x2, y3) = a + bx2 + c + h2y3 + F1(y2) | ||||||
0 £ y3 £ 2 | x = y3 | 0 £ x2 £ 2 + y3 | X2 | y2 = y3 + 2 - x2 | |||||||
y3 = 0 | 0 £ x2 £ 2 | X2 = 0 X2 = 1 X2 = 2 | y2 = 2 - 0 = 2 y2 = 2 - 1 = 1 y2 = 2 - 2 = 0 | W2(0;0) = 2∙02 + 2×0 + 2 + 5×0 + F1(2) = 2 + 34 =36 W2(1;0) = 2∙12 + 2×1 + 2 +5×0 + F1(1) = 6 + 18 =24 W2(2;0) = 2∙22 +2×2 + 2 + 5×0 +F1(0) = 14 + 6 =20* | |||||||
y3 = 1 | 0 £ x2 £ 3 | X2 = 0 X2 = 1 X2 = 2 X2 = 3 | y2 = 1 + 2 - 0 = 3 y2 = 1 + 2 - 1 = 2 y2 = 1 + 2 - 2 = 1 y2 = 1 + 2 - 3 = 0 | W2(0;1) = 2∙02 + 2×0 + 2 + 5×1 + F1(3) = 6+54=60 W2(1;1) = 2∙12 + 2×1 + 2 + 5×1 + F1(2) =11+34 =45 W2(2;1) = 2∙22 + 2×2 + 2 + 5×1 + F1(1)=20+18 =38* W2(3;1) = 2∙32 + 2×3 + 2 + 5×1 + F1(0)=33+6 =39 | |||||||
y3 = 2 | ....................... | ........ | ............................ | ............................................................. |
| |||||
| |||||
| |||||
xk | yk = yk+1 + dk - xk | Wk(xk, yk+1) = jk(xk) + hkyk+1 + Fk-1(yk) | |||
0 £ y4 £ 0 | x = y4 | 0 £ x3 £ d3 + y4 | x3 | y3 = y4 + d3 - x3 | W3(x3, y4) = a + bx3 + c + h3y4 + F2(y3) |
y4 = 0 | x = y4 | 0 £ x3 £ 2 | x3 | y3 = y4 + 2 - x3 | |
y4 = 0 | 0 £ x3 £ 2 | x3 = 0 x3 = 1 x3 = 2 | y3 = 2 - 0 = 2 y3 = 2 - 1 = 1 y3 = 2 - 2 = 0 | W3(0;0) = 2∙02 + 2×0 + 2 + 6×0 + F2(2)=2+54=56 W3(1;0) = 2∙12 + 2×1 + 2 + 6×0 + F2(1)=6+32=38 W3(2;0) = 2∙22 + 2×2 + 2 + 6×0 + F2(0)=14+20=34 |
Самопроверка результатов Таблица 17.
Этапы | январь | февраль | март | Итого за 3 месяца |
Имеем продукции к началу месяца, шт. | у1 = 4 | у2 = 0 | у3 = 0 | у1 = 4 |
Производим в течение месяца, шт. | х1 = 1 | х2 = 2 | х3 = 2 | х1+ х2+ х3 = 5 |
Отпускаем заказчикам, шт. | d1 = 5 | d2 = 2 | d3 = 2 | d1+ d2+ d3 = 9 |
Остаток к концу месяца (храним в течение текущего месяца), шт. | у2 = 0 | у3 = 0 | у4 = 0 | |
Затраты на производство, руб. | j(х1)=6 | j(х2)=14 | j(х3)=14 | j(х1) + j(х2) + j(х3) = 34 |
Затраты на хранение, руб. | h1у2 = 0 | h2у3 = 0 | h1у2 + h2у3 = 0 |
Задача №6