一种无间隙约束的在线串匹配方法组成比例

技术编号:20221695 阅读:26 留言:0更新日期:2019-01-28 20:13
本发明专利技术一种无间隙约束的在线串匹配方法,涉及电数字数据处理技术领域,利用在线的方式来处理无间隙约束的无重叠的模式匹配问题,即序列串中同一位置的字符可以在模式串的不同位置进行匹配。步骤是:读入模式串P,建立多个队列;对给定的序列串S按照前后顺序依次读取;判定队列i是否能够创建结点;判定是否能够构成一个无重叠条件的出现,当构成一个出现则将其在显示器上输出,直至处理完序列串S中的所有字符。本发明专利技术克服了现有技术存在的在保证完备性的基础上很难有效地控制空间开销和时间开销的缺陷,不仅提高了求解的速度,同时还保证了解的完备性。

【技术实现步骤摘要】
一种无间隙约束的在线串匹配方法
本专利技术的技术方案涉及电数字数据处理
,具体地说是一种无间隙约束的在线串匹配方法。
技术介绍
随着社会的不断进步,计算机领域蓬勃发展,数据的处理也逐渐成为了一个研究热点,而在数据中检索出更加有用的信息,则显得尤为重要,进而,研究学者将数据中的信息字符化,并对其进行整理统计,于是字符串匹配这一技术便随之产生,随着技术的发展,研究学者又将在某一字符串中找出与给定子串相同的所有子串这一过程定义为串匹配或模式匹配,串匹配或模式匹配的实际应用十分广泛,不仅应用于简单的生物序列匹配,还应用于生活中的购物心理匹配。现今,模式匹配的发展趋势有以下几种:①从传统的模式匹配到是否考虑间隙约束的模式匹配,下例A对①给出了详细说明;②从无条件的模式匹配到一次性的模式匹配;③从无条件的模式匹配到无重叠的模式匹配,下例B对②和③给出了详细说明;另外,从传统的一次性将文本或序列读入后再统一处理的形式发展为后来的边读入文本或序列边处理的形式,研究学者们将前者定义为离线的形式,而后者则定义为在线的形式。例A.给定模式串P=p1[0,1]p2[0,1]p3[0,1]p4=a[0,1]t[0,1]t[0,1]a和序列串S=s1s2s3s4s5=ataat。针对模式串P=p1[0,1]p2[0,1]p3[0,1]p4=a[0,1]t[0,1]t[0,1]a而言,由a[0,1]t可知,字符a与字符t之间间隔的字符个数限定为0到1个,将其称之为间隙约束;而将字符a与字符t之间间隔的字符个数不限定的情况称为无间隙约束。具有间隙约束:找到的出现个数为0。因为s1与p1相同,匹配成功;s2与p2相同,且s2与s1间隔0个字符,满足[0,1]的间隙约束,匹配成功;s3、s4与p1相同,匹配成功;s5与p3相同,但由于s5与s2间隔2个字符,不满足[0,1],匹配失败,因此未找到一组完整的出现。无间隙约束:找到的出现个数为1。因为s1与p1相同,匹配成功;s2与p2相同,且s2与s1不考虑间隙约束,因此匹配成功;s3、s4与p1相同,匹配成功;s5与p3相同,且s5与s2不考虑间隙约束,因此匹配成功,s5与p6相同,匹配成功,找到一组出现,即<1,2,5,6>。就例A而言,在模式串相同时,相比于间隙约束的情况,无间隙约束能匹配到更多的出现,此外,在其他条件相同的情况下,无间隙约束的情况在求解的完备性这一要求上更具优势。例B.给定模式串P=p1[0,2]p2[0,2]p3=a[0,2]t[0,2]a和序列串S=s1s2s3s4s5=atata,若模式串中任意两字符之间都可用通配符“*”表示。为方便表示各出现,模式串P在序列串S中出现的所有字符用序列串S中对应的字符下标的形式进行表示。说明书附图的图1表明,该例B中模式串P在序列串S中共有四个出现,分别是<1,2,3>、<1,2,5>、<1,4,5>和<3,4,5>。在从无条件的模式匹配到一次性的模式匹配情况下,序列串S中所有字符只能使用一次,因此模式串P在序列串S中只能被匹配一次,可以选择1~4任意一种匹配模式;在无重叠条件下,序列串S中同一位置的字符不能在模式串的相同位置处重复使用,因此选择第一个出现为<1,2,3>后,第二、三个出现就不可以选择,因为它们的第一个位置重复使用了s1=′a′;第一个出现在位置3使用了s3=′a′,而在第四个出现中在位置1处使用了s3=′a′,这符合无重叠条件要求,选择第四个出现为<3,4,5>,可见无重叠条件下模式串P在序列串S中出现了2次。模式匹配中有两个条件十分重要:一是满足解的完备性要求;二是提高求解的速度及降低空间开销,但现有技术方案在处理无间隙约束下的无重叠模式匹配时,很难同时满足这两个条件,例:吴信东、朱信全发表的文献“anefficienton-linealgorithmforapproximatepatternmatchingwithwildcardsandLengthconstraints,IEEE.”提出的在线方法,虽摆脱了传统的离线技术,运用在线的方式读取字符,节省了大量的时间,但由于其针对的是一次性条件,不能很好的解决频繁模式这一问题;黄国林、郭丹、胡学钢发表的文献“基于通配符和长度约束的近似模式匹配方法,计算机应用.”提出了基于EDM的近似模式匹配方法,可以处理近似匹配中的三种编辑操作,即插入、替换和删除操作,但近似匹配在求解过程中,字符的不完全匹配性,导致其只能是宽松匹配;武优西、沈丛发表的文献“Strictpatternmatchingundernon-overlappingcondition,ScienceChinaInformationSciences.”提出了网树结构下模式匹配方法,将每个字符用结点的形式存放在树结构中,并将满足条件的结点建立父子关系,很好的解决了无重叠条件下解的完备性问题,并且其在各种约束条件下,相比于其他方法有着很好的性能,但是,在处理无间隙约束的无重叠问题时,该方法的空间开销迅速增长,导致求解速度急剧下降;武优西、仝瑶发表的文献“NOSEP:NonoverlappingSequencePatternMiningwithGapConstraints.IEEETransactionsonCybernetics.”其中所报道的内容是采用无重叠约束进行序列模式挖掘,属于串匹配的应用,该文献需要预先设定间隙约束,然后再进行序列模式挖掘。总之,解决无间隙约束的无重叠的模式匹配问题上,现有技术在保证完备性的基础上,很难有效地控制空间开销和时间开销的问题,至今尚未出现一个很好的方法来解决这类问题。
技术实现思路
本专利技术所要解决的技术问题是:提供一种无间隙约束的在线串匹配方法,利用在线的方式来处理无间隙约束的无重叠的模式匹配问题,该方法首先建立与模式串中字符个数相匹配的多个队列,之后按照前后顺序依次读取给定序列串中的字符,在读取的过程中,在显示器上输出满足无重叠条件的出现,克服了现有技术存在的在保证完备性的基础上很难有效地控制空间开销和时间开销的问题的缺陷,不仅提高了求解的速度,同时还保证了解的完备性。本专利技术解决该技术问题所采用的技术方案是:一种无间隙约束的在线串匹配方法,具体步骤是:第一步,读入模式串P,建立多个队列:读入模式串P,确定该模式串P的长度为m,该模式串P中的各个模式子串的字符为pi,这里i为1、2、3、……、m中的一个数字,为此,该模式串P中的各个模式子串的字符分别为p1、p2、……、pm,并对模式串P建立m个队列,这些队列的编号为队列i,这里i为1、2、3、……、m中的一个数字,则模式串P建立的m个队列分别是队列1、队列2、……、队列m;第二步,对给定的序列串S按照前后顺序依次读取:对给定的序列串S按照前后顺序依次读取读入该序列串S中的字符sj,这里j为1、2、3、……、n中的一个数字,为此,该序列串S中的每个字符分别为s1、s2、s3、……、sn;第三步,判定队列i是否能够创建本文档来自技高网
...

