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

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

ID:48770320

大小:116.00 KB

页数:9页

时间:2020-01-23

最长不下降序列动态规划 4.ppt_第1页
最长不下降序列动态规划 4.ppt_第2页
最长不下降序列动态规划 4.ppt_第3页
最长不下降序列动态规划 4.ppt_第4页
最长不下降序列动态规划 4.ppt_第5页
资源描述:

《最长不下降序列动态规划 4.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、动态规划(四)求最长不下降序列问题描述:设有一个正整数的序列:b1,b2,…bn,对于下标i1

2、h及这个序列中的各个数。最长不下降序列-分析动态规划的难点之一:怎样定义问题?你首先要能定义出问题是什么,才能进一步定义出子问题是什么,然后才能证明或者直观地感觉问题与子问题之间是否存在最优子结构性质。从前往后分析。从序列长度为1开始,逐步放大序列长度,2,3,4……看看要求的结果的变化规律。我们可能会很直接地想到,把问题定义成当前最长不下降序列。序列长度序列当前最长不下降序列长度113121371313792413791635137916384613791638244(24<38,长度不增加)7137916382427

3、?(凭什么计算出当前值?)由于当前记录的最长不下降序列是791638,而实际上应该有了更长的子序列79162427。13791638242738444921526315最长不下降序列-分析我们定义F(i)为原始序列长度为I的最长不下降序列,则F(I)只有一个子问题F(I-1),即原始序列长度为I-1的最长不下降序列。而且我们无法得出问题与子问题之间的“最优子结构”性质。重新思考关于问题的定义。我们定义问题F(i)为以bi结束的最长不下降序列。则得到如下的分析结果:下标I序列F(I)前趋结点下标13111371213792

4、213791633137916384413791638244413791638242756137916382427386713791638242738444921526315最长不下降序列-分析当我们定义问题F(i)为以bi结束的最长不下降序列时,则问题F(I)有I-1个子问题:F(1),F(2),…,F(I-1)。我们要使F(I)最大,则要找到一个F(j)最大的子问题,且同时满足Bj

5、j)=2,因此F(4):=F(3)+1=3,而它的前趋结点下标是j13791638242738444921526315下标I序列F(I)前趋结点下标131113712137922137916331379163844137916382444137916382427561379163824273867最长不下降序列-分析这样定义问题,我们就看到了“最优子结构”性质。因此可以应用动态规划方法求解问题。请你分析本问题的重叠子问题性质。请你递归地定义问题的解。F(I)=Max{F(j)+1

6、j

7、是什么?F(1)=1,f(I)=1请你思考本题要求的结果是F(n)吗?如果不是,那么最后要求的结果怎样利用用动态规划求得的问题和子问题的值得到?怎样输出显示最长不下降序列的各个结点?13791638242738444921526315最长不下降序列-分析写出完整的求最长不下降序列的程序。上机调试。13791638242738444921526315最长不下降序列-讨论如果从后向前分析原始序列,会得到正确的结果吗?又该怎样定义问题?写出从后向前求最长不下降序列的程序。13791638242738444921526315va

8、rf:array[1..5000]oflongint; a:array[1..5000]oflongint;i,n,j,k,l:longint; beginreadln(n); fori:=1tondoread(a[i]); f[1]:=1; fori:=2tondobeginf[i]:=1; forj:=1toi-1do ifa[i]>=a[j]then iff[j]+1>f[i]thenf[i]:=f[j]+1; end; j:=0; fori:=1tondoifj

9、); end.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。