序列比对动态规划算法

2024-04-29

序列比对动态规划算法(共7篇)

篇1:序列比对动态规划算法

参数序列比对算法研究

序列比对是生物信息学中的一项重要任务,通过序列比对可以发现生物序列中的功能、结构和进化的信息.序列比对结果的生物学意义与所选择的.匹配、不匹配、插入和删除以及空隙的罚分函数密切相关.现介绍一种参数序列比对方法,该方法把最佳比对作为权值和罚分的函数,可以系统地得到参数的选择对最佳比对结果的影响.然后将其应用于RNA序列比对,分析不同的参数选择对序列比对结果的影响.最后指出参数序列比对算法的应用以及未来的发展方向.

作 者:张涛涛 郭茂祖 邹权 ZHANG Tao-tao GUO Mao-zu ZOU Quan 作者单位:哈尔滨工业大学计算机科学与技术学院,哈尔滨,150001刊 名:生物信息学 ISTIC英文刊名:CHINA JOURNAL OF BIOINFORMATICS年,卷(期):6(2)分类号:Q1关键词:参数序列比对 多边形分解 牛顿射线搜索算法 参数空间

篇2:多序列比对算法综述

关键词:生物信息学,序列比对,动态规划,算法

一、背景与意义

随着人类基因组计划的顺利实施和信息技术的迅速发展, Gene Bank、EMBL和DDBJ国际三大核酸序列数据库数据量呈指数增长。生物学家、数学家和计算机科学家都面临着一个相同的并且严峻的问题, 如何利用、表达这些数据进而分析与解释基因序列间的潜在关系, 从中发掘出对人类有利的信息。为迎接挑战, 一门涉及生物、数学、物理、化学、计算机科学等诸多科学的新型学科应运而生, 并且日益成为二十一世纪自然科学的核心领域之一。

生物信息学的主要研究对象是DNA序列和蛋白质序列, 主要通过分类、分析和检索核苷酸序列或氨基酸序列, 获取基因编码和调控、代谢途径、DNA和蛋白质结构功能及其相互关系等各方面的知识。所以在生命起源、生物进化以及细胞、器官和个体的出现、生长、病变、消亡等生命科学问题中, 生物信息学都起着非常重要的作用。生物信息学是发现生命科学问题中的基本规律和时空联系, 发掘生物序列数据中蕴含的生物学意义的交叉学科[1]。

在生物信息学中, 序列比对是最基本、最重要的操作。对于基因序列, 通过比对可以推测出哪个基因家族可能包含该序列, 并可以推测出该序列可能具有的生物学功能;对于蛋白质序列, 通过比对可以推测出该序列可能的功能和结构, 并可以找出与它同源的蛋白质序列。所以在生物信息学中, 序列比对具有非常重要的意义和实用价值。目前, 国际上提出了众多经典的比对算法, 也开发了众多的序列比对软件。但对于同一组序列, 不同的软件采用不同的序列比对算法, 其运算速度和比对结果都有很大差异。有些软件考虑了比对结果而运行时间较长, 而有些软件运算速度很快比对结果却不理想。一般情况下两者不能同时兼得。所以, 对于序列比对算法的研究还有待继续深入。

二、多序列比对的研究现状及发展趋势

多序列比对是双序列比对的一般性推广。由于核酸数据库容量的增长呈指数级, 序列比对的数量通常都会远远大于两个, 使用动态规划算法来解决比对问题已经是不可行的了, 这使得多序列比对成为一NP难题。为了解决这一难题, 人们提出了许多近似算法。

2.1动态规划算法

多序列比对最早采用的是动态规划算法来解决。动态规划算法中最为经典的是Needleman-Wunsch算法, 其解决思路是把整个问题分解成多个相互联系的子问题, 通过依次解决每个子问题, 从而解决整个问题。动态规划算法最初用于求解两个序列的比对, 当把动态规划的基本思想推广到多序列比对时, 3个很短序列的比对还可以顺利进行。比对序列的数量如果超过3个, 由于需要很大的存储空间和很长的运行时间, 比对根本无法进行下去。所以多序列比对问题不能采用动态规划算法来解决。Carrillo和Lipman等人对该算法进行了改进, 提出了Carrillo-Lipman算法, 通过减少存储空间将序列比对的数量提高到10。2004年, 唐玉荣等人对动态规划算法进行了优化[2], 与基本动态规划法敏感性相同, 但降低了算法的时间复杂度, 并在减少存储空间方面也有一定的效果。

2.2启发式算法

目前, 绝大多数算法属于启发式算法, 包括星比对算法, 渐进式比对算法, 迭代细化方法等。其中应用最早的是星比对算法, 而应用最广并且效果较好的是渐进式比对算法。Hogeweg和Hesper首先提出渐进式比对算法, 而后Feng和Taylor对其加以完善。与动态规划算法相比, 该算法在计算速度、存储空间和序列数目等方面都更加优良。并且, 渐进式比对算法能够直接用于构造进化树, 反映序列间的进化关系。2005年, 段敏等人提出了一种用减少序列比对过程中总评分的方法来达到局部优化目的的多序列比对算法[3]。启发式算法虽然在一定层度上减少了算法的运行时间和存储空间, 但都有一些不足之处。星比对算法中, 无论采用何种方法并不能保证找到的序列是最好的中心序列。渐进式比对算法中, 构造的指导树有时不一定真正反映系统的进化信息, 根据指导树渐进比对容易产生局部最优化问题。迭代细化算法中, 无法采用何种迭代策略得到的结果最优。

2.3随机算法

