第六章动态规划解析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第六章动态规划
6.1 动态规划的思想方法
6.1.1 动态规划的最优决策原理
活动过程划分为若干个阶段,每一阶段的决策,依赖于前一阶段的状态,由决策所采取的动作,使状态发生转移,成为下一阶段的决策依据。
P1P2 P n
S0S1 S2┅┅S n-1 S n
图6.1 动态规划的决策过程
最优性原理:无论过程的初始状态和初始决策是什么,其余决策都必须相对于初始决策所产生的状态,构成一个最优决策序列。
S0
p(1,1) p(1,2) p(1,r1)
s(1,1)
s(1,2) s(1,r1)
s(2,11) p(2,12) s(2,1r2) p(2,21) s(2,22) s(2,2r2) s(2,r11) s(2,r12) s(2,r1r2) 令最优状态为)
(s,由此倒推:
22
,2
s
p
p
→
,2(s
→
→
s→
)
)2,1(
22
)2,1(
)
,2(
22
最优决策序列,)
p→
)2,1(p
22
,2
(
状态转移序列:)
s
22
→
0s
s→
,2
(
)2,1(
赖以决策的策略或目标,称为动态规划函数。
整个决策过程,可以递归地进行,或用循环迭代的方法进行。
动态规划函数可以递归地定义,也可以用递推公式来表达。
最优决策是在最后阶段形成的,然后向前倒推,直到初始阶段;
而决策的具体结果及所产生的状态转移,却是由初始阶段开始进行计算的,然后向后递
6
6
归或迭代,直到最终结果。
6.1.2 动态规划实例、货郎担问题
例6.1 货郎担问题。
在有向赋权图>= 令),(V i d :从顶点i 出发,经V 中各顶点一次,最终回到顶点i 的最短路径的长度, 开始时,}{i V V -=。 动态规划函数: })}{,({min ),()}{,(k V k d c V i d i V i d ik V k -+==-∈(6.1.1) i k c k d ki ≠=),(ϕ (6.1.2) 4个城市的费用矩阵是: ⎪⎪ ⎪ ⎪ ⎪ ⎭ ⎫ ⎝ ⎛∞∞∞∞==573 24632576 3 )(ij c C 根据(6.1.1)式,由城市1出发,经城市2,3,4然后返回1的最短路径长度为: })}3,2{,4(,)}4,2{,3(,)}4,3{,2({min )}4,3,2{,1(141312d c d c d c d +++= 它必须依据)}3,2{,4(,)}4,2{,3(,)}4,3{,2(d d d 的计算结果: })}3{,4(,)}4{,3({min )}4,3{,2(2423d c d c d ++= })}2{,4(,)}4{,2({min )}4,2{,3(3432d c d c d ++= })}2{,3(,)}3{,2({min )}3,2{,4(4342d c d c d ++= 这一阶段的决策,又必须依据下面的计算结果: )}4{,2(,)}3{,4(,)}4{,3(d d d )}2{,3(,)}3{,2(,)}2{,4(,d d d 再向前倒推,有: 532),4()}4{,3(413434=+=+=+=c c d c d ϕ 1165),3()}3{,4(314343=+=+=+=c c d c d ϕ 633),4()}4{,2(412424=+=+=+=c c d c d ϕ 1257),2()}2{,4(214242=+=+=+=c c d c d ϕ 862),3()}3{,2(312323=+=+=+=c c d c d ϕ 954),2()}2{,3(213232=+=+=+=c c d c d ϕ 有了这些结果,再向后计算,有: 7}113,52{min )}4,3{,2(=++=d 路径顺序是:2,3,4,1 6 10}122,64{min )}4,2{,3(=++=d 路径顺序是:3,2,4,1 14}95,87{min )}3,2{,4(=++=d 路径顺序是:4,3,2,1 最后: 10}147,106,73{min )}4,3,2{,1(=+++=d 路径顺序是:1,2,3,4,1 d (1,{2,3,4}) d (2,{3,4}) d (3,{2,4}) d (4,{2,3}) d (3,{4}) d (4,{3}) d (2,{4}) d (4,{2}) d (2,{3}) d (3,{2}) d (4,φ) d (3,φ) d (4,φ) d (2,φ) d (3,φ) d (2,φ) 图6.2 货郎担问题求解过程示意图 二、复杂性分析 令i N 是计算从顶点i 出发,返回顶点i 所需计算的形式为)}{,(k V k d -的个数。 开始计算)}{,(i V i d -时,集合}{i V -中有1-n 个城市。 以后,在计算)}{,(k V k d -时,集合}{k V -的城市数目,在不同的决策阶段,分别为2-n ,┅,0。 在整个计算中,需要计算大小为j 的不同城市集合的个数为j n C 1-,1,1,0-=n j 。因此,总个数为: ∑-=-= 1 1 n j j n i C N 当}{k V -集合中的城市个数为j 时,为计算)}{,(k V k d -,需j 次加法, 1-j 次比较。从i 城市出发,经其它城市再回到i ,总的运算时间i T 为: ∑∑ ∑ -=--=--=-=⋅< ⋅= 1 1 1 01 1 1 n j j n n j j n n j j n i C n C n C j T 由二项式定理: j n j n j j n n y x C y x -=∑= +0 )( 令1==y x ;可得: )2(21n n i n O n T =⋅<- 则用动态规划方法求解货郎担问题,总的花费T 为: )2(22121 n n n i i n O n T T =⋅<= -=∑