1.问题描述
某部门欲采购一批原料,原料价格在5周内可能有所变动,已预测得该种原料今后5周内取不同价格的概率如下表。试确定该部门在5周内购进这批原料的最优策略,使采购价格的期望值最小。
分析:
5 周内只购一次,每周可能的价格为 500元、600元 或700元,需要分别讨论。某一周若购买则花费当前的实际价格,否则考虑以后几周购买花费的数学期望值,二者取小。
2.建模
阶段
k
k
k:可采购期限,
k
=
1
,
2
,
3
,
4
,
5
k =1, 2, 3, 4, 5
k=1,2,3,4,5;
状态变量
x
k
x_k
xk:第
k
k
k周原料的实际价格;
可能状态集:
X
k
=
{
500
,
600
,
700
}
X_k = \{ 500, 600, 700 \}
Xk={500,600,700}
决策变量
d
k
d_k
dk:第
k
k
k周的决策,
d
k
=
1
d_k = 1
dk=1表示采购,
d
k
=
0
k
d_k = 0_k
dk=0k 表示不采购;
状态转移方程:第
k
k
k 周原料的实际价格是随机的;
基本方程:
{
f
5
(
x
5
)
=
x
5
,
x
5
∈
X
5
f
k
(
x
k
)
=
m
i
n
x
∈
X
k
{
x
k
,
E
(
x
k
)
}
\begin{cases}f_5(x_5)=x_5, x_5\in X_5\\f_k(x_k)=\mathop{min} \limits_{x\in X_k} \{x_k,E(x_k)\} \end{cases}
⎩
⎨
⎧f5(x5)=x5,x5∈X5fk(xk)=x∈Xkmin{xk,E(xk)}
这里
E
(
x
k
)
E(x_k)
E(xk) 为第
k
k
k 周决定等待,表示以后的采购价格期望值。
3.基本方程求解
k
=
5
k = 5
k=5,(前5周尚未购买,则此时一定按实价购买)
f
5
(
x
5
)
=
{
500
,当
x
5
=
500
,
d
5
∗
=
1
(采购)
600
,当
x
5
=
600
,
d
5
∗
=
1
(采购)
700
,当
x
5
=
700
,
d
5
∗
=
1
(采购)
f_5(x_5)=\begin{cases} 500,当x_5=500,d_5^*=1(采购)\\ 600,当x_5=600,d_5^*=1(采购)\\ 700,当x_5=700,d_5^*=1(采购) \end{cases}
f5(x5)=⎩
⎨
⎧500,当x5=500,d5∗=1(采购)600,当x5=600,d5∗=1(采购)700,当x5=700,d5∗=1(采购)
k
=
4
k = 4
k=4,
E
(
x
4
)
=
0.3
f
5
(
500
)
+
0.3
f
5
(
600
)
+
0.4
f
5
(
700
)
=
610
f
4
(
x
4
)
=
m
i
n
{
x
4
,
E
(
x
4
)
}
=
{
500
,当
x
4
=
500
,
d
4
∗
=
1
(采购)
600
,当
x
4
=
600
,
d
4
∗
=
1
(采购)
610
,当
x
4
=
700
,
d
4
∗
=
0
(等待)
E(x_4)=0.3f_5(500)+0.3f_5(600)+0.4f_5(700)=610\\ f_4(x_4)=\mathop{min}\{x_4,E(x_4)\}\\= \begin{cases} 500,当x_4=500,d_4^*=1(采购)\\ 600,当x_4=600,d_4^*=1(采购)\\ 610,当x_4=700,d_4^*=0(等待) \end{cases}
E(x4)=0.3f5(500)+0.3f5(600)+0.4f5(700)=610f4(x4)=min{x4,E(x4)}=⎩
⎨
⎧500,当x4=500,d4∗=1(采购)600,当x4=600,d4∗=1(采购)610,当x4=700,d4∗=0(等待)
k
=
3
k = 3
k=3,
E
(
x
3
)
=
0.3
f
4
(
500
)
+
0.3
f
4
(
600
)
+
0.4
f
4
(
700
)
=
574
f
3
(
x
3
)
=
m
i
n
{
x
3
,
E
(
x
3
)
}
=
{
500
,当
x
3
=
500
,
d
3
∗
=
1
(采购)
574
,当
x
3
=
600
,
d
3
∗
=
0
(等待)
574
,当
x
3
=
700
,
d
3
∗
=
0
(等待)
E(x_3)=0.3f_4(500)+0.3f_4(600)+0.4f_4(700)=574\\ f_3(x_3)=\mathop{min}\{x_3,E(x_3)\}\\= \begin{cases} 500,当x_3=500,d_3^*=1(采购)\\ 574,当x_3=600,d_3^*=0(等待)\\ 574,当x_3=700,d_3^*=0(等待) \end{cases}
E(x3)=0.3f4(500)+0.3f4(600)+0.4f4(700)=574f3(x3)=min{x3,E(x3)}=⎩
⎨
⎧500,当x3=500,d3∗=1(采购)574,当x3=600,d3∗=0(等待)574,当x3=700,d3∗=0(等待)
k
=
2
k = 2
k=2,
E
(
x
2
)
=
0.3
f
2
(
500
)
+
0.3
f
2
(
600
)
+
0.4
f
2
(
700
)
=
551.8
f
3
(
x
3
)
=
m
i
n
{
x
3
,
E
(
x
3
)
}
=
{
500
,当
x
2
=
500
,
d
2
∗
=
1
(采购)
551.8
,当
x
2
=
600
,
d
2
∗
=
0
(等待)
551.8
,当
x
2
=
700
,
d
2
∗
=
0
(等待)
E(x_2)=0.3f_2(500)+0.3f_2(600)+0.4f_2(700)=551.8\\ f_3(x_3)=\mathop{min}\{x_3,E(x_3)\}\\= \begin{cases} 500,当x_2=500,d_2^*=1(采购)\\ 551.8,当x_2=600,d_2^*=0(等待)\\ 551.8,当x_2=700,d_2^*=0(等待) \end{cases}
E(x2)=0.3f2(500)+0.3f2(600)+0.4f2(700)=551.8f3(x3)=min{x3,E(x3)}=⎩
⎨
⎧500,当x2=500,d2∗=1(采购)551.8,当x2=600,d2∗=0(等待)551.8,当x2=700,d2∗=0(等待)
k
=
1
k = 1
k=1,
E
(
x
1
)
=
0.3
f
1
(
500
)
+
0.3
f
1
(
600
)
+
0.4
f
1
(
700
)
=
536.26
f
1
(
x
1
)
=
m
i
n
{
x
1
,
E
(
x
1
)
}
=
{
500
,当
x
1
=
500
,
d
1
∗
=
1
(采购)
536.26
,当
x
1
=
600
,
d
1
∗
=
0
(等待)
536.26
,当
x
1
=
700
,
d
1
∗
=
0
(等待)
E(x_1)=0.3f_1(500)+0.3f_1(600)+0.4f_1(700)=536.26\\ f_1(x_1)=\mathop{min}\{x_1,E(x_1)\}\\= \begin{cases} 500,当x_1=500,d_1^*=1(采购)\\ 536.26,当x_1=600,d_1^*=0(等待)\\ 536.26,当x_1=700,d_1^*=0(等待) \end{cases}
E(x1)=0.3f1(500)+0.3f1(600)+0.4f1(700)=536.26f1(x1)=min{x1,E(x1)}=⎩
⎨
⎧500,当x1=500,d1∗=1(采购)536.26,当x1=600,d1∗=0(等待)536.26,当x1=700,d1∗=0(等待)
回溯。最优策略为:
第1、2、3周,若原料价格为500元,则立即采购,否则等待;在第4周,若原料价格为500或600元,则立即采购,否则到第5周采购。
最优期望价格:
E
(
x
0
)
=
0.3
f
1
(
500
)
+
0.3
f
1
(
536.26
)
+
0.4
f
1
(
536.26
)
=
525.382
E(x_0)=0.3f_1(500)+0.3f_1(536.26)+0.4f_1(536.26)=525.382
E(x0)=0.3f1(500)+0.3f1(536.26)+0.4f1(536.26)=525.382