- 1、本文档共16页,可阅读全部内容。
- 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]
下文就将分别讨论对这三个因素的优化。这里需要指出的是:这三者之间不是相互独立的,而是相互联系,矛盾而统一的。有时,实现了某个因素的优化,另外两个因素也随之得到了优化;有时,实现某个因素的优化却要以增大另一因素为代价。因此,这就要求我们在优化时,坚持“全局观”,实现三者的平衡。
三、动态规划时间效率的优化
3.1 减少状态总数
我们知道,动态规划的求解过程实际上就是计算所有状态值的过程,因此状态的规模直接影响到算法的时间效率。所以,减少状态总数是动态规划优化的重要部分,本节将讨论减少状态总数的一些方法。
1、改进状态表示
状态的规模与状态表示的方法密切相关,通过改进状态表示减小状态总数是应用较为普遍的一种方法。
Raucous Rockers 演唱组(USACO`96)
[问题描述]
现有n首由Raucous Rockers 演唱组录制的珍贵的歌曲,计划从中选择一些歌曲来发行m张唱片,每张唱片至多包含t分钟的音乐,唱片中的歌曲不能重叠。按下面的标准进行选择:
这组唱片中的歌曲必须按照它们创作的顺序排序;
包含歌曲的总数尽可能多。
输入n,m,t,和n首歌曲的长度,它们按照创作顺序排序,没有一首歌超出一张唱片的长度,而且不可能将所有歌曲的放在唱片中。输出所能包含的最多的歌曲数目。
(1≤n, m, t≤20)
[算法分析]
本题要求唱片中的歌曲必须按照它们创作顺序排序,这就满足了动态规划的无后效性要求,启发我们采用动态规划进行解题。
分析可知,该问题具有最优子结构性质,即:设最优录制方案中第i首歌录制的位置是从第j张唱片的第k分钟开始的,那么前j-1张唱片和第j张唱片的前k-1分钟是前1..i-1首歌的最优录制方案,也就是说,问题的最优解包含了子问题的最优解。
设n首歌曲按照写作顺序排序后的长度为long[1..n],则动态规划的状态表示描述为:
g[i, j, k],0≤i≤n,0≤j≤m,0≤kt,表示前i首歌曲,用j张唱片另加k分钟来录制,最多可以录制的歌曲数目,则问题的最优解为g[n,m,0]。由于歌曲i有发行和不发行两种情况,而且还要分另加的k分钟是否能录制歌曲i。这样我们可以得到如下的状态转移方程和边界条件:
当k≥long[i],i≥1时:
g[i, j, k]=max{g[i-1,j,k-long[i]],g[i-1,j,k]}
当klong[i],i≥1时:
g[i, j, k]=max{g[i-1,j-1,t-long[i]],g[i-1,j,k]}
规划的边界条件为:
当0≤kt时:g[0,0,k]=0;
我们来分析上述算法的时间复杂度,上述算法的状态总数为O(n*m*t),每个状态转移的状态数为O(1),每次状态转移的时间为O(1),所以总的时间复杂度为O(n*m*t)。由于n,m,t均不超过20,所以可以满足要求。
[算法优化]
当数据规模较大时,上述算法就无法满足要求,我们来考虑通过改进状态表示提高算法的时间效率。
本题的最优目标是用给定长度的若干张唱片录制尽可能多的歌曲,这实际上等价于在录制给定数
您可能关注的文档
- 定罪与量刑程序关系模式研究.doc
- 东北大学 高频 高频第三章 高频电路基础 2010.ppt
- 东北大学,决策支持系统,课件DSSCH2决策支持系统概述.ppt
- 东北大学,决策支持系统,课件DSSCH6决策支持新技术.ppt
- 东北大学机械设计习题.doc
- 东北地区地道中药材资源32994.ppt
- 东北林蛙皮抗菌肽cDNA克隆及序列分析:蛙类新抗菌肽家族发现.pdf
- 东诚教育集团考前必看:《建设工程技术与计量》课本浓缩精华—388.pdf
- 东城区教育信息中心.ppt
- 东大工程结构设计原理课件 01绪论.ppt
- springbooot+vue基于java的房屋维修系统毕业论文.doc
- 中国消防救援学院《单片机系统实验》2023-2024学年第一学期期末试卷.doc
- 2025年溧阳纺织化学品项目申请.pptx
- 景区门票包销合同模板(3篇).docx
- 【股票技术指标学习指南】第七章第三节货币需要量的测算.doc
- 2025春 _ 人教版七年级英语下册【unit4】看音标写单词.doc
- 2025春 _ 人教版七年级英语下册【unit5】看音标写单词.doc
- 2025春 _ 人教版七年级英语下册【unit6】看音标写单词.doc
- 2025春 _ 人教版七年级英语下册【unit7】看音标写单词.doc
- 2025春 _ 人教版七年级英语下册【unit8】看音标写单词.doc
最近下载
- 敬老院运营与管理规范.docx VIP
- DB31_T 1598-2025 __城市轨道交通车辆寿命评估通用要求.pdf
- 分户验收方案 .doc VIP
- 液力變矩器的结构.doc VIP
- 2025年内蒙古自治区公安机关留置看护监管机构(专业知识)考试试题【含答案】.pdf VIP
- 一汽-大众-迈腾MAGOTAN-产品使用说明书-新一代迈腾330TSI DSG尊贵型-FV7187BBDBG-MagotanB8L-201606.pdf
- 液态氢风险分析.docx VIP
- TCAAA051-2020湖羊规范合格.pdf VIP
- 地震救援 地震八大救援知识 .docx VIP
- 牛根生致中国企业家俱乐部理事及长江商学院同学的一封信Microsoft Word.doc VIP
文档评论(0)