多序列比对中, 应用最多的随机算法有遗传算法、模拟退火算法和粒子群算法等。遗传算法是一种全局意义上的自适应随机搜索方法, 它借鉴生物进化规律, 模拟生物进化过程中的一系列事件, 包括突变、交配和选择, 最终得到一个优化解。模拟退火算法则是模拟物理中的退火过程并结合复杂系统中的组合优化之间的相似性来寻找最优解。2008年, 向昌盛等人提出了将遗传算法和模拟退火算法相结合的遗传退火进化思想[4], 设计了运用该思想进行多序列比对的算法过程, 实验结果表明该算法是行之有效的。2011年, 徐小俊等人针对粒子群优化易陷入局部最优、收敛速度慢的现象, 提出了一种分段取值惯性权重 (SW) 方法[5], 该方法在解决多序列比对问题时可以有效地避免算法早熟, 并提高解的精度。

2.4分治算法

分治算法是把一个大问题分解成若干个小问题来解决。Stoye提出了一种新的分治算法DCA, 将Carrillo-Lipman算法引入进来。在不影响特征表现的前提下, 把序列分割成完全满足Carrillo-Lipman算法长度要求的子序列, 使用Carrillo-Lipman算法进行序列比对。2000年Stoye又提出了一种OMA算法, 以达到减少存储空间的目的。2009年, 业宁等人设计了一个DCA-Clustal W算法来解决多序列比对问题[6], 从纵向和横向两个方面将复杂问题简单化, 并在Bali Base基准数据集上测试了算法的可行性。

2.5其他算法

2006年, 陈娟等人给出了多重序列比对的蚁群算法[7], 结果显示蚁群算法可以有效解决多重序列比对问题并具有自适应性、鲁棒性等特点。而文献[8, 9]针对蚁群算法易于陷入局部最优解、收敛速度慢等问题, 提出了改进的方法。

三、结论

生物信息学中最基本和最核心的问题之一就是多序列比对。由于多序列比对处理的数据越来越庞大和复杂, 所以其算法对计算精度和运算速度的要求也越来越高。如何能快速有效的获得比对的结果, 一直苦恼着众多的学者们。

参考文献

[1]孙啸, 陆祖宏, 谢建明.生物信息学基础.北京:清华大学出版社, 2005, 10-17

[2]唐玉荣, 一种优化的生物序列比对算法.计算机工程与设计, 2004, 25 (11) :1936-1945

[3]段敏, 许龙飞.生物DNA序列比对算法研究.佳木斯大学学报, 2005, 23 (2) :153-158

[4]向昌盛, 周建军, 周子英.模拟退火遗传算法在生物多序列比对中的应用.湖南农业科学, 2008, (4) :29-34

[5]徐小俊, 雷秀娟, 郭玲.基于SWGPSO算法的多序列比对.计算机工程, 2011, 37 (6) :184-186

[6]业宁, 张倩倩, 许翠云.一种多序列比对分值算法DCA-ClustalW.计算机与数学工程, 2010, 38 (11) :30-33

[7]陈娟, 陈.多重序列比对的蚁群算法.计算机应用, 2006, 26 (6) :124-128

[8]彭东海, 骆嘉伟, 袁辉勇.基于改进蚁群算法的多序列比对.计算机工程与应用, 2009, 45 (33) :114-119

篇3:序列比对动态规划算法

关键词:通信与信息系统;跨层动态带宽分配;非线性规划;卫星通信

中图分类号:TN927+.21

文献标识码:A

DOI:10.3969/j.issn.1003-6970.2015.09.023

0 引言

卫星通信网络的快速发展使得系统服务的用户数量、数据流量大幅增加,系统承载的业务也更多样化。基于这一发展趋势,欧洲电信标准化协会(EuropeanTelecommumcations Standards Institute. ETSI)制定了卫星通信系统DVB-RCS(Digital Video Broadcasting-Retum Channel via Satellite)标准,对卫星通信系统的物理层技术参数进行了规范化设计。DVB-RCS协议规定了编码调制方式、帧结构等内容,但未对资源管理方式进行统一规定,卫星系统可以根据需要采取灵活的资源管理措施。因此,在星上带宽资源有限、用户对带宽需求量大、需求多样化、用户链路传输速率不同的情况下,如何更加合理的分配带宽资源成为卫星通信中的研究热点。

经典的带宽分配算法只考虑用户请求的带宽资源数量,不能综合考虑用户服务类型和物理层信道特征,其分配结果往往很难达到较高的公平性和效用,导致系统吞吐量较低。跨层设计思想打破层间的信息阻碍,将用户请求带宽资源数量、用户服务类型和物理层编码调制方式信息进行综合考虑,得到效用更高的分配结果,提升系统的吞吐量。跨层设计思想在地面无线通信网络中的应用较为广泛,而由于卫星通信环境的特殊性,地面通信中的跨层带宽分配算法不适用于卫星通信,相关研究还未完善。早期研究引入效用函数的思想,根据通信环境的变化,对带宽进行实时的分配。在卫星通信领域,DVB-RCS卫星通信系统带宽分配模型可以应用跨层公平注水算法求解。使用请求时隙数量和最小保证时隙数量建立新的效用函数模型,也可以在一定程度上提升系统吞吐量。

本文在分析了多种动态带宽分配(dynamicbandwidth allocation,DBA)策略流程和性能的基础上,对常用的跨层效用函数进行了改进,提出新的跨层效用DBA模型,并设计其计算流程。本算法提升了DVB-RCS系统的吞吐量、绝对公平性和用户满意度,同时计算复杂度低,节约计算资源。

l DVB-RCS系统

