- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算法设计动态规划(编辑距离)
《算法设计与分析》课程报告
课题名称: 动态规划——编辑距离问题
课题负责人名(学号):
同组成员名单(角色): 无
指导教师: 左劼
评阅成绩:
评阅意见:
提交报告时间: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、数据输入:输入数据由文件名为input.txt的文本文件提供。文件的第1行为字符串A,第二行为字符串B。
4、结果输出:将编辑距离d(A,B)输出到文件ouput.txt的第一行。
输入文件示例 输出文件示例 input.txt output.txt fxpimu 5 xwrs
二、分析
对于本问题,大体思路为:把求解编辑距离分为字符串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、总结:综上两点,可知本题采用了动态规划的思想来解决,并能得到正确的答案。
四、代码及解释(注释)
#includeiostream.h
#includefstream
#includestdlib.h
#includestring.h
using namespace std;
const int MAX=1000;
int min(int a,int b)
{
if(a=b)
return b;
else
return a;
}
int main()
{
int d[MAX][MAX];
int i,j;
char a1[MAX], a2[MAX];
FILE *fp;
fp=fopen(input.txt,r);
fscanf(fp,%s,a1);
fscanf(fp,%s,a2);
fclose(fp);
int n=strlen(a1)-1; //字符串末尾多1
int m=strlen(a2)-1;
for(i=0;i=n;
您可能关注的文档
- 第9章动态应变测量.doc
- 第8讲小波变换导论1.doc
- 第一批月球名称英文中文对照表.doc
- 第8章静电场中导体和电介质.doc
- 第一次综述热载流子注入效应对MOS器件性能的影响.doc
- 第一批月球地名标准汉字译名表.doc
- 第一章 化学动力学.doc
- 第一章 计算机基础复习资料.doc
- 第一章 概述0715.doc
- 第一章-反对外国侵略的斗争练习题.doc
- 学校党委班子、中学党委2025年度民主生活会班子对照检查材料(在带头干事创业、担当作为;在带头坚决扛起管党治党责任五个带头).docx
- 市委领导班子、医院党委、镇、街道党委2025年度专题民主生活会在带头敬畏人民、敬畏组织、敬畏法纪;在带头干事创业、担当作为;在带头坚决扛起管党治党责任对照检查材料.docx
- 2025年度学院党委、公司、政府办公室领导班子民主生活会对照检查材料(五个带头).docx
- 国企、局党组、县委关于2025年度“第一议题”制度落实情况的报告.docx
- 2025年民主生活会批评意见(50条)+2025年度民主生活会班子成员相互批评意见清单(五个带头).docx
- 在2026年元旦节前廉洁警示教育大会上的讲话稿+2026年元旦献辞.docx
- 农业农村局、统计局党组理论学习中心组2025年学习工作总结.docx
- 领导干部在2025年度民主生活会前集体学习研讨会上的发言.docx
- (民主生活会)2025年度班子成员相互批评意见清单+对照检查查摆问题清单+批评与自我批评意见建议.docx
- 在某某市2025年防汛减灾工作专题会上的讲话.docx
最近下载
- 季度查漏补种登记表.doc VIP
- GB50318-2017 城市排水工程规划规范.pdf VIP
- 2025至2030中国移动视频监控行业市场占有率及投资前景评估规划报告.docx VIP
- 汽车门锁及空调故障.pptx VIP
- 生态环境数据分级管理指南.pdf VIP
- 八省联考2026届高三年级12月检测训练(T8联考)化学试卷(含答案详解).pdf
- 2022春(六下)顺 - 填空题1.docx VIP
- T∕CACM 1319-2019 慢性阻塞性肺疾病中医诊疗指南.docx VIP
- GZ021 化工生产技术赛项(正式赛卷)仿真操作模块方案及评分6.doc VIP
- 金蝶云星空完整版.pdf VIP
原创力文档


文档评论(0)