



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三次上机报告班级:031013 学号:03101283 姓名:黄辉煌Title:动态规划求最短编辑距离问题描述:已知字符串 X和Y,要求使用最少的字符串操作将字符串X转换成字符串Y,字符串操作包括以下四种:(1)删除一个字符(Delete),Cost(Delete)=2;(2)插入一个字符(Insert),Cost(Insert)=2;(3)替换一个字符(Replace),Cost(Replace)=1;(4)复制一个字符(Copy),Cost(Copy)= -1. Input::字符串 X和Y;Output:字符串X和Y的编辑距离 EditDistance。Testing Data:1. X = algorithm Y = altruistic2. X = GATCGGCAT Y = CAATGTGAATC1、 算法设计与描述对于序列Xi(0im)和序列Yj(0jn)来说,定义si,j为Xi转换成Yj的操作序列的最小代价。假定我们已经知道了最后一次执行的操作,此时分情况讨论问题的最优解结构。1. 最后一次操作为Copy,根据书中定义可知,xi=yj, 问题就转化成了求将Xi-1转换为Yj-1的最小开销。因此,当最后一次操作为copy时,可以定义si,j=si-1,j-1+cost(copy)。2. 最后一次操作为replace。此时,根据题目的定义可知xiyj。仿照上述分析,可以得到相同的最优子结构。此时si,j=si-1,j-1+cost(replace)。3. 最后一次操作为delete。根据题意,这时只是将xi从序列xi中除去,对序列Yj没有任何影响,此时问题的最优子结构的形式为将Xi-1转换成Yj,于是可以得到si,j=si-1,j+cost(delete)。4. 最后一次操作为insert。根据题意,在进行插入操作时,序列Xi无任何变化,序列Yj添加一个字符,因此,这时候问题的最优子结构的形式为将Xi转换成为Yj-1,此时si,j=si,j-1+cost(insert).5. 最终si,j = Min Case1, Case2, Case3, Case4二、主程序代码#include #include #include using namespace std; typedef enumCopy,Replace,Delete,Insert;int cost4 = -1,1,2,2; int s1515 = 0; int Edit_Distance(char *x, char *z, int x_Length, int z_Length);void Print_Cost(int x_Length, int z_Length);void main() char x = algorithm; char z = altruistic; int x_Length = strlen(x), z_Length = strlen(z); cout代价:Edit_Distance(x, z, x_Length, z_Length)endl; cout从i到j的编辑距离:endl; Print_Cost(x_Length, z_Length); int Edit_Distance(char *x, char *z, int x_Length, int z_Length) int i = 0, j = 0,temp; /初始化s0,0=0 /si,0 = i * cost(delete) for(i = 1; i = x_Length; i+) si0 = i * costDelete; /s0,j = j * costinsert for(j = 1; j = z_Length; j+) s0j = i * costInsert; for(i = 0; i x_Length; i+) for(j = 0; j z_Length; j+) si+1j+1 = INT_MAX; /copy if(xi = zj) temp = sij + costCopy; if(temp si+1j+1) si+1j+1 = temp; /Replace if(xi != zj) temp = sij + costReplace; if(temp si+1j+1) si+1j+1 = temp; /delete temp = sij+1 + costDelete; if(temp si+1j+1) si+1j+1 = temp; /insert temp = si+1j + costInsert; if(temp si+1j+1) si+1j+1 = temp; return sx_Lengthz_Length; void Print_Cost(int x_Length, int z_Length) int i, j; for(i = 1; i = x_Length; i+) for(j = 1; j = z_Length; j+) coutsetw(4)sij; coutendl; 3、 设
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民事调解的方法和策略课件
- 自动门项目运营方案
- 2025年春国家开放大学《马克思主义基本原理》期末终考试卷1参考答案试卷1
- 设备工作计划13篇
- 幼儿园 中班科学奇妙的树叶课件
- Unit 10 Lesson 3 Thinkign Skills and Reading Strategies 课件 2024-2025学年仁爱科普版英语七年级下册
- 2025年Android性能优化总结BAT大厂面试总结
- 部编版五年级上册第二单元《搭石》教案
- 建筑施工特种作业-建筑架子工附着式脚手架真题库-6
- 色彩文案题目大全及答案
- 车站值班员(中级)铁路职业技能鉴定考试题及答案
- 山东省威海市2023-2024学年高二下学期期末考试英语试题(解析版)
- 2024年陕西省西安市中考地理试题卷(含答案逐题解析)
- 草晶华工作计划
- 2023-2024学年吉安市遂川县七年级语文(下)期末试卷附答案详析
- 人工智能训练师(中级数据标注员)理论考试题库(含答案)
- 脑干损伤护理常规
- 小学数学组教研活动记录表-评课
- 2024年广东清远连平县事业单位招聘工作人员51人公开引进高层次人才和急需紧缺人才笔试参考题库(共500题)答案详解版
- 2024年西部机场集团榆林机场公司招聘35人高频考题难、易错点模拟试题(共500题)附带答案详解
- 银行智能化方案设计
评论
0/150
提交评论