国家集训队2004论文集 朱晨光.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
优化,再优化! ——从《鹰蛋》一题浅析对动态规划算法的优化 引言 问题 当鹰蛋从第E层楼及以下楼层落下时是不会碎的,但从第(E+1)层楼及以上楼层向下落时会摔碎。 问题 算法一 由于是求最优值,我们自然想到了使用动态规划! 算法一 算法一 算法一 显然,这个算法的时间复杂度为O(N3) 算法二 算法二 因此,当M= 时,直接输出 即可. 算法二 算法三 算法三 算法三 算法四 算法四 算法四 算法四 算法四 算法四 算法四 算法四 算法四 算法四 算法四 算法四 算法四 算法四 情况一(p’p) 情况二(p’=p) 情况三(p’p) 算法四 小结 算法五 算法五 算法五 算法五 算法五 总结 总结 总结 在实际问题中,尽管优化手段千变万化,但万变不离其宗,其本质思想都是: 总结 结束语 算法五 f(i-1) f(i) j j p+1 p’ s’ p s max{f(i,p’),f(i-1,s’)}+1f(i,j-1) 因此,我们只需根据f(i,p)与f(i-1,j-p-1)的大小关系便可直接确定f(i,j)的取值,从而使状态转移成功地降为O(1),算法的时间复杂度降为O(Nlog2N) 综上所述, 当f(i,p)=f(i-1,j-p-1)时,可以直接得出f(i,j)=f(i,j-1); 当f(i,p)f(i-1,j-p-1)时,无论任何决策都不能使f(i,j)=f(i,j-1),所以此时f(i,j)=f(i,j-1)+1. 这时我们会发现,经过了数次优化的动态规划模型已经不可能再有所改进了,对这题的讨论似乎可以到此为止了。但是,直到现在为止,我们还只是对一个动态规划模型进行优化。事实上,对于一道动态规划题目,往往可以建立多种模型。因此,我们不妨继续思考,来找到更高效的模型。 经过不懈努力,我们终于又找到了一种模型,在这种模型下的算法五,可以将时间复杂度降为O( )。让我们来看一看算法五的精彩表现吧! 这里,我们需要定义一个新的动态规划函数g(i,j),它表示用j个蛋尝试i次在最坏情况下能确定E的最高楼层数。 而且只用1个鹰蛋试i次在最坏情况下可在i层楼中确定E,即g(i,1)=i (i=1) 状态转移也十分简单。 很显然,无论有多少鹰蛋,若只试1次就只能确定一层楼,即g(1,j)=1 (j=1) g(i,j)=g(i-1,j-1)+g(i-1,j)+1 (i,j1) 我们的目标便是找到一个x,使x满足g(x-1,M)N且g(x,M)=N ,答案即为x. 这个算法乍一看是O(Nlog2N)的,但实际情况却并非如此。 经过观察,我们很快会发现,函数g(i,j)与组合函数C(i,j)有着惊人的相似,而且可以很容易证明对于任意i,j (i,j=1), 总有g(i,j)= C(i,j). 这样,我们可以得到C(x-1,M)=g(x-1,M)N。 根据这个式子,我们可以证明运算量 (即xM)与 同阶, 这里证明从略。因此,我们若在M=1时作特殊判断,就可以使运算量最差与 同阶。 在新的动态规划模型之下,我们找到了一个比前几种算法都优秀得多的方法。这就提醒我们不要总是拘泥于旧的思路。换个角度来审视问题,往往能收到奇效。倘若我们仅满足于算法四,就不能打开思路,找到更高效的解题方法。可见多角度地看问题对于动态规划的优化也是十分重要的。 本文就《鹰蛋》一题谈了五种性能各异的算法,这里做一比较: O(log2N) O( ) 算法五 O(N) O(Nlog2N) 算法四 O(N) O(N(log2N)2) 算法三 O(N) O(N2log2N) 算法二 O(N) O(N3) 算法一 空间复杂度 时间复杂度 算法编号 从这张表格中,我们可以很明显地看出优化能显著提高动态规划算法的效率。并且,优化的方法也是多种多样的。这就要求我们在研究问题时必须做到: 深入探讨 大胆创新 永不满足 不断改进 二、另辟蹊径,建立新的模型,从而得到更高效的 算法。 一、找到动态规划算法中仍不够完美的部分,进行 进 一步改进; * * 安徽省芜湖市第一中学 朱晨光 在当今的信息学竞赛中,动态规划可以说是一种十分常用的算法。它以其高效性受到大家的青睐。然而,动态规划算法有时也会遇到时间复杂

文档评论(0)

lyxbb + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档