第六章动态规划解析

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 =⋅<=

-=∑

相关文档
最新文档