如图1所示,DVB-RCS系统由网络控制中心(Network Control Center,NCC)、转发卫星和用户终端组成。在带宽请求的过程中,用户终端根据需求向卫星发送带宽请求,该请求通过反向链路由卫星和信关站传递给NCC,由NCC根据系统带宽资源分配算法执行分配功能,分配结果通过前向链路回传给用户终端,用户终端根据收到的分配结果进行数据传输。

DVB-RCS标准根据用户请求的优先级定义了以下五种带宽请求类型。

恒定速率分配(Constant Rate Assignment,CRA):用户终端与NCC进行协商,确定一个固定速率,用户终端以此速率进行传输。

基于速率的动态容量(Rate Based DynamicCapacity,RBDC):根据业务速率进行带宽请求,可以在传输过程中进行协商调整,有最大速率限制。

基于容量的动态容量(Volume Based DynamicCapacity,VBDC):根据节点的缓存数量进行带宽请求,数量是积累性的。

绝对基于容量的动态容量(Absolutely VolumeBased Dynamic Capacity,AVDBC):请求数量是绝对的,每次发送请求代替上一次的带宽请求。

自由容量分配(Free Capacity Assignment,FCA):系统将剩余未使用的带宽非配给用户终端。

上述五种带宽请求类型中,CRA属于固定带宽分配(Fixed Bandwidth Assignment,FBA),其他四种属于动态带宽分配。由于FBA的带宽不能根据业务动态改变,会引起资源浪费,而卫星系统用户多,带宽资源有限,因此卫星通信系统中适合采用DBA的分配方式。

DBA根据业务状态对带宽资源进行实时分配,保证每一时刻带宽资源都能得到高效利用,从而大幅提高信道利用率,保证更多用户的通信需求,提升系统的吞吐量。但是经典的DBA算法计算复杂度较高,尤其在用户较多的情况下,会占用大量的计算资源,因此需要在保证分配性能的同时对经典算法进行简化,使其更加适用于卫星通信系统。

DVB-RCS系统采用时分多址的接入方式,有研究论证了卫星通信系统中时分多址接入的优越性,因此本文的带宽分配算法针对时分多址方式建立模型,即把带宽的分配看作时隙数量的分配。

2 基于非线性规划的跨层DBA

卫星通信的DBA模型通常考虑系统吞吐量、绝对公平性和用户满意度这三个指标。提升系统吞吐量可以增加带宽资源的利用率,提升卫星通信系统性能,为更多的用户提供通信服务;从用户角度来看,每个用户分配到的带宽与用户业务优先级、对带宽数量需求的符合程度是衡量系统通信服务质量的标准,体现在数值上就是绝对公平性和用户满意度。由于系统带宽资源有限,保证系统性能的同时必然会降低单个用户的服务质量,因此吞吐量与公平性、满意度之间存在着根本矛盾。DBA的主要工作就是在这三个指标之间寻找一个平衡点,兼顾系统性能与用户QoS。

本文在经典带宽分配思路中引入跨层设计思想,建立简化的跨层DBA模型,设计了非线性规划和贪婪算法相结合的求解算法,并通过仿真证明其性能。

2.1 基于非线性规划的跨层DBA模型

卫星通信中的DBA模型通常使用效用函数的形式。综合考虑多放面因素建立效用函数,求其最优解,即可得到带宽分配结果。

由于卫星通信中用户请求业务的优先级、请求带宽大小、保证服务的最小带宽大小、终端的链路状态都会对分配结果的性能产生影响,因此引入跨层设计的思想,将应用层的业务优先级信息和物理层的信道状态信息传输到链路层,建立统一的效用函数。假设有N个用户参与时隙分配,常用跨层效用函数形式如式(1)。

上述效用函数有需要完善的地方,本文考虑如下四点对效用函数进行了修改。

(l)由于效用函数中包含两个不同的对数项且代表链路状态的系数是随机的,其求解过程通常需要使用复杂的非线性整数规划或迭代算法(如贪婪算法等),计算复杂度很高且与用户数的平方正相关,当系统容纳用户较多时,很难保证实时的带宽分配。本文对DBA模型进行细微调整,以减少计算量。

(2)由于卫星通信环境较差,通常采用BPSK或QPSK的固定调制方式,因此经典跨层效用函数中只考虑低阶调制方式的影响。随着卫星通信系统性能的增强和对星地信道研究的深入,现有的传输技术已经能够在保证误码性能的同时提升调制阶数,因此本文将调制阶数M,引入效用函数。

(3)在用户业务优先级普遍较高时,优先级绝对值高并不会使用户获得更多的时隙,因此使用优先级相对值代替优先级绝对值。同样的,为了平衡优先级和链路状态之间的关系,对链路状态也采用相对值系数进行处理。

(4)为了保证用户的基本通信服务,优先为每位用户分配最小保证时隙,剩余时隙按效用函数最大化原则讲行分配。

对效用增量进行由大到小排序。

为效用增量最大的用户分配一个时隙并更新此用户的效用增量值。每分配一次都计算该用户的已分配时隙数是否等于其请求时隙数,若相等,则下次分配不再考虑该用户,以此来保证式(4)的约束条件成立。重复此分配过程,每一次只为效用增量值最大的用户分配,直至将所有剩余时隙分配完毕,算法结束。

算法完整流程图如下。

3 算法仿真与性能分析

3.1 仿真场景

本文通过仿真验证基于非线性规划的跨层DBA算法性能。论文选取传统跨层效用函数DBA算法和跨层公平注水算法作为对比,分析本文算法的改进。

仿真场景中使用的调制阶数根据DVB-RCS2协议规定的四种调制方式进行映射,如表l。

3.2 仿真结果及分析

