- 1、本文档共74页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算法设计与分析研讨chap8(dynamic programming2014y).ppt
* zhengjin,Central South University * * * Edit Distance Problem: Given two strings, how to get the edit distance? Strategy 1: get all possible alignments between two strings; search through all of them for the best one. Strategy 2: Dynamic programming * zhengjin,Central South University * * * Edit Distance Dynamic Programming for Edit Distance Given two strings x[1..m], y[1..n], find the Edit Distance between x and y :E(m, n). What are the subproblems? How about the edit distance between some prefix of strings(字符串前缀): E X P O N E N T I A L P O L Y N O M I A L x[1..i], y[1..j] subproblem E(i, j) * zhengjin,Central South University * * * Edit Distance Subproblem E(7, 5) subproblem E(i, j): express E(i, j) in terms of smaller subproblems * zhengjin,Central South University * * * Edit Distance subproblem E(i, j): express E(i, j) in terms of smaller subproblems What do we know about the best alignment between x[1..i], y[1..j]? rightmost column(最右边那列有4种比对可能) * zhengjin,Central South University * * * Edit Distance rightmost column E(i, j) E(i-1, j) E(i,j)=1+E(i-1,j) Relationship E(i, j) E(i, j-1) E(i,j)=1+E(i,j-1) Relationship E(i, j) E(i-1, j-1) E(i,j)=1/0+E(i-1,j-1) Relationship * zhengjin,Central South University * * * Edit Distance(递推关系式) If x[i]=x[j] then diff(i, j)=0, otherwise diff(i, j)=1. E(0, j)=j. E(i, 0)=i. * zhengjin,Central South University * * * Edit Distance The answers to all the subproblems E(i, j) form a two-dimensional table(用二维表格记录所有子问题的最优解). * zhengjin,Central South University * * * Edit Distance Edit distance of EXPONENTIAL and POLYNOMIAL * zhengjin,Central South University * * * Edit Distance DPEditDis(x[1..m], y[1..n]) For i=0 to m do E(i, 0)=i; 2. For j=1 to n do E(0,j)=j; //初始化 3. For i=1 to m do //以行序计算 for j=1 to n do E(i,j)=min{E(i-1,j)+1, E(i,j-1)+1, E(i-1,j-1)+diff(i, j)} 4. Return E(m,n). Running time: O(mn) * zheng
文档评论(0)