动态规划算法.ppt

  1. 1、本文档共169页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* a[i]:序列; f[i]:从第i项开始(以第i项为第1项)的最大连续子序列的和。 f[i]=max{f[i+1]+a[i],a[i]} 初始:f[n]=a[n] 目标:max{f[i]} 1=i=n -6 4 -1 3 2 -3 2 倒推法: 第九十二页,共一百六十九页,2022年,8月28日 * f[n]:=a[n]; for i:=n-1 downto 1 do f[i]:=max(a[i]+f[i+1],a[i]); ans:=f[1]; for i:=2 to n do if f[i]ans then ans:=f[i]; 第九十三页,共一百六十九页,2022年,8月28日 * ans:=0; s:=0; for i:=1 to n do begin s:=s+a[i]; if s0 then s:=0; if sans then ans:=s; end; writeln(ans); 进一步分析上面的两种求解方法,新序列要么是在现有某序列的一端添加一个元素,要么是只包含该元素。 第九十四页,共一百六十九页,2022年,8月28日 例6:勤工俭学(下午上机题目) * f[0]:=0;d[0]:=0; for i:=1 to n do begin if f[i-1]0 then begin f[i]:=f[i-1]+a[i]; d[i]:=d[i-1]+1; end else begin f[i]:=a[i]; d[i]:=1; end; end; 第九十五页,共一百六十九页,2022年,8月28日 3.最长公共子序列问题 LCS * 最长公共子序列也称作最长公共子串(不要求一定连续),英文缩写为LCS(Longest Common Subsequence)。 其定义是,一个序列 S ,如果分别是两个或多个已知序列的子序列,且是所有符合此条件序列中最长的,则 S 称为已知序列的最长公共子序列。 第九十六页,共一百六十九页,2022年,8月28日 * 给定两个序列 X = { x1 , x2 , ... , xm } Y = { y1 , y2 , ... , yn } 求X和Y的一个最长公共子序列 举例 X = { a , b , c , b , d , a , b } Y = { b , d , c , a , b , a } 最长公共子序列为 LSC = { b , c , b , a } 例7: 第九十七页,共一百六十九页,2022年,8月28日 * 要求:X和Y以字符串输入,长度=1000. 输出:最长公共子串的长度 如: 输入: abcbdab bdcaba 输出 4 LCS=bcba 第九十八页,共一百六十九页,2022年,8月28日 分析: * X=‘abcdefgh’ Y=‘acneh’ X=‘abcdefgh’ Y=‘acnehk’ X=‘abcdefgkh’ Y=‘acnehk’ X=‘abcdefgn’ Y=‘acnem’ 第九十九页,共一百六十九页,2022年,8月28日 分析: * X = { x1 , ... , xi-1 ,xi } Y = { y1 , ... , yj-1 ,yj } f[i,j]:x的前i个和y的前j个字符的最大公共子序列长度。 xi = yj 时 , f[i,j] = f[i-1,j-1] + 1 xi yj时 , f[i,j] = max { f[i,j-1] , f[i-1,j] } 第一百页,共一百六十九页,2022年,8月28日 参考代码: * for i:=1 to n do //X的长度 for j:=1 to m do //Y的长度 begin f[i,j]:=0; if x[i]=y[j] then f[i,j]:=f[i-1,j-1]+1 else f[i,j]:=max(f[i-1,j],f[i,j-1]); end; 第一百零一页,共一百六十九页,2022年,8月28日 (二)坐标类模型 * 比较简单的一类动态规划问题。 常以二维空间坐标系为模板展开,因此状态转移方程也在坐标系中寻找, 一般定义f[i,j]表示状态,此状态表示某个点的坐标。 有关系的状态: f[i-1,j], f[i,j-1], f[i-1,j-1] 按行或列的顺序求解问题。 第一百零二页,共一百六十九页,2022年,8月28日 引例1:数字三

文档评论(0)

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

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

1亿VIP精品文档

相关文档