动态规划.pdf
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章:动态规划
3.1 动态规划的基本概念
一、动态决策问题:
决策过程具有阶段性和时序性(与时间有关)的决策问题。
即决策过程可划分为明显的阶段。
二、什么叫动态规划(D.P.–Dynamic Program):
多阶段决策问题最优化的一种方法。
广泛应用于工业技术、生产管理、企业管理、经济、军事等领域。
三、动态规划(D.P.)的起源:
1951年,(美)数学家R.Bellman等提出最优化原理,从而建立动态规划,名著《动态规划》
于1957年出版。
四、动态决策问题分类:
1、按数据给出的形式分为:
•离散型动态决策问题。
•连续型动态决策问题。
2、按决策过程演变的性质分为:
•确定型动态决策问题。
•随机型动态决策问题。
五
1、阶段(stage)n :作出决策的若干轮次。
n = 1、
2、
3、
4、5。
2、状态(state)S n :每一阶段的出发位置。
构成状态集,记为S n
S 1={A},S 2={B 1,B 2,B 3},S 3={C 1,C 2,C 3},S 4={D 1,D 2,D 3},S 5={E 1,E 2}。
阶段的起点。
3、决策(decision)X n :从一个阶段某状态演变到下一个阶段某状态的选择。
构成决策集,记为D n (S n )。
阶段的终点。
D 1(S 1)={X 1(A)}={B 1,B 2,B 3}= S 2,
D 2(S 2)={X 2(B 1),X 2(B 2),X 2(B 3)}={C 1,C 2,C 3}=S 3,
D 3(S 3)={X 3(C 1),X 3(C 2),X 3(C 3)}={D 1,D 2,D 3}=S 4,D 4(S 4)={X 4(D 1),X 4(D 2),X 4(D 3)}={
E 1,E 2}=S 5D 5(S 5)={X 5(E 1),X 5(E 2)}={F;F}={F}。
4、策略(policy):全过程中各个阶段的决策X
n 组成的有序总体
{X
n }。
如 A àB
2
àC
1
àD
1
àE
2
àF
5、子策略(sub-policy):剩下的n个阶段构成n子过程,相应的决策系列叫n子策略。
如C
1àD
1
àE
2
àF
上例从 A à F 共有38种走法,即有38条路线,38个策略。
6、状态转移方程:前一阶段的终点(决策)是后前一阶段的起点(状态)。
X n =S n+1
7、指标函数:各个阶段的数量指标,记为r n (s n ,x n )。
如上例中,用d n (s n ,x n )表示距离。
d 2(B 3,C 2)=1, d 3(C 2,D 3)=6 等。
8、目标函数:策略的数量指标值,记为
Z=opt[r 1(s 1,x 1)*•••*r n (s n ,x n )]。
其中:opt 为max 或min ,*为运算符号。
如上例中Z=min[d (s ,x )+ ••+d (s ,x )]=min[d +d +…+d ]
3.2 最优化原理
一、R.Bellman最优化原理:
作为整个过程的最优策略,无任过去的状态和决策如何,对前面的决策形成状态而言,余下的诸决策必构成最优策略。
即:若M是从A到B最优路线上的任一点,则从M到B的路线也是最优路线。
A••
•M
B
二、指标递推方程:
f n *(S
n
) = opt [r
1
(s
1
,x
1
)*•••* r
n
(s
n
,x
n
)]
x
n
∈D
n
(S
n
)
如上例:
f n *(S
n
) = min [r
n
(s
n
,x
n
)+ f
n+1
*(S
n+1
) ],n=4、3、2、1
x
n
∈D
n
(S
n
)
f 5*(S
5
) = min [r
5
(s
5
,x
5
)]
x
5
∈D
5
(S
5
)
A •
•
•
M B
三、求解过程:
用反向嵌套递推法:从最后一个阶段开始,依次对各子过程寻优,直至获得全过程的最优,形成最优策略,获得最优策略指标值。
3.3 DP 建模及求解一、建模条件:
决策过程本身具有时顺序性或可以转化为具有时顺序性的决策问题,均可建立动态规划数学模型求解。
二、典型动态决策问题建模及其求解1、最短路线问题
例:求下列图中A 到F 的最短路线及最短路线值。
1、阶段(stage)n :n = 1、
2、
3、
4、5。
2、状态(state)S n :
S 1={A},S 2={B 1,B 2,B 3},S 3={C 1,C 2,C 3},S 4={D 1,D 2,D 3},S 5={E 1,E 2}。
3、决策(decision)X n :决策集D n (S n )。
D 1(S 1)={X 1(A)}={B 1,B 2,B 3}= S 2,
D 2(S 2)={X 2(B 1),X 2(B 2),X 2(B 3)}={C 1,C 2;C 1,C 2,C 3 ;C 2,C 3 }={C 1,C 2,C 3}=S 3,D 3(S 3)={X 3(C 1),X 3(C 2),X 3(C 3)}={D 1,D 2;D 1,D 2,D 3; D 1,D 2,D 3}={D 1,D 2,D 3}=S 4,D 4(S 4)={X 4(D 1),X 4(D 2),X 4(D 3)}={
E 1,E 2;E 1,E 2;E 1,E 2}={E 1,E 2}=S 5,D 5(S 5)={X 5(E 1),X 5(E 2)}={F;F}={F}。
4、状态转移方程:X n =S n+1
5、指标函数(距离):d n (s n ,x n )。
d 2(B 3,C 2)=1, d 3(C 2,D 3)=6 等。
6、指标递推方程:f n *(S n ) = min [r n (s n ,x n )+ f n+1*(S n+1) ],n=4、3、2、1
x n ∈D n (S n )
f 5*(S 5) = min [r 5(s 5,x 5)]
=5
最短路线值为:f 1*(s 1) = 14
最短路线求解过程如下:
即: A àB 2àC 1àD 1àE 2àF
•图上计算
(14, C 1)
(12, C 2)
(5, D 1)
(8,D 1)(4, E 2)
(7, E 2)
最短路径问题
资源分配问题
背包问题
机器负荷分配问题
*数值法
一、最短路径问题
求从A 到E 的最短路径
5
05)E (f )E D (d )D (f 5114=+=+→=
2
02)E (f )E D (d )D (f 5224=+=+→=
1
12421141113D C 8118min 2953min )D (f )D ,C ()D (f )D ,C (min )C (f →=
= ++=
++=最优决策
2
22422141223D C 7711min 2556min )D (f )D ,C ()D (f )D ,C (min )C (f →=
= ++=
++=最优决策
2
32423141333D C 121213min 21058min )D (f )D ,C ()D (f )D ,C (min )C (f →=
= ++=
++=最优决策
1
133312*********C B 20
222120min 1210714812min )C (f )C ,B ()C (f )C ,B ()C (f )C ,B (min )B (f →=
= +++= +++=最优决策
1
233322322131222C B 14
161714min 12471086min )C (f )C ,B ()C (f )C ,B ()C (f )C ,B (min )B (f →=
= +++= +++=最优决策
2
333332323131332C B 19
231921min 1211712813min )C (f )C ,B ()C (f )C ,B ()C (f )C ,B (min )B (f →=
= +++= +++=最优决策
2
3232221211B A 19
201923min 191145212min )B (f )B ,A ()B (f )B ,A ()B (f )B ,A (min )A (f →=
= +++= +++=最优决策
状态最优决策状态最优决策状态最优决策状态最优决策状态A (A ,B 2)
B 2
状态最优决策状态最优决策状态最优决策状态最优决策状态A (A ,B 2)
B 2 (B 2,
C 1)
C 1
状态最优决策状态最优决策状态最优决策状态最优决策状态A (A ,B 2)
B 2 (B 2,
C 1)
C 1(C 1,
D 1)D 1
状态最优决策状态最优决策状态最优决策状态最优决策状态A (A ,B 2)
B 2 (B 2,
C 1)
C 1(C 1,
D 1)D 1(D 1,
E )
E
从A 到E 的最短路径为19,路线为A →B 2→C 1→D 1→E
二、资源分配问题
x 1
A 项目
x 2
B 项目
x 3
C 项目
x 4
f
在多阶段决策问题中,当指标函数没有明确的解析表达式(例如用数值表给出),或者对变量有整数要求时,则不能用解析法求解.只能用数值计算法求解.下面举例说明.
例(资源分配问题)某工厂购进5台设备,可以分配给3个车间使用,由于各车间的条件不同,使用这些设备后所能获得的收益也不同,其数据见表。
问每个车间各应分配多少台设备,才能使工厂获得的总收益最大。
0 0 0 2 1 34 3 45 4 55 6 56 8 6
012345
1 2 3收车间设备益
设x J (j=1,2,3)表示分配给第j 个车间的设备台数,则问题归结为
maxZ= g 1(x 1)+ g 2(x 2) + g 3(x 3);
x 1+ x 2+ x 3=5;
s.t.
x j ≥0 (j=1.2.3.),x j 且为整数
其中g j (x j )(j=1,2,3)表示第j 个车间得到x j 台设备后所获得的收益,由表给出。
表1
这也是一个整数
规划问题,且目标函
数中的每一项没有解
析表达式,只是由表1
给出的对应数据(也
是函数关系),下面
用动态规划方法接求
解。
解取k=1,2,3共分三个阶段,
决策变量x
3
表示分配给第k个车间的设备台数,
状态变量s
k
表示可供第k个车间至第3个车间分配的设备总数.
状态转移方程为s
k+1
=s k-x k.
允许决策集合为D
k
(s k)={x k│0≤x k≤s k,x k为整数}.
允许状态集合S
k
=(0,1,2,…,5).
S1={5}.
边界条件f
k (s4)=0.
0 0 0
2 1 3
4 3 4
5 4 5
5 6 5
6 8 6
1
2
3
4
5
1 2 3
收车
间设备益
当k=3时,有
f 3(s 3)= max {
g 3(x 3)+ f 3(s 3)}.
0≤x 3≤s 3由于g 3(x 3)是单调上升函数,
因此当x 3=5时,达到最大值。
其值由表给出。
x 3表示分配给第k 个车间的设备台数,
状态变量s k 表示可供第k 个车间至第3个车间分配的设备总数035543030
5
6
6
5
5
4
3
5
5
1,03,455543040244302013301000004
3
2
1
0S 4x 3*f 3(s 3)g 3(x 3)+ f 3(s 3)
f s 3
x 3 0 0 02 1 34 3 45 4 55 6 56 8 6
012345
1 2 3收益
车间设备
表2
k=3
f 3(s 3)= max {
g 2(x 2)+ f 3(s 3)}= max {g 2(x 2)+ f 3(s 2-x 2)}. 0≤x 3≤s 30≤x 3≤s 3
1264+03+31+40+531
4
9
8+0
6+3
4+4
3+5
1+5
0+6
5
5
2,12,376+04+33+41+50+542,10,143+01+30+421031+00+310000+004
3
2
1
0S 3x 2*f 2(s 2)g 2(x 2)+ f 3(s 2-x 2)
f s 2
x 2
表3
0 0 02 1 34 3 45 4 55 6 5
6 8 6
01
234
5 1 2 3
收益车间设备03
55
43030566
55430
55
1,03,455543040
244
3020
133
01000004
3210S 4
x 3*f 3(s 3)
g 3(x 3)+ f 3(s 3)f
s 3
x 3
计
算结果如表所示
当k=2时,有
当k=1时,s 1=5,有
f 1(s 1)= max {
g 1(x 1)+ f 2(s 2)}= max {g 1(x 1)+ f 2(s 1-x 1)}
0≤x 1≤s 10≤x 1≤s 1
计算结果如表所示,
3
2106+05+35+44+62+70+95543210s 2x 1*f 1(s 1)g 1(x 1)+ f 2(s 1-x 1)f
s 1
x 1 表41264+03+31+40+531498+06+34+43+51+50+6552,12,376+04+33+41+50+542,10,143+01+30+421031+00+310000+0043210S 3x 2*f 2(s 2)g 2(x 2)+ f 3(s 2-x 2)f s 2x 2 表3计
算
结
果
如
表
所
示
32106+05+35+44+62+70+95
543210s 2x 1*f 1(s 1)g 1(x 1)+ f 2(s 1-x 1)f
s 1
x 1 1264+03+31+40+53
1498+06+34+43+51+50+65
52,12,376+04+33+41+50+54
2,10,143+01+30+42
1031+00+31
0000+00
43210S 3x 2*f 2(s 2)g 2(x 2)+ f 3(s 2-x 2)f s 2
x 2 03554303
0566********,03,45554304
0244302
013301
00000
43210S 4x 3*f 3(s 3)g 3(x 3)+ f 3(s 3)f
s 3x 3 x 1*=2,x 2*=2,x 3*=1
由表可知,x
1*=2,s
2
=3,查表3得x
2
*=2,s
3
=1,再查表2得
x
3
*=1。
所以最优解为
x 1*=2,x
2
*=2,x
3
*=1
即第1车间分配2台,第2车间分配2台,第3车间分配1台,其总收益最大.最大值Z*=10.
其最优解共有4个:第一个最优解:x 1*=1,x 2*=2 x 3*=1;第二个最优解:x 1*=2,x 2*=0,x 3*=2;第三个最优解:x 1*=2,x 2*=1,x 3*=1;第四个最优解:x 1*=3,x 2*=0,x 3*=1;.
目标函数最优值均为Z *=8.
在这个问题中,如果原设备的台数不是5台,而是4台或3台.用其它方法求解时,往往要从头再算.但用动态规划方法求解时,这些列出的表仍有用,只需改写最后的表格就可以得到.例如,当设备台数为4台时,将表4改写成表5
3,2,1
1,2,385+05+34+42+60+7443210s 2x 1*f 1(s 1)g 1(x 1)+ f 2(s 1-x 1)f
s 1
x 1
例某公司拟将60万元的投资,分配给下属四个工厂扩建用。
每个工厂扩建后的利润与投资额的大小有关,投资后的利润函数由表给出。
于是得
最优策略为(40,20)。
即对第一个工厂投资40万元,对第二个工厂投资20万元,此时最大利润为120万元。
最优策略为(10,0)或(0,10),最大利润为20万元。
f2(0)=0,最优策略为(0,0),最大利润为0万元。
于是得表。