动态规划习题答案.docx
《动态规划习题答案.docx》由会员分享,可在线阅读,更多相关《动态规划习题答案.docx(17页珍藏版)》请在冰豆网上搜索。
动态规划习题答案
2.某公司有资金4百万元向A,B和C3个项目追加投资,各个项目可以有不同的投资额(百万元计),相应的效益如表所示。
问怎样分配资金,使总效益值最大?
##
表8-47
Wk(Xk)(项目k#
投资额
0
1
2
3
4
1#(A)
-
41
48
60
66
2#(B)
40
42
50
60
-
3#(C)
-
64
68
78
84
解:
设S1-A,B,C项目的总投资额,S2-B、C项目的总投资额
S3-C项目的投资额;
Xk-k项目的投资额;
(X1-A项目的投资额,X2-B项目的投资额,X3-C项目的投资额)
Wk(Sk,Xk)-对K项目投资Xk后的收益:
Wk(Sk,Xk)=Wk(Xk)
Tk(Sk,Xk)-Sk+1=Sk-Xk
fk(Sk)-当K至第3项目允许的投资额为Sk时所能获得的最大收益。
为获得最大利润,必须将4百万全部投资,假设有4阶段存在,有S4=0,建立递归方程
f4(Sk)=0
fk(Sk)=max{Wk(Xk)+fk+1(Sk+1)}k=3,2,1
Xk∈Dk(Sk)
第一步,K=3
f4(S4)=0
f3(S3)=max{W3(X3)+f4(S4)}
X3∈D3(S3)
S4=S3-X3
S3
f3(S3)
X3*
1
64
1
2
68
2
3
78
3
4
84
4
第二步:
K=2f2(S2)=max{W2(X2)+f3(S3)}
X2∈D2(S2)
S3=S2-X2
W2(X2)+f3(S2-X2)
S2
X2=0
X2=1
X2=2
X2=3
f2(S2)
X2*
1
40+64
-
-
-
104
0
2
40+68
42+64
-
-
108
0
3
40+78
42+68
50+64
-
118
0
4
40+84
42+78
50+68
60+64
124
0,3
第三步:
K=1f1(S1)=max{W1(X1)+f2(S2)}
X1∈D1(S1)
S2=S1-X1
W1(X1)+f2(S1-X1)
S1
X1=0
X1=1
X1=2
X1=3
f1(S1)
X1*
4
-
41+118
48+108
60+104
164
3
S1=4→S2=1→S3=1
↓↓↓
X1*=3X2*=0X3*=1
A投资3百万,B不投资C投资1百万。
总收益164百万元。
3.(最优分配问题)有一个仪表公司打算向它的3个营业区设立6家销售店。
每个营业区至少设一家,所获利润如表。
问设立的6家销售店数应如何分配,可使总利润最大?
利润
wk(x)
营业区Ak
A1
A2
A3
销售
店数x
1
2
3
4
200
280
330
340
210
220
225
230
180
230
260
280
解:
sk——对k#,…,3#营业区允许设立的销售店数
xk——对k#营业区设立的销售店数
wk(sk,xk)——对k#营业区设立xk销售店后的利润:
wk(sk,,xk)=wk(xk)
Tk(sk,xk)——sk+1=sk-xk
fk(sk)——当第k至第3个营业区允许设立的销售店数为sk时所能获得的最大利润
递归方程:
f4(s4)=0
fk(sk)=max{wk(xk)+fk+1(sk+1)},k=3,2,1
xk∈Dk(sk)
k=3时,有方程
f4(s4)=0
f3(s3)=max{w3(x3)+f4(s4)}
x3∈D3(s3)
s3=s2—x2
s3
f3(s3)
x3*
1
180
1
2
230
2
3
260
3
4
280
4
k=2,有方程
f2(s2)=max{w2(x2)+f3(s3)}
x2∈D2(s2)
s3=s2—x2
s2
w2(x2)+f3(s2—x2)
f2(s2)
x2*
x2=1
x2=2
x2=3
x2=4
2
210+180
/
/
/
390
1
3
210+230
220+180
/
/
440
1
4
210+260
220+230
225+180
/
470
1
5
210+280
220+260
225+230
230+180
490
1
k=1,有方程
f1(s1)=max{w1(x1)+f2(s2)}
x1∈D1(s1)
s2=s1—x1
s1
w1(x1)+f2(s1—x1)
f1(s1)
x1*
x1=1
x1=2
x1=3
x1=4
6
200+490
280+470
330+440
340+390
770
3
s1=6→s2=3→s3=2
↓↓↓
x1*=3x2*=1x3*=2
分别A1、A2、A3营业区设立3家、1家、2家销售店,最大利润为770
4.用动态规划方法求解下列模型:
maxf=10X1+4X2+5X3
s.t.3X1+5X2+4X3≤15
0≤X1≤20≤X2≤2X3≥0,Xj为整数j=1,2,3
解:
收费C1=10C2=4C3=5
X1为货物1的装载件数
X2为货物2的装载件数
X3为货物3的装载件数
分3阶段
S1为货物1、2、3允许的装载重量(3X1+5X2+4X3的允许值)
S2为货物2、3允许装载的重量(5X2+4X3的允许值)
S3为货物3允许装载的重量(4X3的允许值)
第一步:
K=3
f4(S4)=0
f3(S3)=max{5X3+f4(S4)|X3∈D3(S3)}
S4=S3-4X3
S3
0~3
4~7
8~11
12~15
D3(S3)
{0}
{0,1}
{0,1,2}
{0,1,2,3}
S3
X3=0
X3=1
X3=2
X3=3
f3(S3)
X3*
0~3
0+0
______
______
______
0
0
4~7
0+0
5+0
______
______
5
1
8~11
0+0
5+0
10+0
______
10
2
12~15
0+0
5+0
10+0
15+0
15
3
第二步:
K=2
f2(S2)=max{4X2+f3(S3)|X2∈D2(S2)}
S3=S2-5X2
S2
0~4
5~9
10~15
D2(S2)
{0}
{0,1}
{0,1,2}
划分点:
0
4
8
12
0
0
4
8
12
5
5
9
13
17
10
10
14
18
22
S2
4X2+f3(S2-5X2)
f2(S2)
X2*
X2=0
X2=1
X2=2
0~3
0+0
______
______
0
0
4
0+5
______
______
5
0
5~7
0+5
4+0
______
5
0
8
0+10
4+0
______
10
0
9
0+10
4+5
______
10
0
10~11
0+10
4+5
8+0
10
0
12
0+15
4+5
8+0
15
0
13
0+15
4+10
8+0
15
0
14~15
0+15
4+10
8+5
15
0
第三步:
K=1
f1(S3)=max{10X1+f2(S2)|X1∈D1(S1)}
S2=S1-3X1
10X1+f2(S1-3X1)
S1
X1=0
X1=1
X1=2
f1(S1)
X1*
15
0+15
10+15
20+10
30
2
顺序追踪:
最优策略为
S1=15→S2=9→S3=9
↓↓↓
X1*=2X2*=0X3*=2
最优装载方案为:
货物1装2件;货物2不装;货物3装2件
装载收费为30元
5.用动态规划方法解下列0—1背包问题:
Maxf=12x1+12x2+9x3+16x4+30x5;
s.t.3x1+4x2+3x3+4x4+6x5≤12;
xj=0,1,j=1,……,5
解:
本问题分为5个阶段。
令
sk——akxk+…+a4x4的允许值
xk——第k阶段xk取值,xk=0,1
wk(sk,xk)——xk产生的价值:
wk(sk,xk)=ckxk
Tk(sk,xk)——sk+1=sk-akxk
fk(sk)——在akxk+…+a4x4≤sk的条件下,ckxk+…+c4x4能取得的最大值。
xk∈Dk(sk)
fk(sk)=max{ckxk+fk+1(sk+1)},k=5,4,3,2,1
f6(s6)=0
递归方程为
x5∈D5(s5)
k=5f5(s5)=max{30x5}
s5
30x5
f5(s5)
x5*
x5=0
x5=1
0~5
0
——
0
0
6~12
0
30
30
1
s5=s4-4x4
x4∈D4(s4)
f4(s4)=max{16x4+f5(s5)}
k=4
s4
16x4+f5(s4-4x4)
f4(s4)
x4*
x4=0
x4=1
0~3
0+0
——
0
0
4~5
0+0
16+0
16
1
6~9
0+30
16+0
30
0
10~12
0+30
16+30
46
1
s3
9x3+f4(s3-3x3)
f3(s3)
x3*
x3=0
x3=1
0~2
0+0
——
0
0
3
0+0
9+0
9
1
4~5
0+16
9+0
16
0
6
0+30
9+0
30
0
7~8
0+30
9+16
30
0
9
0+30
9+30
39
1
10~12
0+46
9+30
46
0
s4=s3-3x3
x3∈D3(s3)
f3(s3)=max{9x3+f4(s4)}
k=3
s2
12x2+f3(s2-4x2)
f2(s2)
x2*
x2=0
x2=1
0~2
0+0
——
0
0
3
0+9
——
9
0
4~5
0+16
12+0
16
0
6
0+30
12+0
30
0
7
0+30
12+9
30
0
8
0+30
12+16
30
0
9
0+39
12+16
39
0
10
0+46
12+30
46
0
11~12
0+46
12+30
46
0
s3=s2-4x2
x2∈D2(s2)
f2(s2)=max{12x2+f3(s3)}
k=2
s2=s1-3x1s1=12
x1∈D1(s1)
f1(s1)=max{12x1+f2(s2)}
k=1
s1
12x1+f2(s1-3x1)
f1(s1)
x1*
x1=0
x1=1
12
0+46
12+39
51
1
s1=12s2=9s3=9s4=6s5=6
x1*=1x2*=0x3*=1x4*=0x5*=1
11.今设计一种由4个元件串联而成的部件,为提高部件的可靠性,每一元件可以由1个、2个或3个并联的单位元件组成。
关于元件K(K=1,2,3,4)配备j个并联单位元件(j=1,2,3)后的可靠性Rkj和成本Ckj由表给出,假设该部件的总成本允许为15个单位,试问如何确定各元件的单位元件配备数目,使系统的可靠性最高?
j
K=1
K=2
K=3
K=4
R1j
C1j
R2j
C2j
R3j
C3j
R4j
C4j
1
0.7
4
0.6
2
0.9
3
0.8
3
2
0.75
5
0.8
4
0.82
5
3
0.85
7
解:
逆序解法。
Sk——仪表上配备k#,…,4#元件时允许使用的费用
Xk——K#元件所选用的单位元件
Wk(Sk,Xk)——K#元件采用单位元件时的可靠性,有
Wk(Sk,Xk)=Rkxk
Tk(Sk,Xk)——Sk+1=Sk-Ckxk
fk(Sk)——在费用限额为Sk的条件下,k#,…,3#元件串联时相应部分可获得的最大可靠性
递归方程f4(S5)=1
fk(Sk)=max{Wk(Sk,Xk)﹒fk+1(Sk+1)},K=4,3,2,1.
第一步,对K=4,
S4
R4x4
F4(S1)
X4*
X4=1
X4=2
3
0.7
—
0.8
1
4
0.8
—
0.8
1
5
0.8
0.82
0.82
2
6
0.7
0.82
0.82
2
第二步:
S3
R3x3﹒f1(S3–C3x3)
f2(S2)
X3*
X3=1
6
0.9×0.8
0.72
1
7
0.9×0.8
0.72
1
8
0.9×0.82
0.738
1
9
0.9×0.82
0.738
1
第三步,对K=2,
S2
R2x2﹒f3(S2–C2x2)
f2(S2)
X2*
X2=1
X2=2
8
0.6×0.72
—
0.432
1
9
0.6×0.72
—
0.432
1
10
0.6×0.738
0.8×0.72
0.576
2
11
0.6×0.738
0.8×0.72
0.576
2
第四步,对K=4,f4(S4)=max{R4x4﹒f3(S3)}
S3=S4–C4x4,S4=15
S1
R1x1﹒f2(S41–C1x1)
f1(S4)
X*1
X1=1X1=2X1=3
15
0.7×0.5760.75×0.5760.85×0.432
0.432
2
S1=15→S3=10→S2=6→S1=3
↓↓↓↓
X1*=2X2*=2X3*=1X4*=1
元件1为2个,元件2为2个,元件3为1个,元件4为1个,可靠性为0.432。
顺序解法:
Sk——仪表上配备1#,…,K#元件时允许使用的费用
Xk——K#元件所选用的单位元件
Wk(Sk,Xk)——K#元件采用单位元件时的可靠性,有
Wk(Sk,Xk)=Rkxk
Tk(Sk,Xk)——Sk-1=Sk-Ckxk
fk(Sk)——在费用限额为Sk的条件下,1#,…,K#元件串联时相应部分可获得的最大可靠性
递归方程f0(S0)=1
fk(Sk)=max{Wk(Sk,Xk)﹒fk-1(Sk-1)},K=1,2,3,4
第一步,对K=1,f1(S1)=max{R1x1}
4<=S1<=7
S1={4,5,6,7}
S1
4
5
6
7
D1(S1)
{1}
{1,2}
{1,2}
{1,2,3}
S1
R1x1
f1(S1)
X1*
X1=1
X1=2
X1=3
4
0.7
—
—
0.7
1
5
0.7
0.75
—
0.75
2
6
0.7
0.75
—
0.75
2
7
0.7
0.75
0.8
0.8
3
第二步,对K=2,f2(S2)=max{R2x2﹒f1(S1)}
S1=S2–C2x2
6<=S2<=9
S2={6,7,8,9}
S2
6
7
8
9
D2(S2)
{1}
{1}
{1,2}
{1,2}
S2
R2x2﹒f1(S2–C2x2)
f2(S2)
X2*
X2=1
X2=2
6
0.6×0.7
—
0.42
1
7
0.6×0.75
—
0.45
1
8
0.6×0.75
0.8×0.7
0.56
2
9
0.6×0.8
0.8×0.75
0.6
2
第三步,对K=3,f3(S3)=max{R3x3﹒f2(S2)}
S2=S3–C3x3
9<=S2<=12
S2={9,10,11,12}
S3
9
10
11
12
D3(S3)
{1}
{1}
{1}
{1}
S3
R3x3﹒f2(S3–C3x3)
f3(S3)
X3*
X3=1
9
0.9×0.42
0.378
1
10
0.9×0.45
0.405
1
11
0.9×0.56
0.504
1
12
0.9×0.6
0.54
1
第四步,对K=4,f4(S4)=max{R4x4﹒f3(S3)}
S3=S4–C4x4,S4=15
S4
R4x4﹒f3(S4–C4x4)
f4(S4)
X4*
X4=1
X4=2
15
0.8×0.54
0.82×0.405
0.432
1
S4=15→S3=12→S2=9→S1=5
↓↓↓↓
X4*=1X3*=1X2*=2X1*=2
元件1为2个,元件2为2个,元件3为1个,元件4为1个,可靠性为0.432。