在上述的仿真场景中,当可分配时隙数为100时,对三种算法进行仿真,得到的时隙分配结果如图3。

如表4所示,本文提出的跨层非线性规划DBA算法与跨层效用函数DBA算法和跨层公平注水算法相比,吞吐量分别提升了17.80和20.87个等效时隙,公平性提升了0.2696和0.0450;用户满意度提升了0.0259和0.0118。

通常系统的总时隙数是变化的,因此本文对不同时隙数的情况进行了仿真,结果如图4、图5、图6。

由图4可以看出,本文提出的基于非线性规划的跨层DBA算法在带宽资源很少的情况下效用值较低,这是由于在保证用户最小保证时隙的情况下,每个用户平均只能分到1-2个时隙,而算法中需要对非线性规划的小数进行省略,因此对效用值产生了较大影响,但在大部分情况下,本算法的效用值明显高于另外两种算法。

从图5上看,由于跨层非线性规划算法在系统模型上增加了调制阶数这一参数,并且使用现有卫星通信系统中的多种调制编码方式进行仿真,更加接近现阶段卫星通信系统的真实情况,因此与跨层效用函数算法和跨层公平注水算法相比,其系统吞吐量有较大提升。

由图6可以看出,本文所提算法综合考虑业务优先级、物理层信道状态和用户需求量,平衡各用户之间的竞争关系,使用户满意度得到较高的保证。

另外,在计算方法上使用非线性规划与贪婪算法相结合的方式,与常用的基于整数规划、动态规划等计算方法的DBA算法相比,可以在保证求得最优解的同时有效减少计算量,降低对系统计算资源的消耗。

4 结束语

篇4:序列比对动态规划算法

多序列比对 (Multiple Sequence Alignment, MSA) 是生物信息学中最重要、也是最有挑战性的任务之一。通过多序列比对, 可以预测新序列的结构和功能, 可以分析序列之间的同源关系, 以及进行系统发育分析。 多序列比对是一个具有极高计算复杂度的组合优化问题[1]。

两序列对比目前应用最广的就是动态规划方法[2,3], 求得最优解, 但多序列比对问题的求解至今仍然是生物信息学中尚未解决的难题, 已经证明多序列比对问题是一个NP 完全问题[4]。从问题提出到现在, 研究者们就多序列对比方法进行了有益的探索, 其中比较常见的多序列比对方法有Pileup 算法、Clustalw算法[5]、Carrillo-Lipman算法[6], 还有DCA算法[7]。但这些算法的主要缺点是不仅搜索速度慢, 运行过程中还占用过多的内存[8];进化算法主要有模拟退火算法 (SA) 、遗传算法 (GA) 、免疫算法和蚁群算法 (ACO) 等, 它们的主要思想都是通过反复迭代来逐步搜索到最优解[9]。上述这些算法虽然在求解多序列比对时得到了一些通用的、高效的序列, 但是它们都不能有效地得到精确的解。这里在遗传算法的基础上通过综合运用蚁群算法与中心比对算法相结合的优势来求解多序列比对。

1 多序列比对的描述

多序列比对已经接近序列之间的朦胧区。但尽管如此, 序列之间仍会共有由保守残基形成的局部区域, 即序列模体。序列模体往往是蛋白质分子的重要功能位点所在, 寻找这些序列模体, 并用它们构建蛋白质二级数据库是多序列比对的重要任务之一。因此可以说, 多序列比对的目的从序列相似性转移到了功能相似性。

多序列比对是目前为止在生物信息学中最常用的方法。多序列比对有着广泛的应用, 其中包括:寻找蛋白质家族中的保守区域, 蛋白质的聚类、分类, 点突变检测, 推断进化关系和构建系统发育树, 帮助预测蛋白质结构等。

多序列比对的定义:给定κ条蛋白质序列S={S1, S2, …, Sκ}, 寻找最优比对, 也就是说, 寻找{S1′, S2′, …, Sκ′}, 使得满足如下条件:

(1) Si′是Si通过插入空位得到的, 其相对位置保持不变;

(2) 对任意的ij, 有|Si′|=|Sj′|, 即比对后的序列具有相同的长度;

(3) 对于所有的ij, 使得ijsim (Si, Sj) 最大, 或者ijcost (Si, Sj) 最小。其中, sim (X, Y) 是序列X和序列Y的比对相似性函数;cost (X, Y) 是序列X和序列Y的比对罚分函数。

多重序列的比对B用一个二维矩阵表示。矩阵中的每一行对应于一个序列这个序列可能只是原来序列的一个简单复制, 也可能在保持原序列中各残基相对顺序不变的情况下, 插入若干个空位而形成的一个新序列。矩阵中不允许某一行同时为空位, 因此矩阵的行数等于序列的数目。多重序列比对的目的就是对多个序列通过插入、删除等操作将之排列以达到相同的长度, 同时使得矩阵中同列匹配的字符个数尽可能多, 不匹配字符和空位个数尽可能少。对于每个矩阵都会有一个相应的适合度值, 作为是否在遗传进化中继续生存产生下一代的依据。这里采用通用的SP 模型对比对的质量进行评估[8]。比对B的适应度函数为:

sp-score (j) =i=1Ν-1k=i+1Νp (cij, ckj)

式中:L为比对中各个序列的长度;第i条序列中第j个字符为cij (1≤jL ) ;p (cij, ckj) 为字符cijckj的记分。

2 蚁群算法和中心比对算法

