收藏 分享(赏)

动态规划阶段状态决策函数递推式.doc

上传人:lxhqcj 文档编号:6496591 上传时间:2019-04-14 格式:DOC 页数:12 大小:126.32KB
下载 相关 举报
动态规划阶段状态决策函数递推式.doc_第1页
第1页 / 共12页
动态规划阶段状态决策函数递推式.doc_第2页
第2页 / 共12页
动态规划阶段状态决策函数递推式.doc_第3页
第3页 / 共12页
动态规划阶段状态决策函数递推式.doc_第4页
第4页 / 共12页
动态规划阶段状态决策函数递推式.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、 第 1 页 共 11 页动态规划关健字:阶段 状态 决策 函数递推式 摘要:动态规划是解决多阶段决策最优化问题的一种思想方法。所谓“动态” ,指的是在问题的多阶段决策中,按某一顺序,根据每一步所选决策的不同,将随即引起状态的转移,最终在变化的状态中产生一个决策序列。动态规划就是为了使产生的决策序列在符合某种条件下达到最优。动态规划思想近来在各类型信息学竞赛中频繁出现,它的应用也越来越受人重视。本文就是讨论如何运用动态规划的思想设计出有效的数学模型来解决问题。一 动态规划问题的数学描述我们先来看一个简单的多阶段决策问题。 例 1现有一张地图,各结点代表城市,两结点间连线代表道路,线上数字表示城

2、市间的距离。如图 1所示,试找出从结点 1到结点 10的最短路径。第一阶段 第二阶段 第三阶段 第四阶段 第五阶段图 1本问题的解决可采用一般的穷举法,即把从结点 1至结点 10的所有道路列举出来,计算其长度,再进行比较,找出最小的一条。虽然问题能解决,但采用这种方法,当结点数增加,其运算量将成指数级增长,故而效率是很低的。分析图 1可知,各结点的排列特征:(1) 可将各结点分为 5个阶段;第 2 页 共 11 页(2) 每个阶段上的结点只跟相邻阶段的结点相连,不会出现跨阶段或同阶段结点相连的情况,如不会出现结点 1与结点 4连、结点 4与结点 5连的情况。(3) 除起点 1和终点 10外,其

3、它各阶段的结点既是上一阶段的终点,又是下一阶段的起点。例如第三阶段的结点 4、5、6,它即是上一阶段结点 2、3 中某结点的终点,又是下一阶段结点 7、8、9 中某结点的起点。根据如上特征,若对于第三阶段的结点 5,选择 1-2-5和 1-3-5这两条路径,后者的费用要小于前者。那么考虑一下,假设在所求的结点 1到结点 10最短路径中要经过结点 5,那我们在结点 1到结点 5之间会取那条路径呢?显然,无论从结点 5出发以后的走法如何,前面选择 1-3-5这条路都总是会优于 1-2-5的。也就是说,当某阶段结点一定时,后面各阶段路线的发展不受这点以前各阶段的影响。反之,到该点的最优决策也不受该点

4、以后的发展影响。由此,我们可以把原题所求分割成几个小问题,从阶段 1开始,往后依次求出结点 1到阶段 2、3、4、5 各结点的最短距离,最终得出答案。在计算过程中,到某阶段上一结点的决策,只依赖于上一阶段的计算结果,与其它无关。例如,已求得从结点 1到结点 5的最优值是 6,到结点 6的最优值是 5,那么要求到下一阶段的结点 8的最优值,只须比较 min6+5,5+5即可。这样,运用动态规划思想大大节省了计算量。可以看出,动态规划是解决此类多阶段决策问题的一种有效方法。二 动态规划中的主要概念,名词术语1阶段:把问题分成几个相互联系的有顺序的几个环节,这些环节即称为阶段。2 状态:某一阶段的出

5、发位置称为状态。通常一个阶段包含若干状态。如图 1中,阶段 3就有三个状态结点 4、5、6。3 决策:从某阶段的一个状态演变到下一个阶段某状态的选择。4策略:由开始到终点的全过程中,由每段决策组成的决策序列称为全过程策略,简称策略。5 状态转移方程:前一阶段的终点就是后一阶段的起点,前一阶段的决策选择导出了后一阶段的状态,这种关系描述了由 k阶段到 k+1阶段状态的演变规律,称为状态转移方程。6 目标函数与最优化概念:目标函数是衡量多阶段决策过程优劣的准则。最优化概念是在一定条件下找到一个途径,经过按题目具体性质所确定的运算以后,使全过程的总效益达到最优。三 运用动态规划需符合的条件任何思想方

6、法都有一定的局限性,超出了特定条件,它就失去了作用。同理,动态规划也并不是万能的。那么使用动态规划必须符合什么条件呢?必须满足最优化原理和无后效性。1 最优化原理第 3 页 共 11 页最优化原理可这样阐述:一个最优化策略具有这样的性质,不论过去状图 2态和决策如何,对前面的决策所形成的状态而言,余下的诸决策必须构成最优策略。简而言之,一个最优化策略的子策略总是最优的。如图 2中,若路线 I和 J是 A到 C的最优路径,则根据最优化原理,路线J必是从 B到 C的最优路线。这可用反证法证明:假设有另一路径 J是 B到 C的最优路径,则 A到 C的路线取 I和 J比 I和 J更优,这与原名题矛盾。

7、从而证明 J必是 B到 C的最优路径。最优化原理是动态规划的基础,任何问题,如果失去了最优化原理的支持,就不可能用动态规划方法计算。2 无后效性“过去的步骤只能通过当前状态影响未来的发展,当前的状态是历史的总结”。这条特征说明动态规划只适用于解决当前决策与过去状态无关的问题。状态,出现在策略任何一个位置,它的地位相同,都可实施同样策略,这就是无后效性的内涵。由上可知,最优化原理,无后效性,是动态规划必须符合的两个条件。四 动态规划的计算方法对于一道题,怎样具体运用动态规划方法呢?(1) 首先,分析题意,考察此题是否满足最优化原理与无后效性两个条件。(2) 接着,确定题中的阶段,状态,及约束条件

8、。(3) 推导出各阶段状态间的函数基本方程,进行计算。具体求解则有多种方法。1 前向与后向动态规划法所谓前向与后向,指的是从起点出发,层层递推,直到终点,或从终点出发,逆向求解。这两种方法本质上是一样的,具体解题时,可根据实际情况来选用。例 2 排队买票问题描述:一场演唱会即将举行。现有 N(ON=200)个歌迷排队买票,一个人买一张,而售票处规定,一个人每次最多只能买两张票。假设第 I位歌迷买一张票需要时间 Ti(1=I=n) ,队伍中相邻的两位歌迷(第 j个人和第j+1个人)也可以由其中一个人买两张票,而另一位就可以不用排队了,则这两位歌迷买两张票的时间变为 Rj,假如 RjTj+Tj+1

9、,则这样做就可以缩短后面歌迷等待的时间,加快整个售票的进程。现给出 N,Tj 和 Rj,求使每个人都买第 4 页 共 11 页到票的最短时间和方法。解决问题:本题的阶段十分明显,只要按排队的先后顺序划分即可。而买票的方式只有两种,要么一人买一张,要么一人买两张,整个过程呈线性排列。要使前 I个人买票时间最短,只需考虑前 I个人的买票方式,与队列以后的人无关。而且显而易见,在最优策略中,任意 m个连续的决策也肯定是最优的。这样,问题就符合了最优化原理及无后效性,能运用动态规划。那如何构造函数递推式呢?可以以到每个人为止所需的最短时间为状态值,设为 f(i) ,于是有 f(i)=minf(i-1)

10、+Ti,f(i-2)+Ri-1,起步时 f(0)=0,f(1)=T1 。如此从前往后,只需遍历一次即可。上面的分析是从前往后进行的。其实倒过来逆推也一样。设 f(I)表示当票卖到第 I个人时,最少还需多少时间才能卖完。则函数递推式为 f(I)=minf(I+1)+Ti,f(I+2)+Ri,从后往前逆推,起步时 f(n)=Tn,f(n+1)=0 。采用前向还是后向动态规划,要看实际情况而定,哪一种直观、简便,就运用哪一种。2 具有隐含阶段的问题(即阶段不明显)动态规划的一个重要环节是阶段划分,可有些题目无明显阶段,但也符合最优化原理,怎么解决呢?下面来看一道例题。例 3 最小费用问题问题描述:已

11、知从 A到 J的路线及费用如图 3,求从 A到 J的最小费用路线。图 3解决问题:本问题没有明显的阶段划分,各点间没有一定的先后次序,不能按照最少步数来决定顺序,如从 A到 D走捷径需 4,但 A-C-D只需 3,更优。看来图中出现回路,不能实施动态规划。其实不然。细想一下,从 A到 J的最优策略,它每一部分也是最优的(可以用前述的反证法来证明) ,换言之,本题也具有最优化性质,只是阶段不明显而已。对于这类问题,我们可以换个角度分析,构造算法。比较一下前面所讲的前向与后向动态规划法,都是以某个状态为终点,寻找到达次点的路径,然后比较优劣,确定此状态最优值。可是,本题阶段不明显,各状态之间的道路

12、会出现嵌套,故此法不能使用。变一下角度,每次都以某个状态为起点,遍历由它引申出去的路径,等所有已知状态都扩展完了,再来比较所有新状态,把值最小的那个状态确定下来,其它的不动。如图 3,先从 A出发,找到 3个结点B,D,C,费用为 F(B)=3,F(D)=4,F(C)=2。因为 F(B) ,F(D)都大于F(C) ,那么可以确定:不可能再有路线从 B或 D出发到 C,比 A-C更优。这样F(C)的最优值便确定了。可是,有没有路线从 C出发到 B或 D,比 A-B或 A-D更优呢?还不清楚。继续下去,因为 A扩展完了,只有从 C开始,得到 A-C-第 5 页 共 11 页D=3,A-C-F=3,

13、于是 F(D)的值被刷新了,等于 3。现在,有 F(B)=F(D)=F(F)=3,于是,三点的最优值都确定下来了。然后以分别以三个点为起点,继续找。以次类推,直到 J点的最优值确定为止。细心观察,其实本题的隐含阶段就是以各结点的最优值的大小来划分的,上述过程就是按最优值从小到大前向动态规划。人们习惯上把此题归入到图论范畴中,并将上述方法称为标号法。五 动态规划的应用上文叙述了动态规划的几种解法,下面我们通过例题来加深了解。例 4 复制书稿(BOOKS)问题描述:假设有 M本书(编号为 1,2,M) ,想将每本复制一份,M 本书的页数可能不同(分别是 P1,P2,PM) 。任务时将这 M本书分给

14、 K个抄写员(K=M ,每本书只能分配给一个抄写员进行复制,而每个抄写员所分配到的书必须是连续顺序的。意思是说,存在一个连续升序数列 0=bob1b2tj-tv then x:=fp2,v else x:=tj-tv;if xtm-ti then x:=fp2,i else x:=tm-ti;if xy thenbeginx:=x-y;inc(m,x);inc(ttabs(x);if x0 then inc(t1x);end;end;if m=0 thenbeginwriteln(f2,0);close(f2);第 10 页 共 11 页halt;end;处理步数为零的情况l1:=m;fm:=

15、1;end;procedure main;主过程beginrepeatfor ft:=ft+1 to re do以步数为阶段扩展状态beginx:=lft;for i:=1 to 6 do不同差值的六种情况beginif x-6 thenif (tfti0)and(fx-i*2=0) thenbegininc(re);lre:=x-i*2;flre:=fx+1;if lre=0 then找到解便打印beginwriteln(f2,flre-1);close(f2);第 11 页 共 11 页halt;end;new(tre);tre:=tft;dec(trei);end;差值减少end;end;until ft=re;for i:=1 to 6 doif (fi0)or(f-i0) thenbeginif (f-i0)and(fi=0)or(f-ifi) then x:=f-ielse x:=fi;writeln(f2,x-1);i:=6;end;close(f2);骨牌上下两行点数之和的绝对值不为零end;begininit;main;end.参考数目:1 运筹学-规划及网络 王永县 编著 清华大学出版社2 组合数学的算法与程序设计 王建德 编著 清华大学出版社3 中学信息学奥林匹克习题解析张欣研 李冬梅 北京大学出版社第 12 页 共 11 页

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 工作计划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报