动态规划

动态规划解决问题需要满足一下两个条件:

(1)状态必须满足最优化原理
(2)状态必须满足无后效性

   最优化原理一个最优策略的子策略,对于它的初态和终态而言也必是最优的。

     这个最优化原理如果用数学化一点的语言来描述的话,就是:假设为了解决某一优化问题,需要依次作出n个决策D1D2Dn,如若这个决策序列是最优的,对于任何一个整数k1 < k < n,不论前面k个决策是怎样的,以后的最优决策只取决于由前面决策所确定的当前状态,即以后的决策Dk+1Dk+2Dn也是最优的

   无后效性是指未来的发展只能通过当前状态影响,当前的状态是对以往决策的总结

【例题1】最短路径问题。图中给出了一个地图,地图中每个顶点代表一个城市,两个城市间的连线代表道路,连线上的数值代表道路的长度。现在,想从城市A到达城市E,怎样走路程最短,最短路程的长度是多少?

动态规划_第1张图片 

【分析】把从AE的全过程分成四个阶段,用k表示阶段变量,第1阶段有一个初始状态A,两条可供选择的支路ABlAB2;第2阶段有两个初始状态B1 B2B1有三条可供选择的支路,B2有两条可供选择的支路……。用dk(xkxk+1)表示在第k阶段由初始状态xk到下阶段的初始状态xk+1的路径距离,Fk(xk)表示从第k阶段的xk到终点E的最短距离,利用倒推方法求解AE的最短距离。具体计算过程如下:

S1K=4,有:F4(D1)=3F4(D2)=4F4(D3)=3

S2: K=3,有:

F3(C1)=min{d3(C1,D1)+F4(D1),d3(C1,D2)+F4(d2)}=min{8,10}=8

F3(C2)=d3(C2,D1)+f4(D1)=5+3=8

F3(C3)=d3(C3,D3)+f4(D3)=8+3=11

F3(C4)=d3(C4,D3)+f4(D3)=3+3=6

S2: K=2,有:

F2(B1)=min{d2(B1,C1)+F3(C1),d2(B1,C2)+f3(C2),d2(B1,C3)+F3(C3)}=min{9,12,14}=9

F2(B2)=min{d2(B2,c2)+f3(C2),d2(B2,C4)+F3(C4)}=min{16,10}=10

S4k=1,有:

F1(A)=min{d1(A,B1)+F2(B1),d1(A,B2)+F2(B2)}=min{13,13}=13

因此由A点到E点的全过程的最短路径为A—>B2>C4—>D3—>E。最短路程长度为13