算法设计与分析 课件 5.8-动态规划应用-编辑距离问题_第1页
算法设计与分析 课件 5.8-动态规划应用-编辑距离问题_第2页
算法设计与分析 课件 5.8-动态规划应用-编辑距离问题_第3页
算法设计与分析 课件 5.8-动态规划应用-编辑距离问题_第4页
算法设计与分析 课件 5.8-动态规划应用-编辑距离问题_第5页
已阅读5页,还剩8页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

信息工程大学算法设计与分析动态规划—编辑距离问题国家级实验教学示范中心计算机学科组规划教材算法设计与分析Python案例详解微课视频版

设A和B是两个字符串,要用最少的字符操作将A转换为B。字符操作有三种:(1)删除一个字符;(2)插入一个字符;(3)将一个字符改为另一个字符。

将字符串A转换为字符串B所用的最少字符操作数称为字符串A到B的编辑距离。字符串Abanana操作修改修改删除字符串BpandaA转换为B的编辑距离为3编辑距离反映两个字符串的相似程度。最长公共子序列反映两个字符串的相似程度。关注差异性bana

napanda编辑距离是3关注公共部分ba

nanapa

nda最长公共子序列是3字符串Abanana字符串Bpanda1.首先对比最后一个字符,都是a,相等;问题转换为banan和pand的编辑距离问题;2.比较最后一个字符,n和d不等,取min{删除n+bana和pand的编辑距离,插入d+banan和pan的编辑距离,修改n为d+bana和pan的编辑距离}3.…1.找出最优解性质,刻画结构特征

δ(A,B)表示字符串A和B的编辑距离。定义D[i,j]=δ(A[1..i],B[1..j])。D[i,j]=min{D[i-1,j-1]+δ(A[i],B[j]),D[i-1,j]+1,D[i,j-1]+1};D[i,0]=i,i=0~m;D[0,j]=j,j=0~n;2.递归地定义最优值3.以自底向上的方式计算最优值00000000000BjAmB1B2BnA1A2Ai012nm1204.根据计算最优值时得到的信息,构造最优解定义C[i,j]:D[i,j]获得最优值时对应的字符操作。C[i,j]=0:表示A[i]和B[j]相等C[i,j]=1:表示把A[i]修改为B[j]C[i,j]=2:表示删除A[i]C[i,j]=3:表示插入B[j]实例分析:A=“banana”,B=“panda”

j=0j=1pj=2aj=3nj=4dj=5ai=0012345i=1b112345i=2a221234i=3n332123i=4a443222i=5n554333i=6a665443数组D[i,j]

j=0j=1pj=2aj=3nj=4dj=5ai=0033333i=1b21(修改)1111i=2a210(不变)330i=3n2120(不变)33i=4a2102(删除)10i=5n21201(修改)1i=6a210210(不变)实例分析:A=”banana”,B=”panda”数组C[i,j]判断题。编辑距离问题中,最优解可能有多个。A.正确B.错误/*动态规划求解编辑距离,字符串A长度为m,字符串B长度为n*/voideditDistance(char*A,char*B,intm,intn){……/*初始化D和C数组*/for(i=0;i<=m;i++){D[i][0]=i;C[i][0]=2;}for(j=0;j<=n;j++){D[0][j]=j;C[0][j]=3;}

for(i=1;i<=m;i++)for(j=1;j<=n;j++)/*当字符相等时,不做任何操作*/

if(A[i]==B[j]){D[i][j]=D[i-1][j-1];C[i][j]=0;}else{t1=D[i-1][j-1]+1;t2=D[i-1][j]+1;t3=D[i][j-1]+1;if(t1<=t2&&t1<=t3){D[i][j]=t1;C[i][j]=1;}elseif(t2<=t1&&t2<=t3){D[i][j]=t2;C[i][j]=2;}

elseif(t3<=t1&&t3<=t2){D[i][j]=t3;C[i][j]=3;}}}时间复杂度:O(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论