动态规划加速原理.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
动态规划加速原理

 PAGE \* MERGEFORMAT 4 动态规划加速原理 赵明阳 【摘要】 本文略述了动态规划的内容和基本特点,探讨了动态规划算法在不同适用场合的优化方式。通过例子说明在时间或空间上的基本优化策略,和预处理、建立状态方程的技巧,进而得出一般性的概括结论。对于动态规划的基本知识点则不再赘述,请参考相应的书籍资料。作者假定读者已了解动态规划的知识点及基本思想。 【关键字】 动态规划 加速 优化 引言 现实生活中有许多多阶段决策问题,每个阶段的决策依赖于当前状态,又随即引起状态的转移,从而动态地产生一个决策序列,这种解决多阶段决策最优化问题的过程叫作动态规划。 动态规划算法是一种常用算法,其特点是充分利用已得到的子问题的结果,避免了大量冗余的重复计算。而在某些问题中,会存在比较苛刻的空间或时间的限制,这时我们需要对朴素的动态规划算法进行进一步的优化。 对动态规划算法的优化,可以较好地提高它的运行效率,从而扩大它的应用范围。它可以在一定程度上克服计算机硬件的限制。而对于程序编写者,更具有一种挑战性,而在挑战的过程中,更充分地认识算法的实质,综合提高水平。 动态规划基本要素和优劣势 【关键字】状态、阶段、转移、无后效性、边界性、最优子结构、子问题重叠性 其中:1、最优子结构:问题的最优解包含了其子问题的最优解。 2、重叠子问题:在用递归算法自顶向下解问题时,每次产生的子问题并不总是新问题,有些子问题被反复计算多次,此称为子问题具有重叠性。 【优缺点】 多项式级的动态规划与指数级的穷举法相比,大大减少了计算量。并且由于阶段性,可以得出更为丰富的计算结果(当前状态到中间状态的最优值),这对于很多实际问题来说是很有用的。 动态规划相比一般穷举也存在一定缺点:空间占据过多。动态规划算法的基本思路是用一个表来记录所有已解的子问题的答案,不管该子问题以后是否被用到,只要它被计算过,就将其结果填入表中(具体的动态规划算法多种多样,但它们具有相同的填表格式)。因而动态规划算法也被称作一种“用空间换时间”的算法。而动态规划子问题中也有许多是多余的(它们对最终结果没有影响),对其进行剔除也比穷举搜索的剪枝要复杂的多。 三、常数时间优化 常数时间上的优化:循环次数与计算机翻页。 对于多重循环,以二重循环为例,在外层循环次数I与内循环次数J满足I1*J1=I2*J2的情况下,它们的实际效率并不相同。数组在计算机上存放实际是按一维存放的,数组存放顺序:后继元素下标增量从右到左。数据在机器中存放2KB算一页,因此当寻址加上下表值的位移量时要进行查页码,反复查询页码会耗费时间。所以当元素较多(大于2KB)时,应尽可能按照存放顺序安排计算。参见例一。 花店橱窗布置 IOI’1999 Day1 你希望以最美观的方式布置花店的橱窗。现在你有F束(1≤F≤100)不同品种的鲜花,还有更多数量的花瓶来放这些鲜花。花瓶被按顺序摆成一行放在货架上,并从1至V(F≤V≤100)依次编号(V是花瓶的数目)。1号瓶放在最左面,V号瓶放在最右面。鲜花也被从1至F编号。编号小的鲜花所放的花瓶的编号也小。也就是说,如果I<J,则放鲜花I的花瓶一定放在鲜花J的花瓶的左边。 假如你有一束杜鹃花(编号为1),一束秋海棠(编号为2),一束康乃馨(编号为3)。现在你要把所有这些花放入花瓶中,并且杜鹃花必须放在秋海棠所在花瓶的左边,同样,秋海棠必须放在康乃馨所在花瓶的左边。如果花瓶的数目比鲜花的数目多,那么将有一些花瓶被空置。注意:一个花瓶中最多只能放一束鲜花。 因为花瓶的形状,鲜花种类也不同,因此不同种类的鲜花放入不同形状的花瓶可能产生不同的美学效果,并以美学值(一个整数)来表示,空置花瓶的美学值为零。 在上述例子中,花瓶与花束的不同搭配所具有的美学值,如下表所示。 花瓶12345鲜花1 (杜鹃花)723-5-24162 (秋海棠)521-410233 (康乃馨)-215-4-2020?????? 例如根据上表,杜鹃花放在2号瓶中最好看;而在4号瓶中则显得很难看。 ?????? 为取得最佳美学效果,你必须在保持花束顺序的前提下,使花束的摆放取得最大的美学值。如果有多种这样的方案,输出其中的任何一种。 【分析】由于花的放置是有序的,此题可以用动态规划求解。在状态上的选取就有了两种不同的方法:opt[j,i]:前j束花放在前i个花瓶中;opt[i,j]:前i个花瓶中放j束花; 由这两个状态得到的方程是相似的,但是存在常数时间上的差异。 第一种状态:转移时FOR J = 1 TO 鲜花数目 DO FOR J:=I+1 TO 花瓶数目 DO Opt[I,J]?

文档评论(0)

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

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

1亿VIP精品文档

相关文档