蚁群算法是近来出现的一种新型的模拟进化算法, 它由意大利学者M.Dorigo等人首先提出来[10]。蚁群算法实际上是模拟蚂蚁集群觅食规律而设计出的一种算法, 蚂蚁在寻找事物的过程中会在其经过的路径上留下一种称为“信息素”的物质;其后经过该路径的蚂蚁会利用这些“信息素”经验来判断是否选择这条路径, 并留下新的信息素以给后来的蚂蚁提供信息。即在个体寻优的过程中, 每一只蚂蚁会利用这些信息素的浓度来矫正自己的行为, 并把经验提供给后来的蚂蚁[11]。路径上的信息素浓度越高, 该路径被蚂蚁选中的概率就越大。在开始时, 蚂蚁被随机放置在路径结点上, 并向可行的临近结点移动, 信息素被存储在路径上。同时引入信息素挥发机制, 即信息素会随时间的推移而逐渐挥发甚至消失。这样可以避免局部收敛的现象, 还可以增大搜索空间。

中心比对算法是一种求解MSA 问题的快速启发式方法, 它基于一个固定序列与所有其他序列的配对比对而建立的, 这个固定序列有一中心, 使用一种称为“一旦为空格, 始终为空格”的技术将这些配对比对向中心汇集。即在中心与其他序列的优化比对过程中, 会不断往中心序列中加入空格以适配比对, 且决不移出已经加入的空格, 也就是空格一旦加入到中心序列, 就始终留在中心序列中, 直到所有其它序列与中心序列优化比对完。算法描述如下:

步骤1:对于一组含有κ条序列的集合Ω, 首先找出序列St, StΩ, 使得itscore (Si, St) 的值最小, 令A={St}。

步骤2:逐次添加SiΩ-{St}到A中, 使SiStB比对值最小, 并假设S1, S2, …, Si-1已经添加到A中。由于在分别与St进行比对的过程中需要加入一些空格, 故此时A ={S1′, S2′, …, Si-1′, St′}。按照两条序列比对的动态规划算法比较St′和Si, 分别产生新的序列St″和Si′, 再按照St″中添加空格的位置调节序列{S1′, S2′, …, Si-1′}成{S1″, S2″, …, Si-1″}, 并用St″替换St′, 最后得到的比对即中心比对。

3 用蚁群——中心比对算法相结合求解MSA

该算法主要是模拟自然界演化的周期性的特点。自然界的演化往往是进化和退化交替进行的, 表现出周期性的特点。它是一个循环往复的过程, 但不是一种简单的回复。这里所提出的算法就是使群体的进化有周期性, 用精英保留策略使得群体不发生退化, 保持进化的趋势特点, 突变算子有可能使群体发生退化的特点。算法对一个进化周期的设计是:首先将序列进行编码, 接下来使用遗传算子 (交叉算子、变异算子、选择算子) 对群体进行进化, 当群体经过一定的进化代数后, 不是直接进入下一个循环, 而是先利用“滑动窗口”[10]检测出不匹配的区域, 用蚁群算法“改善”这些区域:让蚂蚁逐渐遍历比对中每个序列的一个残基, 直至全部残基被遍历完结束本次循环;经过一定的代数进化后, 仅保留最优解;对最优个体所对应的序列组进行中心比对, 比对后的序列组对应的染色体个体如果更优则取代最优解, 重新生成其余个体, 进入下一个周期。这种策略并非退化, 而是尽快摆脱进化迟钝状态, 开始一个新的进化周期。算法就是通过若干个这样的进化周期, 最后找到最优解的。

具体算法设计如下:

4 结 语

这里提出的基于蚁群算法与中心比对算法相结合的对序列比对算法有效地解决了局部收敛的问题, 加强了算法寻求最优解的能力。利用该算法求解多序列比对问题不但减少了计算时间, 而且改善了所求解的质量。因此, 用一种进化算法协助另一种进化算法来使用往往能取得更为理想的结果, 且在效率上更具优越性。

摘要:多序列比对问题是生物信息学中一个非常重要且具挑战性的课题。为了克服以往算法应用于多序列比对时所遇到的比对序列数受限制以及比对寻优速度慢的缺点, 提出一种基于蚁群算法与中心比对算法相结合的新求解算法, 给出了具体的算法设计。该算法充分发挥了蚁群算法和中心比对算法的优越性, 可提高求解MSA问题的计算精度和计算速度, 同时较好地解决了群体的多样性和收敛深度的矛盾。

篇5:序列比对动态规划算法

关键词:高速列车;简支梁桥;移动质量

中图分类号:U441.3 文献标识码:A 文章编号:1000-8136(2009)29-0044-02

随着行车速度的不断提高,交通密度的不断增加,荷载的不断加重,交通车辆与结构的动力相互作用问题越来越受到人们的重视。特别是近年来越来越多的高速铁路相继投入运行。一方面,高速运行的车辆对所通过的结构物产生动力冲击作用,直接影响其工作状态和使用寿命;另一方面,结构的振动又对运行车辆的平稳性和安全性产生影响。

常见的对车辆的简化有以下几种形式:①将车辆荷载简化为集中力,在梁上移动;②将车辆简化为移动质量;③将车辆简化为移动的简谐力;④将车辆看作是在桥梁上移动的弹簧上的质量。这几种简化方法中。以移动弹簧上的质量模拟最为合理,但也最为复杂,而将车辆看作移动的集中力即移动荷载和移动质量这两种简化方式最为简单,但是在对桥梁进行初步估算时不失为最简便、快捷的方法。

本文通过建立移动荷载和移动质量的模型,采用有限元软件ANSYS来研究和比较车辆在不同阻尼比的简支桥梁上运行引起的车桥动力响应。

1模型的建立

