- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
运 筹 帷 幄 之 中决 胜 千 里 之 外动态规划什么是动态规划? 动态规划是解决某一类问题的一种方法,是分析问题的一种途径,而不是一种特殊算法(如线性规划是一种算法)。因此,在学习动态规划时,除了对基本概念和方法正确地理解外,应以丰富的想象力去建立模型,用创造性的技巧去求解。动态规划三要素:阶段,状态,决策。1、阶段(stage)把所给问题恰当地划分为若干个相互联系又有区别的子问题,通常根据时间顺序或空间特征来划分,以便按阶段的次序逐段解决整个过程的优化问题。描述阶段的变量叫作阶段变量,阶段变量通常用k表示(k = 1,2,3,…,n)。动态规划三要素:阶段,状态,决策。2、状态(state)用以描述事物(或系统)在某特定的时间与空间域中所处位置及运动特征的量,称为状态。它应能描述过程的特征并具有“无后效性”,又称马尔柯夫性,是指系统从某个阶段往后的发展,仅由本阶段所处的状态及其往后的决策所决定,与系统以前经历的状态和决策(历史)无关。 状态变量 —— sk(state variable) 状态集合 —— Sk(set of admissible states)动态规划三要素:阶段,状态,决策。3、决策(decision)决策:确定系统过程发展的方案。决策的实质是关于状态的选择,是决策者从给定阶段状态出发对下一阶段状态作出的选择。决策变量 — uk(sk)(decision variable)决策集合 — Dk(sk)(set of admissible decision)决策u1决策u2决策uk决策un状态 sn+1状态 s1状态 s2状态 s3状态 sk状态 sk+1状态 xn阶段1阶段2...阶段k...阶段n多阶段决策过程及实例动态规划的适用范围动态规划用于解决多阶段决策最优化问题,但是不是所有的最优化问题都可以用动态规划解答呢?一般在题目中出现求最优解的问题就要考虑动态规划了,但是否可以用还要满足两个条件:最优子结构(最优化原理)当前状态是前面状态的完美总结无后效性什么是无后效性呢?就是说在状态i求解时用到状态j而状态j就解有用到状态k…..状态N,而求状态N时有用到了状态i动态规划解决问题的一般思路(1)模型匹配法:最先考虑的就是这个方法了。挖掘问题的本质,如果发现问题是自己熟悉的某个基本的模型,就直接套用,但要小心其中的一些小的变动,现在考题办都是基本模型的变形套用时要小心条件,三思而后行。这些基本模型在先面的分类中将一一介绍。(2)三要素法仔细分析问题尝试着确定动态规划的三要素,不同问题的却定方向不同:先确定阶段的问题:数塔问题,和走路问题(详见解题报告)先确定状态的问题:大多数都是先确定状态的。先确定决策的问题:背包问题。(详见解题报告)(3)寻找规律法(4)边界条件法找到问题的边界条件,然后考虑边界条件与它的领接状态之间的关系。这个方法也很起效。(5)放宽约束和增加约束这个思想是在陈启锋的论文里看到的,具体内容就是给问题增加一些条件或删除一些条件使问题变的清晰。状态是一维的例1:拦截导弹某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。问题:输入导弹依次飞来的高度(389,207,155 ,300 299 ,170 ,158 ,65),计算这套系统最多能拦截多少导弹,如果要拦截所有导弹最少要配备多少套这种导弹拦截系统?问题分析第一问不难看出这是一个求最长非升子序列问题,显然标准算法是动态规划。对于第二问最直观的方法就是求完一次opt[i]后把刚才要打的导弹去掉,在求一次opt[i]直到打完所有的导弹,但这样做就错了。不难举出反例: 6 1 7 3 2错解: 6 3 2/1/7正解:6 1/7 3 2认真分析一下题就回发现:每一个导弹最终的结果都是要被打的,如果它后面有一个比它高的导弹,那打它的这个装置无论如何也不能打那个导弹了,经过这么一分析,这个问题便抽象成在已知序列里找最长上升序列的问题。状态是二维的所谓二维状态就是说一般设计的状态是dp[i][j]形式的。那i,j可以代表什么呢?(1)i,j组合起来代表一个点的坐标(显然是平面坐标系)(如:街道问题)。(2)i,j组合表示一个矩阵的单元的位置(第i行,第j列)(如:数塔问题)(3)起点为i长度为j的区间。(如:回文词)(4)起点为i终点为j的区间。(如:石子合并问题)(5)两个没关联的事物,事物1的第i个位置,对应事物2的第j个位置(花店橱窗设计)(6)两个序列,第一个序列的前i个位置
文档评论(0)