算法设计动态规划(编辑距离)_第1页
算法设计动态规划(编辑距离)_第2页
算法设计动态规划(编辑距离)_第3页
算法设计动态规划(编辑距离)_第4页
算法设计动态规划(编辑距离)_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

算法设计动态规划(编辑距离)算法设计动态规划(编辑距离)算法设计动态规划(编辑距离)算法设计动态规划(编辑距离)编制仅供参考审核批准生效日期地址:电话:传真:邮编:《算法设计与分析》课程报告课题名称:动态规划——编辑距离问题 课题负责人名(学号):同组成员名单(角色):无 指导教师:左劼 评阅成绩: 评阅意见: 提交报告时间:2010年6月23日

动态规划——编辑距离问题计算机科学与技术专业学生指导老师左劼[摘要]动态规划的基本思想与分治法类似,也是将待求解的问题分解成若干份的子问题,先分别解决好子问题,然后从子问题中得到最终解。但动态规划中的子问题往往不是相互独立的,而是彼此之间有影响,因为有些子问题可能要重复计算多次,所以利用动态规划使这些子问题只计算一次。将字符串A变换为字符串所用的最少字符操作数称为字符串A到B的编辑距离。关键词:动态规划矩阵字符串操作数编辑距离一、问题描述1、基本概念:设A和B是2个字符串。要用最少的字符操作将字符串A转换为字符串B。字符串操作包括:(1)删除一个字符;(2)插入一个字符;(3)将一个字符改为另一个字符。将字符串A变换为字符串B所用的最少字符操作数称为字符串A到B的编辑距离,记为d(A,B)。2、算法设计:设计一个有效算法,对于给定的任意两个字符串A和B,计算其编辑距离d(A,B)。3、数据输入:输入数据由文件名为的文本文件提供。文件的第1行为字符串A,第二行为字符串B。4、结果输出:将编辑距离d(A,B)输出到文件的第一行。输入文件示例输出文件示例fxpimu5xwrs二、分析对于本问题,大体思路为:把求解编辑距离分为字符串A从0个字符逐渐增加到全部字符分别想要变为字符串B该如何变化以及变化的最短距离。具体来说,首先选用数组a1存储字符串A(设长度为n),a2存储字符串B(设长度为m),d矩阵来进行具体的运算;这里有两个特殊情况比较简单可以单独考虑,即A的长度为0而B不为0还有A不为0B为0,这两种情况最后的编辑距离分别为m和n;讨论一般情况,d矩阵为d[n][m],假定我们从d[0][0]开始一直进行以下操作到了d[i][j]的位置,其中删除操作肯定是A比B长,同理,插入字符操作一定是A比B短,更改字符操作说明一样长,我们所要做的是对d[i][j-1]d[i-1][j]d[i-1][j-1]所存数进行比较,其中最小的即为当前长度和样式的字符串A变为B的编辑距离,依次这样计算到最后的d[n][m]中所存的数即为最终的编辑距离。三、证明1、理论前提:动态规划的基本思想与分治法类似,也是将待求解的问题分解成若干份的子问题,先分别解决好子问题,然后从子问题中得到最终解。但动态规划中的子问题往往不是相互独立的,而是彼此之间有影响。该算法的有效性依赖于两个重要的性质:最优子结构性质和问题重叠性质。最有子结构性:以自底向上的方法递归地从子问题的最优解逐步构造出整个问题的最优解。重叠子问题性:每次产生的子问题并不总是新问题,利用动态规划对每一个子问题只解一次,并将其存入表格中,下次用到该子问题的解时,只要查找表格即可。2、本题:本题首先符合最优子结构性,即让字符串A从1开始递增到最终长度n,也就是从只有一个字符开始计算,每增加一个字符计算一次,符合自底向上的方法递归地解决子问题;其次符合重叠子问题性,每增加一个字符计算的时候总要用到前一状态时的编辑距离,并且本题我采用了矩阵来存储旧子问题的数据,都只计算了一次,所以也符合。3、总结:综上两点,可知本题采用了动态规划的思想来解决,并能得到正确的答案。四、代码及解释(注释)#include<>#include<fstream>#include<>#include<>usingnamespacestd;constintMAX=1000;intmin(inta,intb){ if(a>=b) returnb; else returna;}intmain(){ intd[MAX][MAX]; inti,j; chara1[MAX],a2[MAX]; FILE*fp; fp=fopen("","r"); fscanf(fp,"%s",a1); fscanf(fp,"%s",a2); fclose(fp); intn=strlen(a1)-1;

温馨提示

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

评论

0/150

提交评论