用移动质量模拟车辆匀速通过跨度为32m简支梁的情形,采用ANSYS软件建立相应模型,对桥梁的动力响应进行仿真计算。计算中,模型忽略桥梁粗糙、不平顺的影响,不考虑外界风载及地震荷载的影响,不考虑车的初始状态,即认为车辆在理想的状态下运行通过桥面。

本文采用二维梁单元BEAM3来模拟桥梁,划分的单元数由荷载的移动速度和桥梁长度来决定。单元长度△L=L/N,其中,L为桥梁的跨长,N为划分的单元数。这样,荷载在单元之间的运行时间(即从i节点变化到i+1节点)为t=△L/v,其中,口为移动荷载的速度。计算时,划分单元数为50。

在计算结构动态响应时,时间步长△t的选取是否合适,对计算结果能否反映结构响应特征产生很大的影响。如果时间步长△t太大,有可能得到完全失真的响应曲线。在图1所示的响应曲线中,如果步长不当,将会得到如虚线所示的错误的响应曲线。

时间步长的选取,应根据动态响应的振动周期频率来确定。由于三点确定一条抛物线,因此为了真实描述结构动态响应,在一个振动周期中应至少取5个点。如果设T是结构振动的周期,是结构振动的频率,那么结构动态响应计算的时间步长应取为

△L

(1)

本文采用桥梁模型基准数据如下:简支梁跨度1=32m,连续梁跨度l=64m,材料为50号混凝土,弹性模量E=3.5×1010N/m2。箱型断面,断面高度2.8m,断面宽度13m,截面积为A=8.29m2。惯性矩I=8.6m4,密度p=2500kg/m3

本文主要研究不同阻尼比的桥梁结构的动力性能(阻尼比变化范围为0.01~0.08),采用的基准车速为300km/h。3数值模拟及结果分析

图2表示了结构阻尼比为0.02、0.04、0.06、0.08时桥梁跨中节点的动挠度曲线。由图2可知,对于高速运行的车辆,随着梁上阻尼比的增加,梁上节点的动挠度逐渐减小。另外,随着梁上阻尼比的增加,各节点发生最大动挠度时荷载所在地位置逐渐后移。表1详细记录了阻尼比由0.01~0.08范围内桥梁跨中节点的最大竖向动挠度。

图3为表1数据所绘,从图中我们不难看出最大动挠度与结构阻尼比的关系已不再是线性的而变为非线性的。结构阻尼比越大,跨中节点的最大动挠度越小。

图4表示了结构阻尼比为0.02、0.04、0.06、0.08时桥梁跨中节点的竖向加速度曲线。可以看出,各节点的竖向加速度表现出类似于正弦曲线特性,随着阻尼比提高,其向下的竖向加速度明显减小。但是在一定范围内,随着阻尼比的提高,其向上的竖向及速度并没有明显减小。由此可见,通过适度提高结构阻尼比的方法可以在一定程度上控制桥梁结构的振动。

图5是由表2数据所绘,详细列出了结构在不同阻尼比下跨中节点的竖向加速度情况,从中不难看出,结构的竖向加速度和结构的阻尼比的关系不再是线性的,而变为非线性的。在结构阻尼比不大的时候,随着阻尼比的提高,结构的竖向加速度降低的速度比较快。随着结构阻尼比的增加,这种影响作用会越来越小。所以,在一定范围内控制结构阻尼比可以很好地控制桥梁结构的震动。

3结论

本论文采取了数值模拟计算的研究方法。对移动质量作用下桥梁的动态响应做了分析研究。通过ANSYS软件对车一桥藕合系统的动态模拟,得到桥梁的动力响应结构阻尼比的关系,通过数据分析得出如下结论:

(1)桥梁结构在高速列车作用下的动挠度与结构阻尼比之间并非是线性的关系,但总体规律是随着结构阻尼比的增加,桥梁结构的动挠度逐渐减小。

篇6:生物序列比对算法的研究现状

序列比对有双序列比对和多序列比对之分, 常见的双序列比对算法点阵图方法和动态规划算法, 而多序列比对算法主要有渐进比对和迭代比对两大类。

1、点阵图法

点阵图法[1]的基本思想是通过将一条序列排在上端, 另一条序列纵列在左端, 两个序列在任何位置上若出现相同残基, 就在两个序列对应位置上标注一个点, 做成一个图。排列成对角线的点列体现出两条序列间具有相同的字符串, 从而形象地表明序列间的相似性, 双序列点阵图示如图1所示。

点阵图法的主要优点在于可以找到序列间的所有可能的残基匹配, 但主要的局限是点阵计算机程序并不能显示真实的比对排列。

2、动态规划算法

动态规划算法主要有全局排列和局部排列两大类。

全局排列动态规划算法是由Needleman和Wunsch于1970年首先提出的[2], 算法的基本思想是:用比对的两条序列构建一个相似打分矩阵S, 矩阵中的元素可通过公式 (1.1) 获得。

这里, 是序列a在位置i和序列b在位置j的分值。是序列a位置i和序列b位置j上排列性状的分值。Wx是序列a中长度为x的间隔罚分, Wy是序列b中长度为y的间隔罚分。由于算法遍历矩阵的每个点, 具有最佳罚分。

例1:对序列a=GCTGATATAGCT, b=GGGTGATTAGCT, 选择参数s (a, a) =1, s (a, b) =-1, 插入删除单个字母的罚分为2, 计算相似打分矩阵S如图2。

根据上述矩阵可得最优比对如图3所示:

局部排列动态规划算法是由Temple Smith和Michael Waterman于1981年提出的, 同样算法也是通过比对的两条序列构建一个相似打分矩阵 (记为H) , 矩阵中的元素Hi, j可通过公式 (1.2) 获得。

