长不下降序列动态规划 4.pptVIP

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

动态规划(四) * 求最长不下降序列 问题描述: 设有一个正整数的序列:b1, b2, …bn, 对于下标i1i2…ih, 若有bi1bi2…bih,则称存在一个长度为h的不下降序列。 例如,下列数 13 7 9 16 38 24 27 38 44 49 21 52 63 15 对于下标 i1=1,i2=4,i3=5,i4=9,i5=13, 且满足 13 16 38 44 63 则存在长度为5的不下降序列。 但是,我们看到还存在其它的不下降序列。如 7 9 16 18 19 21 22 63 则存在长度为8的不下降序列。 问题:当给定b1, b2, …bn后,求出最长的不下降序列h及这个序列中的各个数。 * 最长不下降序列-分析 动态规划的难点之一:怎样定义问题?你首先要能定义出问题是什么,才能进一步定义出子问题是什么,然后才能证明或者直观地感觉问题与子问题之间是否存在最优子结构性质。 从前往后分析。从序列长度为1开始,逐步放大序列长度,2,3,4……看看要求的结果的变化规律。我们可能会很直接地想到,把问题定义成当前最长不下降序列。 序列长度 序列 当前最长不下降序列长度 1 13 1 2 13 7 1 3 13 7 9 2 4 13 7 9 16 3 5 13 7 9 16 38 4 6 13 7 9 16 38 24 4 (2438, 长度不增加) 7 13 7 9 16 38 24 27 ? (凭什么计算出当前值?) 由于当前记录的最长不下降序列是 7 9 16 38 ,而实际上应该有了更长的子序列 7 9 16 24 27。 13 7 9 16 38 24 27 38 44 49 21 52 63 15 * 最长不下降序列-分析 我们定义F(i) 为原始序列长度为I 的最长不下降序列,则F(I)只有一个子问题F(I-1),即原始序列长度为I-1的最长不下降序列。而且我们无法得出问题与子问题之间的“最优子结构”性质。 重新思考关于问题的定义。我们定义问题F(i)为以bi结束的最长不下降序列。则得到如下的分析结果: 下标I 序列 F(I) 前趋结点下标 13 1 1 13 7 1 2 13 7 9 2 2 13 7 9 16 3 3 13 7 9 16 38 4 4 13 7 9 16 38 24 4 4 13 7 9 16 38 24 27 5 6 13 7 9 16 38 24 27 38 6 7 13 7 9 16 38 24 27 38 44 49 21 52 63 15 * 最长不下降序列-分析 当我们定义问题F(i)为以bi结束的最长不下降序列时,则问题F(I)有I-1个子问题:F(1), F(2),…, F(I-1)。我们要使F(I)最大,则要找到一个F(j)最大的子问题,且同时满足Bj Bi,这时F(I) := F(j) + 1 例如 F(4) 有3个子问题,分别是F(1), F(2), F(3), 它们都满足bj bi的条件,而最大的F(j)=2, 因此F(4) := F(3)+1=3, 而它的前趋结点下标是j 13 7 9 16 38 24 27 38 44 49 21 52 63 15 下标I 序列 F(I) 前趋结点下标 13 1 1 13 7 1 2 13 7 9 2 2 13 7 9 16 3 3 13 7 9 16 38 4 4 13 7 9 16 38 24 4 4 13 7 9 16 38 24 27 5 6 13 7 9 16 38 24 27 38 6 7 * 最长不下降序列-分析 这样定义问题,我们就看到了“最优子结构”性质。因此可以应用动态规划方法求解问题。 请你分析本问题的重叠子问题性质。 请你递归地定义问题的解。 F(I) = Max{F(j)+1 | j I 且 bj = bi} 本递归式的边界条件是什么? F(1) = 1, f(I)= 1 请你思考本题要求的结果是F(n)吗?如果不是,那么最后要求的结果怎样利用用动态规划求得的问题和子问题的值得到? 怎样输出显示最长不下降序列的各个结点? 13 7 9 16 38 24 27 38 44

文档评论(0)

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

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

1亿VIP精品文档

相关文档