Skip to content

18.3.6 泛函方程方法的应用例子

18.3.6.1 最优购买策略

1. 问题的提法

从第 1226 页 18.3.2.1 中的最优买入策略问题

OF: f(u1,,un)=j=1ncjujmin!(18.142a)

(18.142b) CT: xj=xj1+ujvj,j=1(1)n,x0=xa,0jK,j=1(1)n,Uj(xj1)={uj:max{0,vjxj1}ujKxj1},j=1(1)n}

导出泛函方程

(18.143)ϕn+1(xn)=0,(18.144)ϕj(xj1)=maxujUj(xj1)(cjuj+ϕj+1(xj1+ujvj)),j=1(1)n.

2. 数值例子

n=6,K=10,xa=2.c1=4,c2=3,c3=5,c4=3,c5=4,c6=2,v1=6,v2=7,v3=4,v4=2,v5=4,v6=3.

后向计算 对于状态 xj1=0,1,,10 分别确定函数值 ϕj(xj1) . 现在只需对于 uj 的整数值进行极小搜索.

j=6:ϕ6(x5)=minu6U6(x5)c6u6=c6max{0,v6x5}=2max{0,3x5}.

根据贝尔曼泛函方程方法的方式 2,只要将 ϕ6(x5) 的值写在最后一行中. 例如,确定 ϕ4(0)

ϕ4(0)=min2u410(3u4+ϕ5(u42))=min{28,27,26,25,24,25,26,27,30}=24.

xj=0

1

2

3

4

5

6

7

8

9

10

j=1

75

2

59

56

53

50

47

44

41

38

35

32

29

3

44

39

34

29

24

21

18

15

12

9

6

4

24

21

18

15

12

9

6

4

2

0

0

5

22

18

14

10

6

4

2

0

0

0

0

6

6

4

2

0

0

0

0

0

0

0

0

前向计算

ϕ1(2)=75=min4u18(4u1+ϕ2(u14)).

于是得到 u1=4 作为极小点,因此 x1=x0+u1v1=0 . 对于 ϕ2(0) 以及后面各级重复此方法, 得到最优策略:

(u1,u2,u3,u4,u5,u6)=(4,10,1,6,0,3).

18.3.6.2 背包问题

1. 问题的提法

考虑第 1226 页 18.3.2.2 中给出的问题:

(18.145a):f(u1,,un)=j=1ncjujmax!

CT:

(18.145b)xj=xj1wjuj,j=1(1)n,x0=W,0xjW,j=1(1)n,uj{0,1},xj1wj,uj=0,xj1<wj,j=1(1)n.}

由于这是一个极大问题, 故贝尔曼泛函方程现在是

ϕn+1(xn)=0,ϕj(xj1)=maxujUj(xj1)(cjuj+ϕj+1(xj1wjuj)),j=1(1)n.

决策只可能是 0 和 1 , 故应用泛函方程方法的方式 1 是比较切合实际的. 对于j=n,n1,,1:

ϕj(xj1)={cj+ϕj+1(xj1wj), 如果 xj1wj,cj+ϕj+1(xj1wj)>ϕj+1(xj1),ϕj+1(xj1), 否则,

uj(xj1)={1, 如果 xj1wj,cj+ϕj+1(xj1wj)>ϕj+1(xj1),0, 否则. 

2. 数值例子

W=10,n=6.c1=1,c2=2,c3=3,c4=1,c5=5,c6=4,w1=2,w2=4,w3=6,w4=3,w5=7,w6=6.

由于权重 wj 是整数,故 xj 的可能值是 xj{0,1,,10},j=1(1)n ,而 x0= 10. 下表中包含了每一级和每个状态 xj1 下的函数值 ϕj(xj1) 和实际的决策 uj(xj1) . 例如, ϕ6(x5),ϕ3(2),ϕ3(6)ϕ3(8) 的计算如下:

ϕ6(x5)={0, 如果 x5<w6=4,c6=6, 否则,u6(x5)={0, 如果 x5<4,0, 否则. 

ϕ3(2):x2=2<w3=3:ϕ3(2)=ϕ4(2)=3,u3(2)=0.

ϕ3(6):x2>w3,c3+ϕ3(x2w3)=6+3<ϕ4(x2)=10:ϕ3(6)=10,u3(6)=0.

ϕ3(8):x2>w3,c3+ϕ3(x2w3)=6+9>ϕ4(x2)=10:ϕ3(8)=15,u3(8)=1 .

最优策略是

(u1,u2,u3,u4,u5,u6)=(0,1,1,1,0,1),ϕ1(10)=19.

xj=0

1

2

3

4

5

6

7

8

9

10

j=1

19;0

2

0;0

3;0

4;1

7;1

9;0

10;1

13;1

13;1

15;0

16;0

19;1

3

0;0

3;0

3;0

6;1

9;1

9;0

10;0

12;1

15;1

16;1

16;0

4

0;0

3;1

3;1

3;1

6;0

9;1

10;1

10;1

10;1

13;0

16;1

5

0;0

0;0

0;0

0;0

6;0

7;1

7;1

7;1

7;1

13;1

13;1

6

0;0

0;0

0;0

0;0

6;1

6;1

6;1

6;1

6;1

6;1

6;1

(冯德兴 译)

version 1.24.0