这里, Hi, j是序列a在位置i和序列b在位置j的分值。w (ai, bj) 是序列a位置i和序列b位置j上排列性状的分值。Wx是序列a中长度为x的间隔罚分, Wy是序列b中长度为y的间隔罚分。

3、渐进比对算法

渐进比对算法属于启发式的多序列比对算法。最常见的渐进比对算法就是由Feng和Doolittle提出的Clustal算法, Clustal的基本思想是基于相似序列通常具有进化相关性这一假设。比对过程中, 先对所有的序列进行两两比对并计算它们的相似性分数值, 然后根据相似性分数值将它们分成若干组, 并在每组之间进行比对, 计算相似性分数值。根据相似性分数值继续分组比对, 直到得到最终比对结果。比对过程中, 相似程度较高的序列先进行比对, 而相似性较低的序列则添加在后面。Clustal算法的主要三个步骤如下:

(1) 两两比对:先将比对序列进行两两比对分别构建距离矩阵。

(2) 系统发生树构建:根据计算所获得的距离矩阵构建系统发生树。

(3) 进化式比对:对关系密切的序列进行加权, 然后从紧密的两条序列开始, 逐步引入临近的序列并不断重新构建比对, 直到所有序列都被加入为止。

4、迭代比对算法

迭代比对算法的基本思想是基于一个比对算法, 通过迭代方式精细多序列比对, 直到比对结果不再改变为止。根据迭代策略的不同, 迭代比对算法大致可分为Prrp法, 隐马尔科夫法, 模拟退火法和遗传算法等。

小结

进行序列比对的目的之一是让人们能够判断两个序列之间是否具有足够的相似性, 从而判定二者之间是否具有同源性。值得注意的是, 相似性和同源性虽然在某种程度上具有一致性, 但它们是完全不同的两个概念:相似性是指一种很直接的数量关系, 比如部分相同或相似的百分比或其它一些合适的度量;而同源性是指从一些数据中推断出的两个基因在进化上曾具有共同祖先的结论, 它是质的判断。基因之间要么同源, 要么不同源, 绝不像相似性那样具有多或少的数量关系。

摘要:本文综述了生物序列比对的基本思想和主要方法。通过序列比较可以发现生物序列中的功能、结构和进化的信息。进行序列比对的目的是让人们能够判断两个序列之间是否具有足够的相似性, 从而判定二者之间是否具有同源性。

关键词:生物序列,比对,算法

参考文献

[1]Gilbert DG.Dot plot sequence comparisonson Macintosh computers.Comput.Appl.Biosci., 1990, 6 (2) :117-117;

篇7:序列比对动态规划算法

[关键词] 移动商务 Web使用挖掘 PrefixSpan算法 序列模式

一、引言

随着移动网络的快速发展和电子商务的广泛应用,移动网络用户对于商务信息的需求也大幅提升。据中国互联网络信息中心(CNNIC)2007年1月发布的《第19次中国互联网络发展状况统计报告》显示,截至2006年底,我国网民人数达到了1.37亿,其中,新兴上网方式——手机上网也初具规模,达到1700万人。手机上网将成为互联网接入方式的新潮流。但在对使用手机上网的网民进行调查发现,有72.2%和30.9%的网民使用手机上网主要是收发邮件和浏览信息,而费用高(占86.4%)、网速慢(占33.4%)是网民使用手机上网经常遇到的问题;此外,不方便、可获取信息太少等也成为网民不使用手机上网的原因。一方面是以手机为代表的移动设备的迅速发展,而另一方面却是移动商务网站上的信息贫乏和服务落后,解决方法之一就是进行Web使用挖掘,寻找移动商务客户感兴趣的内容并向其推荐。

Web使用挖掘是对用户访问Web时在服务器留下的访问记录进行挖掘,挖掘对象是在服务器上的日志信息,也称为Web日志挖掘,其目的是在海量的Web日志数据中自动、快速地发现用户的访问模式(即序列模式)。在经过对这些模式进行分析和可视化之后,可以为用户提供个性化的服务。序列模式挖掘是模式发现中运用得比较成功的方法,本文在比较几种常用的序列模式挖掘算法的基础上,对PrefixSpan算法进行了研究和优化。

二、序列模式挖掘算法

序列模式挖掘是从序列数据库中发现频繁子序列作为模式,被广泛应用于客户购买行为模式预测、网络访问模式预测、疾病治疗早期诊断、自然灾害预测及DNA序列破译等方面。序列模式最早由Agrawal R和Srikant R提出,常用算法有:

·AprioriAll算法在每一次扫描数据库时,利用上一次扫描时产生的大序列生成候选序列,并在扫描同时计算支持度,满足支持度的候选序列作为下次扫描的大序列。算法主要缺陷在于容易生成庞大的候选序列集和需要多次扫描数据库,不易发现长序列模式并导致较大开销;

·GSP(Generalized Sequential Patterns)算法类似于Apriori算法,但引入了时间约束、滑动时间窗和分类层次技术,有效减少了候选序列数量和无用模式。然而GSP算法仍然需要对序列数据库进行循环扫描;若序列数据库规模比较大,可能产生大量候选序列模式;且难以处理长序列模式的情况;

·FreeSpan算法以Apriori-based演算法为基础,但改进了产生候选序列的方式并验证是否为高频序列。该方法将搜寻区域由大范围的完整资料库改为小范围的映射资料库,产生的候选序列数量较少,也减少了扫描资料库的时间,并提升了挖掘的效率。但该算法必须完整保留与该项目有關的序列,且在产生候选序列时并不考虑顺序性,因此可能产生过多的候选序列。

