大榕树——让我们共成长!
大榕树 myDrs.org
您的位置:大榕树 \ 编程       |  Logo语言   |  Pascal语言   |  信息学奥赛   |  高考保送    |  HTML版本
|  Pascal语言>>算法与技巧>>动态规划问题的数学描述         本站全文搜索: 友情提示:

动态规划问题的数学描述
http://www.mydrs.org  10/14/2001  大榕树



首先,例举一个典型的且很直观的多阶段决策问题:
[例] 下图表示城市之间的交通路网,线段上的数字表示费用,单向通行由A->E。试用动态规划的最优化原理求出A->E的最省费用。
tu03.JPG (29243 bytes)
如图从A到E共分为4个阶段,即第一阶段从A到B,第二阶段从B到C,第三阶段从C到D,第四阶段从D到E。除起点A和终点E外,其它各点既是上一阶段的终点又是下一阶段的起点。例如从A到B的第一阶段中,A为起点,终点有B1,B2,B3三个,因而这时走的路线有三个选择,一是走到B1,一是走到B2,一是走到B3。若选择B2的决策,B2就是第一阶段在我们决策之下的结果,它既是第一阶段路线的终点,又是第二阶段路线的始点。在第二阶段,再从B2点出发,对于B2点就有一个可供选择的终点集合(C1,C2,C3);若选择由B2走至C2为第二阶段的决策,则C2就是第二阶段的终点,同时又是第三阶段的始点。同理递推下去,可看到各个阶段的决策不同,线路就不同。很明显,当某阶段的起点给定时,它直接影响着后面各阶段的行进路线和整个路线的长短,而后面各阶段的路线的发展不受这点以前各阶段的影响。故此问题的要求是:在各个阶段选取一个恰
当的决策,使由这些决策组成的一个决策序列所决定的一条路线,其总路程最短。

动态规划为此类多阶段决策问题寻求了一种简便的方法。为了便于讨论,我们先引入动态规划问题的一些概念、术语和符号。

名词解释:
(1)决策和阶段
在对问题的处理中作出某种选择性的行动就是决策。例如在且点需选择下一步到B1还是到B2,这就是一次决策。一个实际问题可能要有多次决策或多个决策点,为此对整个问题,可按其特点划分成需要作出选择的若干轮次,这些轮次即称为阶段。如图中,从A到E共分为4个阶段,即第一阶段从A到B,第二阶段从B到C,第三阶段从C到D,第四阶段从D到E。
(2)状态和状态变量

某一阶段的出发位置称为状态。通常一个阶段包含若干状态。例如阶段3含有3种状态C1,C2,C3。状态通常可有一个变量来描述,用来描述状态的变量称为状态变量,记第K阶段的状态变量为Uk。例如U3={C1,C2,C3}。
(3)决策变量和允许决策集合

在每一个阶段中都需有一次决策,决策也可以用一个变量来描述,称这种变量为决策变量,一般用Xk表示第K阶段的决策变量。在实际问题中,决策变量的取值往往限制在某一个范围之内,此范围称为允许决策集合,用Sk表示第K阶段的允许决策集合。例如,S3={D1,D2},它表示第三阶段可有两种不同的决策。那么Xk与Sk
之间的关系是UK+1=Xk(Uk)。当第K阶段的状态确定之后,可能作出的决策范围还要受到这一状态的影响,这就是说,决策变量Xk是状态变量Uk的函数,记为Xk(Uk),简记为Xk。把Xk的取值范围记为Sk(Uk),显然有Xk(Uk)∈Sk(Uk)。
例如在图的第三阶段中,若从状态C1出发,就可作出二种不同的决策,其允许决策集合S3(C1)={D1,D2}。若选取的点是D2,则D2是状态C1在决策X3(C1)作用下的下个新的状态,记作X3(C1)=D2。

(4)策略和最优策略

所有阶段依次排列构成问题的全过程。全过程中各阶段决策变量Xk(Uk)所组成的有序总体称为策略。在实际问题中,可供选择的策略有一定的范围,该范围称为允许策略集合P。从P中找出最优效果的策略称为最优策略。

(5)状态转移方程

