最长公共子序列算法的改进和优化

来源 :中山大学 | 被引量 : 0次 | 上传用户:ryanme
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
一个给定字符串的子序列是在该字符串序列中删除0个或者多个元素后得到的序列。给定序列X={x1,X2,…,Xn)和],={y1,y2,…,yn},设它们是定义在字符集∑={σ1,σ2,...,σs}上的两个字符串,最长公共子序列(简称LCS)问题就是找出关于X和Y的公共子序列中长度最长的子序列。   在求解LCS问题的众多算法中,由Rick提出的算法[15,16]有着良好的性能,该算法后来被Goeman和Clausen做了进一步的优化和改进[2]。改进后算法的空间复杂度为线性复杂度O(ns)。然而当该算法应用于大规模序列(如遗传基因序列)以及N-LCS问题的时候,空间依然会成为算法的瓶颈。如2001年4月UCUS人类基因组计划发布了人类基因序列,共包含28亿对碱基,相应的字符串序列为6G,如果用Goeman-Clausen LCS算法求解此问题时需要96G的存储空间,而96G的空间已经超出了普通计算机的内存空间。因此空间的优化成了实践中迫切需要解决的问题。   本文针对Goeman-Clausen LCS算法进行空间改进和优化,做了下面几点工作:(1)对Goeman-Clausen算法中的辅助数组的空间冗余进行优化;(2)对辅助数组利用Elias算法进行压缩;(3)对Elias算法做进一步的优化和改进,使辅助数组的数据压缩比进一步提高。改进后的算法保持了Goeman-Clausen算法的线性空间复杂度,但相对于原算法,空间得到了很大的节省,有效的克服了LCS算法应用于大部分遗传基因序列和N-LCS问题时的空间瓶颈,但改进后的算法对比原算法,时间性能上有一些损失,但是在面对大规模序列时候,空间因素显得更为突出。
其他文献
基于SOAP/XML的安全通信是Web服务安全的基础。Web服务通信基于SOAP协议,SOAP通信安全具有端到端的安全、应用的独立性、传输的独立性、存储消息的安全性等特殊需求。常用的
随着无线Mesh网络的日益普及,其资源分配、负载均衡和网络安全等问题越来越受到研究者们的关注。在过去的无线网络课题研究中,接入控制策略因其在资源分配和网络负载方面的明
无线传感器网络(Wireless Sensor Networks,WSNs)是由大量的具有数据采集、无线通信和自组网功能的低成本、微小传感器节点组成,通过随机部署于监控区域,可以实现对该目标区
非真实感绘制逐渐引起人们的研究兴趣,在教育、动画、娱乐、多媒体以及互联网中有广泛的应用。我们结合原有的二维卡通流水绘制算法和基于物理的流体模拟算法,提出了一个新的
随着IPv4的网络空间的匮乏劣势越发的明显,随着下一代网络IPv6的推出,其中IPsec协议作为必选协议出现其中。上一代网络密钥交换协议IKE存在着消息轮数过多,容易受到攻击等缺
高速发展的DSP技术为语音信号处理提供了强有力的工具,使实时实现各种复杂算法成为可能。针对不同应用,国际标准组织制定了一系列语音压缩编码标准,其中AMR-WB语音编码是3GPP
随着无线通信的飞速发展,无线传感器网络成为了当前计算机网络领域中研究的热点。无线传感器网络具有很多的优点,应用面也很广,但是与此同时存在着能量有限、存储能力有限、
随着Internet技术的飞速发展,人们对Web上的资源共享的要求越来越高。Web服务组合技术为有效地利用分布在Web上的软件资源提供了很好的解决方法,使企业应用集成和动态协作成为
离心机是一种应用广泛的样品分析分离仪器。随着经济的飞速发展,离心机需求市场越发庞大,相关行业对离心机的性能要求也越来越高。传统的“作坊式”、“板凳式”开发模式使得低水平的劳动不断重复,同时也极大的延长了产品的研发周期。为此,构建一个通用离心机开发平台很有必要,他可以简化开发过程,提高开发效率,同时也为开发人员提供有益的选型参考。本文首先综述了离心机研发技术、平台开发模式进展状况以及此模式在各产品开
传统机电产品检索往往是通过二维草图、三维实例作为查询条件进行检索,而这种检索方式对检索者有较高的要求;更多情况下,当检索者需要检索某机电产品时,其脑海中已有信息往往