本文将要论述的PrefixSpan算法与FreeSpan类似,但PrefixSpan不需要产生候选序列,从而大大缩减了检索空间;相对于原始的序列数据库而言,投影数据库的规模不断减小。PrefixSpan算法的缺点在于建立映射资料区间的成本很高,若资料项目平均分配在每个序列中,则成本便会急剧增加。下面对该算法进行介绍和优化。

三、PrefixSpan算法及其改进

1.符号化表示

序列(Sequence):是不同项目集(ItemSet)的有序排列,一个序列S可以表示为,,为项目集(ItemSet),也称为序列S的元素。

子序列:设如果存在整数使得则称序列α为序列β的子序列,记为。

序列α在序列数据库S中的支持数:序列数据库S中包含序列 α的序列个数,记为Suuport(α)。

序列模式:给定支持度阈值ξ,如果序列α在序列数据库中的支持数不低于ξ,则称序列α为序列模式。长度为1的序列模式记为1-模式。

2.算法描述

给定序列数据库和最小支持度阈值,序列模式挖掘就是要找出序列数据库中所有的序列模式。具体算法如下:

·扫描序列数据库,生成所有长度为1的序列模式;

·根据长度为1的序列模式,生成相应的投影数据库;

·在相应的投影数据库上重复上述步骤,直到在相应的投影数据库上不能产生长度为1的序列模式为止。算法描述如图1所示。

例如:序列数据库S如表1所示,并设用户指定的最小支持度min_support=2。

通过对表1给出的序列数据库S进行扫描,产生长度为1的序列模式有::4,:4,:4,:3,:3,:3。

序列模式的全集是分别以为前缀的序列模式的集合,现构造不同前缀所对应的投影数据库,结果如表2所示:

分别对不同的投影数据库重复上述过程,直到没有新的长度为1的序列模式产生为止。

3.PrefixSpan算法

输入:序列数据库 及最小支持度阈值min_sup

输出:所有的序列模式

方法:调用子程序PrefixSpan(<>,0,S)

在子程序PrefixSpan(α,L,S|α)中,参数α为一个序列模式, L为序列模式α的长度,当α为空则S|α为S,否则为α的投影数据库。子程序算法如下:

·扫描S|α,找到满足下述要求的长度为1的序列模式b:(1) b可以添加到α的最后一个元素中并为序列模式;(2)可以α的最后一个元素并为序列模式;

·对每个生成的序列模式b,将b添加到α形成序列模式α`,并输出α`;

·对每个α`,构造α`的投影数据库S|α`,并调用子程序PrefixSpan(α,L+1,S|α`)

四、PrefixSpan算法改进

由于PrefixSpan算法的主要开销在于投影数据库的构造,因此对PrefixSpan算法的改进主要是从减少投影数据库入手。

1.隔层投影

使用隔层投影代替逐层投影,从而可以有效减小投影数据库的个数。

仍以前面所述的序列数据库为例,改用隔层投影,具体步骤如下:

(1)扫描序列数据库,产生所有长度为1的序列模式;

(2)再次扫描序列数据库,构造一个下三角矩阵(如表3所示),得到所有长度为2的序列模式;

(3)构造长度为2的序列模式所对应的扫描数据库,并对每个投影数据库重复上面的操作,直到没有新的序列模式产生为止。

2.伪投影

当序列数据库可以直接放入内存时,可使用伪投影代替实际的投影数据库,从而有效减少构造投影数据库的开销;同时,不需要构造所有的序列模式对应的投影数据库,可使用指向数据库中序列的指针及其偏移量作为伪投影。

例如,针对上述序列数据库构造α投影数据库时,序列S1=所对应的伪投影为一个指向S1的指针,指针偏移设定为2。同样地,序列S1的投影数据库对应的伪投影也是一个指向S1的指针,但指针偏移设定为4。以此类推。

五、结论

本文在比较几种常用序列模式挖掘算法的基础上,重点介绍了PrefixSpan算法并对其改进,以隔层投影代替逐层投影和伪投影方式,减少序列模式扫描过程中产生的投影数据库,从而降低系统开销,提高挖掘效率。下一步将致力于建立个性化移动商务推荐系统,更好地为移动客户服务。

参考文献:

[1]中国互联网信息中心(CNNIC). 第19次中国互联网络发展状况统计报告[EB/OL].http://www.cnnic.net.cn/html/Dir/2007/01/22/4395.htm

[2]来玲杨宝森:用Web挖掘方法扩充大学图书馆知识库研究[J].情报杂志,2005(2):18-20

[3]Agrawal R,Srikant R. Mining Sequential Patterns [A]. Proceedings of the International Conference on Data Engineering[C].Tapei:IEEE Computer Society,1995. 3-14

[4]Agrawal R,Srikant R. Mining Sequential Patterns:Generalizations and Performance Improvements [A]. Proceedings of the International Conference on Extending Database Technology(EDBT). Avgnon:Lecture Notes in Computer Science,1996. 3-17

[5]Han JiaWei,PeiJian. FreeSpan:Frequent Pattern-projected Sequential Pattern Mining [A]. Proceedings of the International Conference on Knowledge Discovery and Data Mining(KDD’00)[C]. Boston:MAAC Press,2000. 35-359

[6]Pei Jian,Han Jiawei. Mining Squential Patterns by Pattern-growth:The PrefixSpan Approach [J]. IEEE Translations Knowledge and Data Engineering,2004,6(10):1-17

上一篇:给长辈的一封信800字小学五年级书信作文下一篇:《虞美人》与《一剪梅》对比阅读(高二选修教案设计)