前一阶段的终点就是后一阶段的起点,前一阶段的决策变量就是后一阶段的状态变量,这种关系描述了由K阶段到K十1阶段状态的演变规律,称为状态转移方程。如上图的状态转移方程为UK+1=Xk(Uk)。
(6)动态规划的函数基本方程
为了帮助大家理解动态规划的基本思想,先说最短路线的一个重要特性:如果从A->B->C->D是A至D的最短路线,那么从B到D的最短路线必是B->C->D。更一般地说:如果最短路线在第K阶段通过Pk,则由点Pk出发到达终点的这条路线对于从Pk出发到达终点的所有可能选择的不同路线来说,必定也是最短路线。
这就引出了从终点逐段向始点方向寻找最短路线的一种方法:
若以Uk表示第K阶段的一个决策点,从终点开始,依逆向求出倒数第一阶段、倒数第二阶段、倒数第三阶段、……、倒数第N-1阶段中各点到达终点的最短路线。最终求出从起点到终点的最短路线。这就是动态规划的基本思想。
下面,我们按照动态规划的方法将上例从最后一段开始计算,由终点E向前逐步倒推至起点A。
设Uk表示第K阶段的一个决策点,Fk(Uk)表示从第K阶段中的点Uk到达终点的最短路线的长度,Sk(Xk,Uk)表示第K阶段中Xk到Uk的距离。
(当K=5时,F5(E)=0)
当K=4时,F4(D1)=5,F4(D2)=2。
当K=3时,
F3(C1)=min[S3(C1,D1)+F4(D1),S3(C1,D2)+F4(D2)]=min[8,11]=8。
F3(C2)=min[S3(C2,D1)+F4(D1),S3(C2,D2)+F4(D2)]=min[7,11]=7。
F3(C3)=min[S3(C3,D2)+F4(D2)]=min[12]=12。
当K=2时,
F2(B1)=min[S2(B1,C1)+F3(C1),S2(B1,C2)+F3(C2)]=min[20,21]=20。
F2(B2)=min[S2(B2,C1)+F3(C1),S2(B2,C2)+F3(C2),S2(B2,C3)+F3(C3)]
            =min[14,17,16]=14。
F2(B3)=min[S2(B3,C1)+F3(C1),S2(B3,C2)+F3(C2),S2(B3,C3)+F3(C3)]
            =min[21,19,23]=19。
当K=1时,
F1(A)=min[S1(A,B1)+F2(B1),S1(A,B2)+F2(B2),S1(A,B3)+F2(B3)]
            =min[22,19,20]=19。
其中X1(A)=B2,X2(B2)=C1,X3(C1)=D1,X4(D1)=E 组成一个最优策略。路线  A->B2->C1->D1->E  为从A到E的最短路线。最短路线长19。
从上面的计算过程中,我们可以看出,在求解的各个阶段,我们利用了K阶段与K+1阶段之间的如下关系:
     Fk( Uk)=min[Sk(Uk,Xk)+Fk+1(Xk)]       k=4,3,2,1
     F5( U5)=0
这种递推关系,叫做动态规划的函数基本方程。
动态规划的最优化原理是“作为整个过程的最优策略具有这样的性质:无论过去的状态和决策如何,对前面的决策所形成的状态而言,余下的诸决策必须构成最优策略。”
与穷举法相比,动态规划的方法有两个明显的优点:
(1)大大减少了计算量
(2)丰富了计算结果
从上例的求解结果中,我们不仅得到由A点出发到终点E的最短路线及最短距离,而且还得到了从所有各中间点到终点的最短路线及最短距离,这对许多实际问题来讲是很有用的。

动态规划的最优化概念是在一定条件下,我到一种途径,在对各阶段的效益经过按问题具体性质所确定的运算以后,使得全过程的总效益达到最优。


来 源:淮安教学科研网
共有7863位读者阅读过此文

  • 上篇文章:已经没有了
  • 下篇文章动态规划问题的程序框图

  • 发送邮件
    保存页面 打印文章 HTML版本 发表评论

    □- 近期热门文章 □- 相关文章
    1. NOIP2006竞赛大纲 [8307]
    2. 七类高中生具有保送资格 [5911]
    3. NOI2006获奖选手名单 [4956]
    4. 关于举办NOIP2006模拟赛的通告 [4107]
    5. Turbo Pascal各语句运行速... [3595]
    6. Turbo王者归来新Delphi免费... [3182]
    7. IOI2006我国4名选手全部获得金... [2946]
    8. 关于APIO2007与IOI2007... [2764]
    9. noip倒计时 by 枯叶蝴蝶 [2684]
    10. 朱泽园:思想上的金牌更重要 [2169]
    动态规划入门练习题
    动态规划空间“降一维”
    石子归并问题(DP)
    过桥问题(DP)
    抄写图书问题(DP)
    《Kitty猫基因突变》
    [专题]学习动态规划
    动态规划问题的BASIC程序解
    动态规划问题的经典实例
    巧记电话号码
     

    关于本站 | 合作伙伴 | 联系方式
    大榕树 版权所有 ©1999-2006 www.myDrs.org 闽ICP备05000721号