【技术保护点】
1.一种无间隙约束的在线串匹配方法,其特征在于具体步骤是:第一步,读入模式串P,建立多个队列:读入模式串P,确定该模式串P的长度为m,该模式串P中的各个模式子串的字符为pi,这里i为1、2、3、……、m中的一个数字,为此,该模式串P中的各个模式子串的字符分别为p1、p2、……、pm,并对模式串P建立m个队列,这些队列的编号为队列i,这里i为1、2、3、……、m中的一个数字,则模式串P建立的m个队列分别是队列1、队列2、……、队列m;第二步,对给定的序列串S按照前后顺序依次读取:对给定的序列串S按照前后顺序依次读取读入该序列串S中的字符sj,这里j为1、2、3、……、n中的一个数字,为此,该序列串S中的每个字符分别为s1、s2、s3、……、sn;第三步,判定队列i是否能够创建结点:判定上述第一步的队列i是否能够创建结点,依照如下方法处理:依次对读入上述第二步给定的的序列串S中的字符sj,依次判定其与模式串P中相应的模式子串字符pi是否相同,当都不相同时,直接放弃对该字符的处理,当字符sj与字符pi相同时,则需要按照如下形式进行判定,确定能否在队列创建结点:(3.1)能在队列i创建结点的形式:(3.1.1)当i=1时,则在队列1创建结点,记为结点...

