动态规划算法的应用及其优化.PDFVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
动态规划算法的应用及其优化.PDF

动态规划算法的应用及其优化 福建师大附中 05年高一 陈首聪 一、关于动态规划的相关知识 动态规划现在作为一种空间大、时效高的高效算法,在赛场上被应用得越来 越普遍,应此我们很有必要掌握这个算法。 动态规划是用来解决多阶段决策问题的。那么什么是所谓的多阶段决策问题 呢?就是一个问题可以根据时间或空间划分为多个阶段,每一阶段都需要做出决 策,来保证最后效果为最优的问题即为多阶段决策问题。 此外,动态规划与分治法有些类似。它们都是不停地将原问题分解为更小的 子问题,通过求出子问题的解从而得出原问题的解的一种算法。可是,能够用动 态规划求解的问题,它的子问题往往是互相包含的,如果用分治法解决的话,会 重复多次,浪费时间。所以我们可以记录下算过的子问题,以后可以直接调用, 这就是动态规划算法的基本思路。 (一)、动态规划的基本要素 1、阶段 阶段就如同上面所说,是将一个问题按时间或空间顺序分解为若干的相互有 联系的阶段。以便最后可以按顺序求出每个阶段的解来得到答案。 阶段之间也是相互有联系的,如何实现阶段之间的转化呢?这就需要通过状 态和状态转移。 2、状态 状态就是阶段的属性,每个阶段开始时的客观条件。每个阶段往往包含不只 一个状态,我们用一个状态变量来表示这个阶段状态的集合。此外,每个阶段之 间的状态的互相转化叫做状态转移。阶段和阶段就是通过状态转移来互相变化和 联系的。 3 、决策 在确定了某阶段的状态后,就要做出一些决定来确定下一阶段的状态,这个 决定就叫做决策。 决策和状态转移是有很密切的关系的。决策直接决定如何状态转移,即是说 决策是状态转移的途径,状态转移是决策的目的。 4、策略 整个问题的决策的序列就叫做策略。 5、状态转移 上面已经提到,现在来个定义: 状态转移就是由当前阶段通过一个决策确定了下一阶段的状态的过程。 (二)、动态规划必备性质 1、最优化原理(最优子结构性质): 一个问题的最优解必定包含其子问题的最优解,这就是最优子结构性质。在 动态规划里就是说一个最优策略集合必定包含是其子问题的最优策略,在这里就 是最优化原理。 最优化原理是一个问题能否用动态规划求解的前提,因为若没有这条性质, 我们划分出来的阶段就无法互相联系,也就无法进行状态转移,自然就无法用动 态规划求解。 2、无后效性 无后效性说的是当前阶段的状态只由它之前的阶段决定,不会由其后面的 (即未来的)阶段决定。 后效性也是一个问题可否用动态规划求解的条件。因为动态规划算法是按阶 段次序求解的,无法对一个阶段的未来的阶段进行判断,因此不可能解决有后效 性的问题。 此外,后效性在图论上的体现就是有环图。所以想用动态规划求解一些图论 的题目,就这个图必须是有向无环图。 在现在的问题中,经常会有题目乍看之下是有后效性的,而有些同学就放弃 了动态规划算法,转用搜索,导致了无法满足题目的时间要求。但是实际上它是 可以用动态规划算法求解的,这就需要同学们动一些脑筋,用不同的方法进行阶 段划分。有句话说的好:“横看成岭侧成峰”,当我们换了一种划分方法时,或许 会有一种豁然开朗之感。 (三)、动态规划的解题步骤 上面讲了那么多动态规划算法的知识,现在就来说说用动态规划求解题目的 一般过程: 1、 划分阶段 划分阶段是动态规划求解的最重要的部分。如果能够对问题有一个较好的阶 段划分方法,这道题你就已经成功了一半了。这就如同搜索算法中的搜索模型构 建一样重要。 2、 按划分的阶段写出状态 阶段是一个宏观的概念,只有将其描述成状态,程序才有可能实现。 3 、确定决策,写出状态转移方程 4、写出动规方程 5、编程实现 因为动态规划的难度就在于之前的理论。理论成立,写出方程后,程序实现 将会非常简单。 二、动态规划与其它算法的对比 (一)、动态规划与贪心算法的对比 贪心作为动态规划的一种分支,有着就连“高效算法”动态规划也无法与之 匹敌的时间与空间效率。但是就因为贪心是动态规划的一个分支,所以它的适用 范围也比动态规划小,使用限制也更严格。 贪心算法 动态规划

文档评论(0)

sunyangbill + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档