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

动态规划问题的经典实例
http://www.mydrs.org  3/23/2002  大榕树


首先,例举一个典型的且很直观的多阶段决策问题:
[例] 下图表示城市之间的交通路网,线段上的数字表示费用,单向通行由A->E。试用动态规划的最优化原理求出A->E的最省费用。
tu03.JPG (29584 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就是第二阶段的终点,同时又是第三阶段的始点。同理递推下去,可看到各个阶段的决策不同,线路就不同。很明显,当某阶段的起点给定时,它直接影响着后面各阶段的行进路线和整个路线的长短,而后面各阶段的路线的发展不受这点以前各阶段的影响。故此问题的要求是:在各个阶段选取一个恰
当的决策,使由这些决策组成的一个决策序列所决定的一条路线,其总路程最短。如何解决这个问题呢?
二、用枚举法
把所有由A->E可能的每一条路线的距离算出来,然后互相比较,找出最短者,相应地得出了最短路线。

三、用动态规划法求解
决策过程:
(1)由目标状态E向前推,可以分成四个阶段,即四个子问题。如上图所示。
(2)策略:每个阶段到E的最省费用为本阶段的决策路径。
(3)D1,D2是第一次输人的结点。他们到E都只有一种费用,在D1框上面标5,D2框上面标2。目前无法定下,那一个点将在全程最优策略的路径上。第二阶段计算中,5,2都应分别参加计算。
(4)C1,C2,C3是第二次输入结点,他们到D1,D2各有两种费用。此时应计算C1,C2,C3分别到E的最少费用。
C1的决策路径是 min{(C1D1),(C1D2)}。计算结果是C1+D1+E,在C1框上面标为8。
同理C2的决策路径计算结果是C2+D2+E,在C2框上面标为7。
同理C3的决策路径计算结果是C3+D2+E,在C3框上面标为12。
此时也无法定下第一,二阶段的城市那二个将在整体的最优决策路径上。
(5)第三次输入结点为B1,B2,B3,而决策输出结点可能为C1,C2,C3。仿前计算可得Bl,B2,B3的决策路径为如下情况。
Bl:B1C1费用 12+8=20, 路径:B1+C1+D1+E
B2:B2C1费用 6+8=14, 路径:B2+C1+D1+E
B3:B2C2费用 12+7=19, 路径:B3+C2+D2+E
此时也无法定下第一,二,三阶段的城市那三个将在整体的最优决策路径上。
(6)第四次输入结点为A,决策输出结点可能为B1,B2,B3。同理可得决策路径为
A:AB2,费用5+14=19,路径 A+B2+C1+D1+E。
此时才正式确定每个子问题的结点中,那一个结点将在最优费用的路径上。19将结果显然这种计算方法,符合最优原理。子问题的决策中,只对同一城市(结点)比较优劣。而同一阶段的城市(结点)的优劣要由下一个阶段去决定。

四、小结及比较
动态规划的最优化原理是“作为整个过程的最优策略具有这样的性质:无论过去的状态和决策如何,对前面的决策所形成的状态而言,余下的诸决策必须构成最优策略。”
与穷举法相比,动态规划的方法有两个明显的优点:
(1)大大减少了计算量
(2)丰富了计算结果
从上例的求解结果中,我们不仅得到由A点出发到终点E的最短路线及最短距离,而且还得到了从所有各中间点到终点的最短路线及最短距离,这对许多实际问题来讲是很有用的。

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

五、应用动态规划要注意

1.阶段的划分是关键,必须依据题意分析,寻求合理的划分阶段(子问题)方法。而每个子问题是一个比原问题简单得多的优化问题。而且每个子问题的求解中,均利用它的一个后部子问题的最优化结果,直到最后一个子问题所得最优解,它就是原问题的最优解。
2.变量太多,同样会使问题无法求解。
3.最优化原理应在子问题求解中体现。有些问题也允许顺推。

来 源:淮安信息技术教研网
共有23730位读者阅读过此文

  • 上篇文章SGOI7《仓库管理员》
  • 下篇文章动态规划问题的BASIC程序解

  • 发送邮件
    保存页面 打印文章 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号