【技术特征摘要】
1.一种无间隙约束的在线串匹配方法,其特征在于具体步骤是:第一步,读入模式串P,建立多个队列:读入模式串P,确定该模式串P的长度为m,该模式串P中的各个模式子串的字符为pi,这里i为1、2、3、……、m中的一个数字,为此,该模式串P中的各个模式子串的字符分别为p1、p2、……、pm,并对模式串P建立m个队列,这些队列的编号为队列i,这里i为1、2、3、……、m中的一个数字,则模式串P建立的m个队列分别是队列1、队列2、……、队列m;第二步,对给定的序列串S按照前后顺序依次读取:对给定的序列串S按照前后顺序依次读取读入该序列串S中的字符sj,这里j为1、2、3、……、n中的一个数字,为此,该序列串S中的每个字符分别为s1、s2、s3、……、sn;第三步,判定队列i是否能够创建结点:判定上述第一步的队列i是否能够创建结点,依照如下方法处理:依次对读入上述第二步给定的的序列串S中的字符sj,依次判定其与模式串P中相应的模式子串字符pi是否相同,当都不相同时,直接放弃对该字符的处理,当字符sj与字符pi相同时,则需要按照如下形式进行判定,确定能否在队列创建结点:(3.1)能在队列i创建结点的形式:(3.1.1)当i=1时,则在队列1创建结点,记为结点(3.1.2)当i>1且p(i-1).back≠j时,并且如下公式(1)成立,numi<numi-1(1)则在队列i创建结点,记为结点(3.1.3)当i>1且p(i-1).back=j时,并且如下公式(2)成立,numi<numi-1-1(2)则在队列i创建结点,记为结点(3.2)不能在队列i创建结点的形式:(3.2.1)当i>1时,numi-1=0,则不能在队列i创建结点,(3.2.2)当i>1且p(i-1).back≠j时,并且如下公式(1)不成立,numi<numi-1(1)则不能在队列i创建结点,(3.2.3)当i>1且p(i...

【专利技术属性】
技术研发人员:武优西王建姣刘靖宇张帅柴欣朱怀忠李艳
申请(专利权)人:河北工业大学
类型:发明
国别省市:天津,12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1