前言
工厂每月需要生产一定量的产品,在满足订单需求的同时库存不能超过最大库存量。因此,重点在于保持每月生产量与库存量之和不少于订单需求也不能超过最大库存量。一般问题为多个生产周期的累计库存成本最低。
一、具体问题
工厂生产某种产品,1-7月份生产成本和产品需求量情况如下表:
为了调节生产和需求,工厂设有一个产品仓库,库容量
H
=
9
H =9
H=9。已知期初库存量为2,要求期末(7月底)库存量为0。每个月生产的产品在月末入库,月初根据当月需求发货。求七个月的生产量,能满足各月的需求,并使生产成本最低。
二、建模
1.阶段、状态变量、决策变量(执行的动作)、决策允许集合、状态转移方程、阶段指标、终端方程、递推方程
阶段
k
k
k:月份,
k
=
1
,
2
,
…
,
7
,
8
k=1,2,\dots,7,8
k=1,2,…,7,8;
状态变量
x
k
x_k
xk:第
k
k
k个月初(发货以前)的库存量;
决策变量
d
k
d_k
dk:第
k
k
k个月的生产量;
决策允许集合:
D
k
(
x
k
)
=
{
d
k
∣
d
k
≥
0
,
r
k
+
1
≤
x
k
+
1
≤
H
}
=
{
d
k
∣
d
k
≥
0
,
r
k
+
1
≤
x
k
−
r
k
+
d
k
≤
H
}
\begin{aligned} D_k(x_k)&=\{d_k | d_k\geq0, r_{k+1}\leq x_{k+1}\leq H \}\\ &=\{d_k | d_k\geq 0, r_{k+1}\leq x_k-r_k+d_k\leq H \} \end{aligned}
Dk(xk)={dk∣dk≥0,rk+1≤xk+1≤H}={dk∣dk≥0,rk+1≤xk−rk+dk≤H}
状态转移方程:
x
k
+
1
=
x
k
−
r
k
+
d
k
x_{k+1}= x_k-r_k+d_k
xk+1=xk−rk+dk;
阶段指标:
v
k
(
x
k
,
d
k
)
=
c
k
d
k
v_k(x_k ,d_k) = c_kd_k
vk(xk,dk)=ckdk;(这里认为库存成本只由当月生产量决定,上个月生产的在本月初已经全部发出,这个月生产的也将在下个月初全部发完,这样做可以控制成本最小)
终端条件:
f
8
(
x
8
)
=
0
,
x
8
=
0
f_8(x_8)=0, x_8=0
f8(x8)=0,x8=0;
递推方程:
f
k
(
x
k
)
=
m
i
n
d
k
∈
D
k
(
x
k
)
{
v
k
(
x
k
,
d
k
)
+
f
k
+
1
(
x
k
+
1
)
}
=
m
i
n
d
k
∈
D
k
(
x
k
)
{
c
k
d
k
+
f
k
+
1
(
x
k
−
r
k
+
d
k
)
}
f_k(x_k)= \mathop{ min} \limits_{d_k\in D_k(x_k)} \{v_k(x_k ,d_k)+f_{k+1}(x_k+1)\}\\ = \mathop{ min} \limits_{d_k\in D_k(x_k)} \{c_kd_k+f_{k+1}(x_k-r_k+d_k)\}
fk(xk)=dk∈Dk(xk)min{vk(xk,dk)+fk+1(xk+1)}=dk∈Dk(xk)min{ckdk+fk+1(xk−rk+dk)}
2.求解基本方程
- 对于
k
=
7
k=7
k=7,由于
x
8
=
0
x_8=0
x8=0,有
d
7
=
0
d_7=0
d7=0(月初供货,且7月末库存为0,看红色字体要求)
递推方程为:
f 7 ( x 7 ) = m i n { c 7 d 7 + f 8 ( x 8 ) } = 0 ( d 7 ∗ = 0 ) \begin{aligned} f_7(x_7)&=min \quad \{c_7d_7+f_8(x_8)\}\\ &=0 \quad (d_7^*=0) \end{aligned} f7(x7)=min{c7d7+f8(x8)}=0(d7∗=0) - 对于 k = 6 k=6 k=6,由于 d 7 = 0 d_7=0 d7=0,由 x 8 = x 7 − r 7 + d 7 = 0 x_8=x_7-r_7+d_7=0 x8=x7−r7+d7=0,故 x 7 = r 7 = 4 , x 6 − r 6 + d 6 = x 7 = 4 x_7=r_7=4, x_6 - r_6 + d_6 = x_7 = 4 x7=r7=4,x6−r6+d6=x7=4。因此 d 6 = x 7 + r 6 − x 6 = 4 + 7 − x 6 = 11 − x 6 d_6 = x_7+r_6-x_6 = 4 +7-x_6 = 11-x_6 d6=x7+r6−x6=4+7−x6=11−x6是唯一的决策,于是递推方程为: f 6 ( x 6 ) = m i n d 6 = 11 − x 6 c 6 d 6 + f 7 ( x 7 ) = 10 d 6 = 10 ( 11 − x 6 ) = 110 − 10 x 6 f_6(x_6) = \mathop{min}\limits_{d_6=11-x_6} { c_6d_6+f_7(x_7) } =10d_6=10(11-x_6)=110-10x_6 f6(x6)=d6=11−x6minc6d6+f7(x7)=10d6=10(11−x6)=110−10x6
-
k
=
5
:
d
5
∈
D
5
(
x
5
)
k = 5: d_5\in D_5(x_5)
k=5:d5∈D5(x5)
与前面不同, x 6 x_6 x6是不确定的,因此下面的成本无法直接转化为 x 5 x_5 x5的函数,需要讨论 x 5 x_5 x5和 d 5 d_5 d5的关系。
f 5 ( x 5 ) = m i n { c 5 d 5 + f 6 ( x 6 ) } = m i n { 20 d 5 + 110 − 10 x 6 } = m i n { 20 d 5 + 110 − 10 ( x 5 − r 5 + d 5 ) } = m i n { 10 d 5 − 10 x 5 + 130 } \begin{aligned} f_5(x_5) &= min \{ c_5d_5 + f_6(x_6) \}\\ & = min \{ 20d_5+110-10x_6 \}\\ &= min \{ 20d_5+110-10(x_5-r_5+d_5) \}\\ &= min\{ 10d_5-10x_5+130 \}\\ \end{aligned} f5(x5)=min{c5d5+f6(x6)}=min{20d5+110−10x6}=min{20d5+110−10(x5−r5+d5)}=min{10d5−10x5+130}
其中
D 5 ( x 5 ) = { d 5 ∣ d 5 ≥ 0 , r 6 ≤ x 5 − r 5 + d 5 ≤ H } = { d 5 ∣ d 5 ≥ 0 , r 6 + r 5 − x 5 ≤ d 5 ≤ H + r 5 − x 5 } = { d 5 ∣ d 5 ≥ 0 , 9 − x 5 ≤ d 5 ≤ 11 − x 5 } \begin{aligned} D_5(x_5) &=\{d_5| d_5\geq 0, r_6\leq x_5-r_5+d_5\leq H \}\\ &=\{d_5|d_5\geq0, r_6+r_5-x_5\leq d_5\leq H+r_5-x_5\}\\ &=\{d_5| d_5\geq0, 9-x_5\leq d_5\leq11-x_5\}\\ \end{aligned} D5(x5)={d5∣d5≥0,r6≤x5−r5+d5≤H}={d5∣d5≥0,r6+r5−x5≤d5≤H+r5−x5}={d5∣d5≥0,9−x5≤d5≤11−x5}
因为 x 5 ≤ H = 9 x_5 \leq H = 9 x5≤H=9,因此 9 − x 5 ≥ 0 9-x_5\geq0 9−x5≥0,决策允许集合可以简化为 D 5 ( x 5 ) = { d 5 ∣ 9 − x 5 ≤ d 5 ≤ 11 − x 5 } D_5(x_5)=\{d_5| 9-x_5 \leq d_5\leq11-x_5 \} D5(x5)={d5∣9−x5≤d5≤11−x5}递推方程成为:
f 5 ( x 5 ) = m i n 9 − x 5 ≤ d 5 ≤ 11 − x 5 { 10 d 5 − 10 x 5 + 130 } = 10 ( 9 − x 5 ) − 10 x 5 + 130 = 220 − 20 x 5 d 5 ∗ = 9 − x 5 \begin{aligned} f_5(x_5) &= \mathop{min}\limits_{9-x_5\leq d_5\leq11-x_5} \{10d_5-10x_5+130 \} \\&= 10(9-x_5) -10x_5+130\\&= 220 -20x_5 \\&d_5^*= 9-x_5 \end{aligned} f5(x5)=9−x5≤d5≤11−x5min{10d5−10x5+130}=10(9−x5)−10x5+130=220−20x5d5∗=9−x5 -
k
=
4
:
d
4
∈
D
4
(
x
4
)
k=4:d_4\in D_4(x_4)
k=4:d4∈D4(x4) 上一步的
d
5
d_5
d5不是确定唯一的。
f 4 ( x 4 ) = m i n { c 4 d 4 + f 5 ( x 5 ) } = m i n { 17 d 4 + 220 − 20 x 5 } = m i n { 17 d 4 + 220 − 20 ( x 4 − r 4 + d 4 ) } = m i n { 17 d 4 + 220 − 20 ( x 4 − 3 + d 4 ) } = m i n { − 3 d 4 − 20 x 4 + 280 } \begin{aligned}f_4(x_4) &= min \{ c_4d_4+f_5(x_5) \}\\&= min \{ 17d_4 + 220 - 20x_5 \} \\ &= min\{17d_4+220-20(x_4-r_4+d_4)\}\\&= min\{17d_4+220-20(x_4-3+d_4)\}\\&= min \{-3d_4-20x_4+280\}\end{aligned} f4(x4)=min{c4d4+f5(x5)}=min{17d4+220−20x5}=min{17d4+220−20(x4−r4+d4)}=min{17d4+220−20(x4−3+d4)}=min{−3d4−20x4+280}其中
D 4 ( x 4 ) = { d 4 ∣ d 4 ≥ 0 , r 5 ≤ x 4 − r 4 + d 4 ≤ H } = { d 4 ∣ d 4 ≥ 0 , r 5 + r 4 − x 4 ≤ d 4 ≤ H + r 4 − x 4 } = { d 4 ∣ d 4 ≥ 0 , 5 − x 4 ≤ d 4 ≤ 12 − x 4 } = { d 4 ∣ m a x [ 0 , 5 − x 4 ] ≤ d 4 ≤ 12 − x 4 } \begin{aligned} D_4(x_4) &= \{d_4| d_4\geq0, r_5\leq x_4-r_4+d_4\leq H \} \\& = \{d_4| d_4\geq0, r_5+r_4-x_4\leq d_4\leq H+r_4-x_4 \}\\&= \{d_4| d_4\geq0, 5-x_4\leq d_4\leq 12-x_4 \}\\&= \{d_4| max[0,5-x_4]\leq d_4\leq 12-x_4 \}\end{aligned} D4(x4)={d4∣d4≥0,r5≤x4−r4+d4≤H}={d4∣d4≥0,r5+r4−x4≤d4≤H+r4−x4}={d4∣d4≥0,5−x4≤d4≤12−x4}={d4∣max[0,5−x4]≤d4≤12−x4}
由于 f 4 ( x 4 ) f_4(x_4) f4(x4)的表达式中 d 4 d_4 d4的系数是 -3,因此 d 4 d_4 d4在决策允许集合中应取集合中的最大值,即 d 4 ∗ = 12 − x 4 d_4^*=12-x_4 d4∗=12−x4。由此 f 4 ( x 4 ) = − 3 ( 12 − x 4 ) − 20 x 4 + 280 = − 17 x 4 + 244 f_4(x_4) = -3(12-x_4) - 20x_4+280 = -17x_4 + 244 f4(x4)=−3(12−x4)−20x4+280=−17x4+244 -
k
=
3
:
d
3
∈
D
3
(
x
3
)
k=3:d_3\in D_3(x_3)
k=3:d3∈D3(x3)
f 3 ( x 3 ) = m i n { c 3 d 3 + f 4 ( x 4 ) } = m i n { 13 d 3 + 244 − 17 ( x 3 − r 3 + d 3 ) } = m i n { − 4 d 3 − 17 x 3 + 329 } \begin{aligned}f_3(x_3)&= min \{c_3d_3+f_4(x_4)\}\\&= min \{13d_3+244-17(x_3-r_3+d_3)\} \\&= min \{-4d_3-17x_3+329\}\end{aligned} f3(x3)=min{c3d3+f4(x4)}=min{13d3+244−17(x3−r3+d3)}=min{−4d3−17x3+329}其中
D 3 ( x 3 ) = { d 3 ∣ d 3 ≥ 0 , r 4 ≤ x 3 − r 3 + d 3 ≤ H } = { d 3 ∣ d 3 ≥ 0 , r 4 + r 3 − x 3 ≤ d 3 ≤ H + r 3 − x 3 } = { d 3 ∣ d 3 ≥ 0 , 8 − x 3 ≤ d 3 ≤ 14 − x 3 } = { d 3 ∣ m a x [ 0 , 8 − x 3 ] ≤ d 3 ≤ 14 − x 3 } \begin{aligned} D_3(x_3)&=\{d_3| d_3\geq0, r_4\leq x_3-r_3+d_3\leq H\}\\ &=\{d_3| d_3\geq0, r_4+r_3-x_3\leq d_3\leq H+r_3-x_3\}\\ &=\{d_3| d_3\geq0, 8-x_3\leq d_3\leq14-x_3\}\\ &=\{d_3| max [0,8-x_3]\leq d_3\leq14-x_3\} \end{aligned} D3(x3)={d3∣d3≥0,r4≤x3−r3+d3≤H}={d3∣d3≥0,r4+r3−x3≤d3≤H+r3−x3}={d3∣d3≥0,8−x3≤d3≤14−x3}={d3∣max[0,8−x3]≤d3≤14−x3}
由此 f 3 ( x 3 ) = − 4 ( 14 − x 3 ) − 17 x 3 + 329 = − 13 x 3 + 273 , d 3 ∗ = 14 − x 3 f_3(x_3)= -4(14-x_3) -17x_3+329= -13x_3+273,\quad d_3^*=14-x_3 f3(x3)=−4(14−x3)−17x3+329=−13x3+273,d3∗=14−x3 -
k
=
2
:
d
2
∈
D
2
(
x
2
)
k=2:d_2\in D_2(x_2)
k=2:d2∈D2(x2)
f 2 ( x 2 ) = m i n c 2 d 2 + f 3 ( x 3 ) = m i n 18 d 2 + 273 − 13 ( x 2 − r 2 + d 2 ) = m i n 18 d 2 + 273 − 13 ( x 2 − 8 + d 2 ) = m i n 5 d 2 − 13 x 2 + 377 \begin{aligned} f_2(x_2)& = min { c_2d_2 + f_3(x_3) } \\&= min {18d_2+273-13(x_2-r_2+d_2)}\\&= min {18d_2+273-13(x_2-8+d_2)}\\&= min {5d_2-13x_2+377} \end{aligned} f2(x2)=minc2d2+f3(x3)=min18d2+273−13(x2−r2+d2)=min18d2+273−13(x2−8+d2)=min5d2−13x2+377其中
D 2 ( x 2 ) = { d 2 ∣ d 2 ≥ 0 , r 3 ≤ x 2 − r 2 + d 2 ≤ H } = { d 2 ∣ d 2 ≥ 0 , r 3 + r 2 − x 2 ≤ d 2 ≤ H + r 2 − x 2 } = { d 2 ∣ d 2 ≥ 0 , 13 − x 2 ≤ d 2 ≤ 17 − x 2 } \begin{aligned} D_2(x_2) &=\{d_2|d_2\geq0, r_3\leq x_2-r_2+d_2\leq H \}\\& =\{d_2|d_2\geq0, r_3+r_2-x_2\leq d_2\leq H+r_2-x_2\}\\& =\{d_2|d_2\geq0,13-x_2\leq d_2\leq17-x_2\}\end{aligned} D2(x2)={d2∣d2≥0,r3≤x2−r2+d2≤H}={d2∣d2≥0,r3+r2−x2≤d2≤H+r2−x2}={d2∣d2≥0,13−x2≤d2≤17−x2}
因为 13 − x 2 > 0 13-x_2>0 13−x2>0,所以 d 2 ( x 2 ) = { d 2 ∣ 13 − x 2 ≤ d 2 ≤ 17 − x 2 } d_2(x_2)=\{d_2|13-x_2\leq d2\leq 17-x_2\} d2(x2)={d2∣13−x2≤d2≤17−x2},
由此 f 2 ( x 2 ) = 5 ( 13 − x 2 ) − 13 x 2 + 377 = − 18 x 2 + 442 f_2(x_2)= 5(13-x_2)-13x_2+377= -18x_2+442 f2(x2)=5(13−x2)−13x2+377=−18x2+442, d 2 ∗ = 13 − x 2 d_2^* = 13-x_2 d2∗=13−x2 -
k
=
1
:
d
1
∈
D
1
(
x
1
)
k=1: d_1\in D_1(x_1)
k=1:d1∈D1(x1)
f 1 ( x 1 ) = m i n { c 1 d 1 + f 2 ( x 2 ) } = m i n { 11 d 1 + 442 − 18 ( x 1 − r 1 + d 1 ) } = m i n { 11 d 1 + 442 − 18 ( x 1 − 0 + d 1 ) } = m i n { − 7 d 1 − 18 x 1 + 442 } \begin{aligned}f_1(x_1) &= min \{c_1d_1+f_2(x_2)\} \\&= min \{11d_1+442-18(x_1-r_1+d_1)\}\\&= min \{11d_1+442-18(x_1-0+d_1)\}\\&= min \{-7d_1-18x_1+442\}\end{aligned} f1(x1)=min{c1d1+f2(x2)}=min{11d1+442−18(x1−r1+d1)}=min{11d1+442−18(x1−0+d1)}=min{−7d1−18x1+442}其中
D 1 ( x 1 ) = { d 1 ∣ d 1 ≥ 0 , r 2 ≤ x 1 − r 1 + d 1 ≤ H } = { d 1 ∣ d 1 ≥ 0 , r − 2 + r 1 − x 1 ≤ d 1 ≤ H + r 1 − x 1 } = { d 1 ∣ d 1 ≥ 0 , 8 − x 1 ≤ d 1 ≤ 9 − x 1 } \begin{aligned}D_1(x_1) &=\{ d_1|d_1\geq0,r_2\leq x_1-r_1+d_1\leq H \} \\&=\{d_1|d_1\geq0,r-2+r_1-x_1\leq d_1\leq H+r_1-x_1\} \\&=\{d_1|d_1\geq0,8-x_1\leq d_1\leq9-x_1\} \end{aligned} D1(x1)={d1∣d1≥0,r2≤x1−r1+d1≤H}={d1∣d1≥0,r−2+r1−x1≤d1≤H+r1−x1}={d1∣d1≥0,8−x1≤d1≤9−x1}
根据题意 x 1 = 2 x_1=2 x1=2所以 D 1 ( x 1 ) = { d 1 ∣ 6 ≤ d 1 ≤ 7 } D_1(x_1) = \{ d_1| 6 \leq d_1\leq 7 \} D1(x1)={d1∣6≤d1≤7},由此 d 1 = 7 d_1 = 7 d1=7, f 1 ( x 1 ) = − 7 d 1 − 18 x 1 + 442 = 357 f_1(x_1) = -7d_1 - 18x_1 + 442 = 357 f1(x1)=−7d1−18x1+442=357
回溯,将结果汇总成下表: