


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、动态规划与搜索一一动态规划是高效率、高消费算法同样是解决最优化问题,有的题目我们采用动态规划,而有的题目我们则需要用搜索。这 其中有没有什么规则呢?我们知道,撇开时空效率的因素不谈,在解决最优化问题的算法中,搜索可以说是“万能” 的。所以动态规划可以解决的问题,搜索也一定可以解决。把一个动态规划算法改写成搜索是非常方便的,状态转移方程、规划方程以及边界条件都 可以直接“移植”,所不同的只是求解顺序。动态规划是自底向上的递推求解,而搜索则是自 顶向下的递归求解(这里指深度搜索,宽度搜索类似)。反过来,我们也可以把搜索算法改写成动态规划。状态空间搜索实际上是对隐式图中的点 进行枚举,这种枚举是自顶
2、向下的。如果把枚举的顺序反过来,变成自底向上,那么就成了 动态规划。(当然这里有个条件,即隐式图中的点是可排序的)正因为动态规划和搜索有着求解顺序上的不同,这也造成了它们时间效率上的差别。 在搜索中,往往会出现下面的情况:对于上图(a)这样几个状态构成的一个隐式图,用搜索算法就会出现重复,如上图(b)所示, 状态c2被搜索了两次。在深度搜索中,这样的重复会引起以c2为根整个的整个子搜索树的 重复搜索;在宽度搜索中,虽然这样的重复可以立即被排除,但是其时间代价也是不小的。 而动态规划就没有这个问题,如上图(c)所示。一般说来,动态规划算法在时间效率上的优势是搜索无法比拟的。(当然对于某些题目,
3、根本不会出现状态的重复,这样搜索和动态规划的速度就没有差别了。)而从理论上讲,任何 拓扑有序(现实中这个条件常常可以满足)的隐式图中的搜索算法都可以改写成动态规划。 但事实上,在很多情况下我们仍然不得不采用搜索算法。那么,动态规划算法在实现上还有 什么障碍吗?考虑上图(a)所示的隐式图,其中存在两个从初始状态无法达到的状态。在搜索算法中,这 样的两个状态就不被考虑了,如上图(b)所示。但是动态规划由于是自底向上求解,所以就无 法估计到这一点,因而遍历了全部的状态,如上图(c)所示。一般说来,动态规划总要遍历所有的状态,而搜索可以排除一些无效状态。更重要的是搜 索还可以剪枝,可能剪去大量不必要的
4、状态,因此在空间开销上往往比动态规划要低很多。动态规划与网络流动态规划是易设计易实现的算法由于图的关系复杂而无序,一般难以呈现阶段特征(除了特殊的图如多段图一参见例一), 因此动态规划在图论中的应用不多。但有一类图,它的点却是有序的,这就是无环有向图。在有向无环图中,我们可以对点进行拓扑排序,使其体现出有序的特征,从而据此划分阶 段。在有向无还图中求最短路径的算法,已经体现出了简单的动态规划思想。请看下面的例 子。例16单源最短路径问题已知从a到j的路线及费用如上图,求从a到j的最小费用路线。问题的分析和解答:本问题没有明显的阶段划分,各点间没有一定的先后次序(请注意与例一不同),不能按 照最
5、少步数来决定顺序,如从a到d走捷径需4,但a-c-d只需3,更优。看来图中出现回路, 不能实施动态规划。其实不然。细想一下,从a到j的最优策略,它每一部分也是最优的(可 以用反证法来证明),换言之,本题也具有最优化性质,只是阶段不明显而已。对于这类问题,我们可以换个角度分析,构造算法。比较一下前面所讲的动态规划法,都 是以某个状态为终点,寻找到达次点的路径,然后比较优劣,确定此状态最优值。可是,本 题阶段不明显,各状态之间的道路会出现嵌套,故此法不能使用。变一下角度,每次都以某 个状态为起点,遍历由它引申出去的路径,等所有已知状态都扩展完了,再来比较所有新状 态,把值最小的那个状态确定下来,其
6、它的不动。如上图,先从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-d=3, a-c-f=3,于是f(d)的值被刷新了,等于3。现在,有 f(b)=f(d)=f(f)=3,于是,三点的最优值都确定下来了。然后以分别以三个点为起点, 继续找。以次类推,直到j点的最优值确定为止。细心观察,其实本题的隐含阶段就
7、是以各结点的最优值的大小来划分的,上述过程就是按 最优值从小到大前向动态规划。人们习惯上把此题归入到图论范畴中,并将上述方法称为标 号法。这个算法就是图论中著名的dijkstra单源最短路径算法。事实上,动态规划在图论中还有更多的应用,请看下例:例17 n个人的街道问题在街道问题(参见例7)中,若有n个人要从左下角走向右上角,要求他们走过的边的总 长度最大。当然,这里每个人也只能向右或向上走。下面是一个样例,左图是从出发地到目 的地的三条路径,右图是他们所走过的边,这些边的总长度为5 + 4 + 3 + 6 + 3 + 3 + 5 + 8 + 8 + 7 + 4 + 5 + 9 + 5 + 3
8、 = 78 (不一定是最大)。这个题目是对街道问题的又一次扩展。仿照街道问题的解题方法,我们仍然可以用动态 规划来解决本题。不过这一次是n个人同时走,状态变量也就需要用n维向量来表示。相应 的,决策变量也要变成n维向量:状态转移方程不需要做什么改动:在写规划方程时,需要注意在第k阶段,n条路径所走过的边的总长度的计算,在这里 用来表示了:边界条件为可见将原来的动态规划算法移植到这个问题上来,在理论上还是完全可行的。但是,现 在的这个动态规划算法的时空复杂度已经是关于n的指数函数,只要n稍微大一点,这个算 法就不可能实现了。下面我们换一个思路,将n条路径看成是网络中一个流量为n的流,这样求解的目
9、标就是 使这个流的费用最大。但是本题又不同于一般的费用流问题,在每一条边e上的流费用并不 是流量和边权的乘积,而是用下式计算:为了使经典的费用流算法适用于本题,需要将模型稍微转化一下:如图,将每条边拆成两条,拆开后一条边上有权w0,但是容量限制为1;另一条边没有 容量限制,但是流过这条边就不计费用。这样我们就把问题转化成了一个标准的最大费用固 定流问题。这个算法可以套用经典的最小费用最大流算法,在此就不细说了。ioi97的“障碍物探测器”比这一题要复杂一些,但是基本思想是相似的。类似的题目还 有99年冬令营的“迷宫改造”。从这些题目中都可以看到动态规划和网络流的联系。推广到一般情况,任何有向无环图中的费用流问题在理论上说,都可以用动态规划来解决。 对于流量为n (如果流量不固定,这个n需要事先求出来)的费用流问题,用n维的向量 xk=(xk,1,xk,2,xk,n)来描述状态,其中xk,iEv, IWiWn。相应的,决策也用n维的 向量 uk=(uk,1,uk,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 碳素掺杂剂在铁合金冶炼中的应用考核试卷
- 森林公园生态旅游市场细分与定位考核试卷
- 农业农业机械产业节能减排配合服务批发考核试卷
- 矿物加工厂职业卫生与员工健康考核试卷
- 渔业资源保护与海洋资源长期可持续发展战略全面实施考核试卷
- 电信行业区块链技术探索与应用考核试卷
- 红富士苹果病虫害防治考核试卷
- 武汉民政职业学院《描述统计学和概率》2023-2024学年第一学期期末试卷
- 石家庄工程职业学院《环境学导论》2023-2024学年第二学期期末试卷
- 山西体育职业学院《高级应用气象统计》2023-2024学年第二学期期末试卷
- 病理性近视怎治疗
- 儿科护理一科一品
- GB/T 44804-2024声学自由场条件下18岁至25岁耳科正常人听力阈值的统计分布
- 医院感染课件教学课件
- 幼儿园孩子食物中毒培训
- 影响健康因素多 课件 2024-2025学年人教版(2024)初中体育与健康七年级全一册
- 【核心素养目标】9.1压强 教学设计 2023-2024学年教科版八年级下册物理
- 人美版高中美术必修《美术鉴赏》 第十三课 新艺术的实验-西方现代艺术 (教案)
- 宗亲联谊修谱会活动方案及流程
- 2025届江苏省南京市六区初三第二学期期中考试英语试题试卷含答案
- 加装电梯投标方案(技术方案)
评论
0/150
提交评论