- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
动态规划算法和贪心算法的比较与分析
1、最优化原理
根据一类多阶段问题的特点,把多阶段决策问题变换为一系列互相联系的单
阶段问题,然后逐个加以解决。解决这类问题的最优化原理:一个过程的最优决策
具有这样的性质,即无论其初始状态和初始决策如何,其今后诸策略对以第一个
决策所形成的状态作为初始状态的过程而言,必须构成最优策略。简而言之,一个
最优策略的子策略,对于它的初态和终态而言也必是最优的。
2、动态规划
2.1动态规划算法
动态规划是运筹学的一个分支,与其说它是一种算法,不如说它是一种思维
方法更贴切。因为动态规划没有固定的框架,即便是应用到同一道题上,也可以
建立多种形式的求解算法。许多隐式图上的算法,例如求单源最短路径的
Dijkstra算法、广度优先搜索算法,都渗透着动态规划的思想。还有许多数学
问题,表面上看起来与动态规划风马牛不相及,但是其求解思想与动态规划是完
全一致的。因此,动态规划不像深度或广度优先那样可以提供一套模式,需要的
时候,取来就可以使用。它必须对具体问题进行具体分析、处理,需要丰富的想
象力去建立模型,需要创造性的思想去求解。
动态规划算法的基本思想是将待求解问题分解成若干子问题,先求解子问题,
然后从这些子问题的解得到原问题的解。值得注意的是,用动态规划法求解的问
题,经分解后得到的子问题往往不是互相独立的。
最优化原理是动态规划的基础。任何一个问题,如果失去了这个最优化原理
的支持,就不可能用动态规划方法计算。能采用动态规划求解的问题都要满足两
个条件:①问题中的状态必须满足最优化原理;②问题中的状态必须满足无后效
性。
所谓无后效性是指下一时刻的状态只与当前状态有关,而和当前状态之前的
状态无关,当前的状态是对以往决策的总结。
2.2动态规划算法的基本要素
(1)最优子结构。设计动态规划算法的第一步通常是刻画最优解的结构。当
问题的最优解包含了其子问题的最优解时,称该问题具有最优子结构性质。问题
的最优子结构性质提供了该问题可用动态规划算法求解的重要线索。在动态规划
算法中,利用问题的最优子结构性质,以自底向上的方式递归地从子问题的最优
解逐步构造出整个问题的最优解。
(2)重叠子问题。在用递归方法自顶向下求解问题时,每次产生的子问题并
不总是新问题,有些子问题被反复计算多次。动态规划算法正是利用了这种子问
题的重叠性质,对每个子问题只解一次,而后将其解保存在一个表格中,当再次
需要解此子问题时只是简单地用常数时间查看一下结果。
2.3动态规划适于解决的问题
适用动态规划的问题必须满足最优化原理和无后效性。
(1)状态必须满足最优化原理。作为整个过程的最优策略具有如下性质:无论
过去的状态和决策如何,对前面的决策所形成的当前状态而言,余下的诸决策必
须构成最优策略。可以通俗地理解为子问题的局部最优将导致整个问题的全局最
优,即问题具有最优子结构的性质,也就是说一个问题的最优解只取决于其子问
题的最优解,非最优解对问题的求解没有影响。
(2)状态必须满足无后效性。所谓无后效性是指:“过去的决策只能通过当前
状态影响未来的发展,当前的状态是对以往决策的总结”。它说明动态规划适于
解决当前决策和过去状态无关的问题。状态出现在策略的任何一个位置,它的地
位都是相同的,都可以实施同样的决策,这就是无后效性的内涵。
2.4问题求解模式
动态规划所处理的问题是一个多阶段决策问题,一般由初始状态开始,通过
对中间阶段决策的选择,达到结束状态。这些决策形成了一个决策序列,同时确
定了完成整个过程的一条活动路线(通常是求最优的活动路线)。如下所示:
初始状态→决策1→决策2→决策n→结束状态
动态规划的设计有一定的模式,一般要经历以下4个步骤:
(1)划分阶段。按照问题的时间或空间特征,把问题分为若干个阶段。在划
分阶段时,注意划分后的阶段一定要是有序的或者是可排序的,否则问题就无法
求解。
(2)确定状态和状态变量。将问题发展到各个阶段时所处于的各种客观情况
用不同的状态表示出来。当然,状态的选择要满足无后效性。
(3)确定决策并写出状态转移方程。因为决策和状态转移有着天然的联系,
状态转移就是根据上一阶段的状态和决策来导出本阶段的状态。所以如果确定了
决策,状态转移方程也就可写出。但事实上常常是反过来做,根据相邻两段各状
态之间的关系来确定决策。
(4)寻找边界条件。给出的状态转移方程是一个递推式,需要一
文档评论(0)