ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:240.89KB ,
资源ID:3654763      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3654763.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(二维参数化匹配算法.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

二维参数化匹配算法.docx

1、二维参数化匹配算法二维参数化匹配算法Richard Cole, New York UniversityCarmit Hazay and Moshe Lewenstein, Bar-Ilan UniversityDekel Tsur, University of Haifa两个长度相同的字符串,或者两个相同大小的文本,如果它们存在一对一的映射关系(相对于字母表来说),则称为参数化匹配(简称P-匹配)。二维参数化匹配指的是找出一个n*n规模的文本中所有的m*m子串中同一个m*m的模式串存在参数化匹配的子串,例如,这个模型可以用于在变化着的彩色地图中查找彩色图像。我们在本论文中给出了两种算法用于解决

2、二维参数化匹配的问题,它们的时间复杂度分别为O(n2log2m)、O(n2+m2.5polylog(m),这二者都比Amir 等.2006给出的O(n2mlog2mloglogm)的时间复杂度要快。我们的算法中的一个关键步骤是计算n*n字符串中所有m*m子串的不同字符的数目,对于这个问题,我们给出的时间复杂度为O(n2),这个结果相对于参数化匹配来说可能具有独立的意义。分类和主题描述: 模式匹配通用术语:算法关键词:参数化匹配,二维模式匹配,失配证据计算1、介绍两个相同长度的字符串S和S,如果存在一个一一映射,使得Si = (Si)对于所有的i都成立,则称两者参数化匹配(简称P-匹配)。Bak

3、er1996,1997首次提出参数化匹配的问题,对于输入文本T和模式P,找出T中所有长度为|P|并且同模式P满足P-匹配的子串。Baker在源码分析工作中引入参数化模式匹配的问题,而其他如图像处理、计算生物学等领域都存在着参数化匹配问题(Amir 等 2006)。Bakar1996,1997在字母表大小固定的条件下,给出了一个参数化匹配问题的优化的线性算法;而Amir 等1994则给出了一个非限定字母表大小的优化算法。在Baker1996,1997中,通过构造参数化后缀树来解决参数化匹配问题,该方法可以用于在线的P-匹配。Kosaraju1995进一步研究了参数化后缀树而Cole和Hariha

4、ran2003给出了一个快速的后缀树构造方法。Apostolico 等. 27引入了近似参数化匹配并且给出了一个针对二进制字母表的解决方案。Hazay 等. 2007给出了一个时间复杂度为O(nk1.5+mklogm)的近似参数化匹配算法,其中k为失配数,并且指明该问题同二分图的最大匹配问题存在着很强的相关性。图像搜索是网络搜索中一个非常有趣的问题(见Amir 等. 2004; Babu 等. 1995; Swain and Ballard 1991),如果图像颜色固定,则该问题就是一个精准的二维模式匹配问题Amir 等 1994,然而,图像经常出现在不同的彩色地图中,这就导致图像的像素分量的

5、关系没有改变,而相同颜色的像素的颜色已经发生了变化,而这恰好就是二维参数化搜索的研究内容。Amir 等. 2006给出了一个O(n2mlog2mloglogm)时间复杂度的算法,其中文本大小为n*n,模式串大小为m*m。对于二维参数化模式匹配是否存在线性时间复杂度的算法成为一个开放性的问题,在本文中,我们给出了两种新的算法,第一个算法相对于输入规模非常接近线性时间复杂度,而第二个算法,在对模式串进行高代价的预处理之后,是一种相对文本规模的线性复杂度的算法。第一个算法以卷积为基础,采用了一种新式的将二维空间转换为一维空间的方法;第二个算法以决斗策略为基础,利用问题的二维属性,它们的时间复杂度分别

6、为O(n2log2m)、O(n2+m2.5polylog(m)。我们的两种算法的一个关键步骤都是如何计算在一个n*n的字符串中每一个m*m的子串中的不同字符的数目,Amir 等. 2004对于该问题给出了一个O(n2logm)时间复杂度的算法,而我们则给出了一个O(n2)时间复杂度的算法,这个结果具有相对独立的重大意义。本论文的剩余部分按照如下内容组织:在第二节,我们给出了一些定义和预备知识的介绍,接下来,在三节中,我们提出了一个O(n2log2m)时间复杂度的算法,而在第四节中,我们提出了一个O(n2+m2.5polylog(m)时间复杂度的算法,最后,在第五节中,我们详细描述了子串字符计数

7、的算法。2、预备知识S和S是相同大小的二维字符串,如果存在函数f,使得S的字母表映射到S的字母表,并且Sx,y = f(Sx,y)对于所有的x,y都成立,则我们称存在一个S到S的函数匹配,如果这个函数映射是一对一的,那么那么称S和S参数化匹配,或者简称P-匹配,需要注意的是,函数匹配的定义是非对称的,而参数化匹配的定义是对称的。二维参数匹配的定义如下:输入:n*n 的文本T和m*m的模式P。输出:文本T中同模式P满足P-匹配的所有的m*m大小的子串。在本文的论述中,我们假设T的字母表空间为1,.,n2,而模式P的字母表空间为1,.,m2。结论2.1 S和S存在参数化匹配的充分必要条件为存在S到

8、S的函数匹配并且S中的不同字符的数目和S中不同字符的数目相等。结论2.1使得我们的算法可以从如下结构来理解,首先,我们的算法创建一个T中m*m子串的列表L:(1) 要么存在从P至L中每一个子串的函数匹配,要么存在从L中每一个子串至P的函数匹配(分别的);(2) T中的每一个同P满足P-匹配的子串都存放在L中。第二步是计算T中每一个m*m的子串中的不同字符的数目,如果不同字符的数目同P中的相等,则这个子串就是P的P-匹配。在这个阶段,我们的算法的时间复杂度为O(n2),该算法将在第五节中详细论述,因此,我们在第三节和第四节中分别给出的两个算法只要描述列表L如何计算即可。二维字符串从左至右/从上至

9、下的遍历指的是这样的遍历顺序,首先从左到右访问字符串的第一行,然后从左到右访问字符串的第二行,以此类推,其他的遍历顺序的定义与此类似。我们用a,b*c,d表示所有这样的整数对(x,y)集合,其中a = x =b, c = y =d,我们称这样的集合为一个“矩形”。而相对应的,a*c, d等价于a, a*c, d,a, b*c等价于a, b*c, c。对于一个矩形R,我们定义R+(i, j)=(x+i, y+j) : (x, y)R。通常意义的数组索引用于表示二维字符串中的位置,也就是说,x坐标表示行号,从上至下依次递增,而y坐标表示列号,从左至右依次递增。最后,我们要描述的是几个精确匹配问题,

10、这些问题将被用于描述我们的算法。在一维精确通配符匹配中,其输入时一个模式P和一段文本T,模式和文本中都包含通配符,其目的是找到T中所有的|P|长度的同模式P匹配的子串,其中通配符可以匹配任何字符,精确的通配符匹配问题可以利用卷积来解决。引理 2.2 (Cole 和Hariharan 2002 ,Clifford 和Clifford 2007)精确的通配符匹配问题存在O(|T|log|P|)时间复杂度算法。在二维精确通配符匹配问题中,模式和文本都是二维字符串。引理 2.3 二维精确通配符匹配问题存在O(|T|log|P|)时间复杂度算法。证明:利用标准方法,二维问题可以规约为一般的一维问题,然后

11、根据引理2.2可得。接下来,我们扩展上面的问题为带证据的精确二维通配符匹配,其输入为模式P和文本T,而其目的是找出所有的T的子串T,T的大小和模式P相同,倒是T和P不匹配,其中一个证据就是一个不匹配的地方,也就是说,一个位置(x, y),其中Tx, y和Px, y不匹配。引理 2.4 带证据的精确二维通配符匹配问题存在O(|T|log|P|)时间复杂度算法。证明:理论证明是由Alon、Naor1996(亦见Auman 等 2011)和引理2.2的算法证明相结合即可。接下来,我们考虑带证据的区域匹配问题,其输入为带通配符的两个字符串P1和P2,其目的为比较两者相同大小的子串,找到使之不匹配的证据

12、。我们思考这个问题的两个变形:一个是n*n大小的两个字符串P1和P2,相比较的子串为P11.n-i, 1.n-j和P2i+1.n, j+1.n,其中1= i,j=n;第二个变形为,P1的大小为(2n-1)*n,P2的大小为n*m,其中m=n,相比较的子串为P1和P2中所有的大小为n*n的子串。引理2.5 带证据的区域匹配问题存在O(|P2|polylog|P1|)时间复杂度的算法。证明:这个问题可以规约为如下的带证据的精确通配符匹配问题。对于第一个变形,通过为P2添加n-1行和n-1列的通配符来构造大小为(2n-1)*(2n-1)的字符串P2,更准确的说,P2x,y=P2x,y,如果x,y =

13、 n,否则,P2x, y是一个通配符,现在,P11.n-i, 1.n-j 和P2i+1.n, j+1.n匹配等价于P1和P2i+1.i+m, j+1.j+m匹配。对于第二个变形,通过为P2增加2n-2行通配符来构造P2,其中,n-1行增加到原有行的上方,n-1行增加到原有行的下方,这样,子串P1i+1.i+n, 1.n和P21.n, j+1.j+n匹配等价于P1和P21.n-i, j+1.j+n匹配。3、一种O(N2log2M)时间复杂度的算法在本小节中,我们给出我们关于解决二维参数化匹配问题的第一个算法,该算法的关键是通过对模式和文本进行编码,用“距离”来替代每一个字符,将参数化匹配问题规约

14、为精确通配符匹配问题。这种方法也在Amir等1994提出的一维参数化匹配中使用,然而,在二维情况下,编码方法更加复杂。我们在本小节的开始先给出Amir等提出的算法的描述,然后我们一种简单的低效率的一维扩展到二维的方法,最后,我们详细论述我们提出的更高效的算法。Amir等的算法利用模式(或者文本)中距离左侧最近的相同字符的距离来进行编码,如果左边没有相同的字符,则标记为0,除了每个字符的首次出现,一个参数化的匹配对应于一个编码后的标准匹配。这个算法利用KMP算法的变形来进行编码后的匹配算法。对于我们来说,我们采用一种稍微低效率的该算法的变形,通过将P和T按照类似上面描述的算法编码为P2和T2,其

15、区别在于P中首次出现的字符被编码为,用来表示一个通配符,这样我们可以很容易的得到下面的结论。引理3.1 对于T中长度为|P|的每一个子串T,对应的T2中的子串T2,(1)如果T和P满足P-匹配,则T2和P2满足精确通配符匹配。(2)如果P2和T2满足精确通配符匹配,则存在P到T的函数匹配。例子3.2 P=abacb,T=yxyxxy。那么,P2=23,T2=002213。存在一个P到T2.6的函数匹配,和存在一个P2和T22.6的精确通配符匹配。图1 一个5*5大小的模式和8*8大小的文本的简单算法的例子。假设在这个例子中,P同T=T3.7,2.6满足P-匹配(T在图中红色方框标出)。模式P中

16、的位置(4,4)和文本T中的位置(6,5)的活动矩形在图中粗线标出(活动矩形分别为R(4,4),-3,R(4,4),-2, R(4,4),-1, R(4,4),0, R(4,4),1和R(6,5),-4, ., R(6,5),2),而这些活动矩形中的选中的邻居也由粗体标出。位置(4,4)编码为2124,而位置(6,5)编码为125124000,这两个字符串匹配。P中位置(4,4)的邻居和T中位置(6,5)的邻居对齐。通过引理3.1,一维参数化匹配问题可以转换为精确通配符匹配问题和子串中不同字符的数目的计算问题。该算法从一维扩展到二维的一个直观的方法是将模式P或者文本T中的一个字符编码为多个字符

17、。对于模式P(文本T)中的每一个位置(x,y),我们定义2m-1个不相交的矩形R(x,y),-(m-1), R(x,y),-2, ., R(x,y),m-1,其中R(x,y),0 = x*1,y-1,对于i不为0时,R(x,y),i = x+i*1,y,需要注意的是,如果y=1,则矩形R(x,y),0为空。如果一个矩形非空并且它全部位于模式(文本)的内部,那么我们称模式中(或文本)的这个矩形是活动的,也就是说,这个矩形包含在1,m*1,m(对于文本T,则是1,n*1,n)中。剩下的矩形则称为不活动的。从右向左遍历活动矩形,如果存在(x,y),它的字符同(x,y)的字符相同,则这个位置就叫做(x

18、,y)的邻居,不活动矩形中不包含邻居。这样,文本T和模式P中按照如下方式进行编码:模式P中的每一个位置(x,y)编码称一个2m-1的字符串c1,.c2m-1 。字符ci由(x,y)的第i个矩形引入,如果第i个矩形生成邻居(x,y),则ci就是(x,y)的遍历矩形时的次序;如果第i个矩形没有生成邻居,则ci=。文本T的编码方式类似,除了当矩形不生成邻居时,ci=0 。让P2和T2表示编码之后的模式和文本,参看图1说明。我们现在证明引理3.1也同样适用于二维的情况,首先我们给出证明过程中需要用到的一些定义。定义3.3(关联位置)模式中(或者文本)两个位置(x,y)和(x,y)是关联的,如果存在一系

19、列的位置(w0,z0)=(x,y),(w1,z1),(w2,z2).(wl,zl)=(x,y),其中(wi,zi)要么是(wi+1,zi+1)的邻居,要么(wi+1,zi+1)是(wi,zi)的邻居(或者二者同时满足),1=i=l。定义3.4(对齐邻居)模式P中的位置(x,y)同文本T中位置(x+a,y+b)对齐,如果P中(x,y)的第i个矩形产生的邻居(x,y),则T中(x+a, y+b)第i个矩形产生的邻居为(x+a,y+b)对于所有的i都成立。结论3.5 P中具有字符的位置是关联的。图 2 应用高度为2的例子。左边为模式P,右边为文本T,假设P同T3.7,2.6满足P-匹配,P中位置(4

20、,4)的矩形为0,1*1,4, 2,3*1,4, 4*1,3, 5,6*1,4和7,8*1,4,其中仅有第二和第三个是活动的,位置4被编码为4,同理,文本中的位置(6,5)编码为14000,(4,4)的第一个矩形不能是活动的,否则,它将生成邻居(1,3)。然而,文本T中(6,5)的第一个矩形生成的邻居为(2,5),因此,(4,4)的邻居和(6,5)的邻居并不都是对齐的。引理3.6 T=Ta+1.a+m, b+1.b+m是T中的某个m*m的子串,(1) 如果P和T满足P-匹配,则对于P中的每一个位置(x,y),其邻居都与T中的位置(x+a,y+b)的邻居是关联的;(2) 对于P中的每一个位置(x

21、,y),如果(x,y)的邻居跟T中位置(x+a,y+b)的邻居对齐,则存在一个P至T的函数匹配。证明:对于第一部分,直接从定义就可以得出,而对于第二部分,考虑P中的两个不同位置(x1, y1)和(x2,y2),并且有Px1,y1=Px2,y2。由结论3.5可得,P中(x1,y1)同(x2,y2)是关联的,根据假设的前提条件,对于P中的每一个位置(x,y), (x,y)的邻居跟T中位置(x+a,y+b)的邻居对齐,我们得出T中的(x1+a,y1+b)和(x2+b,y2+b)是相关联的,特别是,Tx1+a,y1+b=Tx2+a,y2+b。因为上述结论对于P中具有相同字符的每对位置都成立,所以我们得

22、出结论,存在一个P至T的函数匹配。我们注意到上述引理的第一部分的反面并不一定成立,也就是说,如果P和T满足P-匹配,则T中的位置(x+a, y+b)的邻居并不一定同P中位置(x,y)的邻居是关联的。例如,图1中,T中位置(6,5)有一个邻居(4,1),而它在P中没有与之相对应的邻居。现在,引理3.1的正确性可以直接从引理3.6得出。编码之后的模式P2和编码之后的文本T2分别具有O(m3)和O(mn2)的大小,所以,根据引理2.3,解决P2和T2之间的精确通配符匹配算法的时间复杂度为O(mn2logm)。前面讨论的算法,如何进行改进呢?既然时间复杂度依赖于为每个位置选中的邻居的数目,那么一个自然

23、而然的改进想法就是用更高的矩形来替换高度为1的矩形,比如说,高度为2,从一个活动矩形将被按照从上至下/从右至左的顺序扫描,如果一个矩形的所有位置都位于模式串的内部,那么这个非空矩形是活动的。这个条件是必须的,否则,引理3.6就不成立(如图2所示)。然后,这又产生了新的问题,对于P中具有相同字符的两个位置,它们并不一定是关联的(也就是说,结论3.5不成立),如图3所示。注意到,这种情况发生在左上角的位置靠近模式串的边界的情况下,为了解决这个问题,我们需要一个更好的距离选择方法,以确保关联字符性质。图 3 应用高度为2的矩形并不能保证相同字符的位置是关联的一个例子。在模式P(左侧)中,位置(1,3

24、)和(4,4)不是关联的因为包含(1,3)的那个(4,4)的矩形是不活动的,因此这个矩形生成的字符为.假设T=T3.7,2.6中没有画出的字符同P中的对应字符是相同的,编码之后的P2和T2相匹配,但是从P到T中其实没有满足函数匹配。图4 8*8(左)的模式串P和11*11(右)文本串T的邻居选择方法的例子。P和T中位置(3,4)的邻居都被用粗体线标记出来,P和T中位置(3,4)的活动矩形在图中同样标出。模式P中位置(3,4)的右下象限的矩形是R(3,4),0=10*5,8, R(3,4),1=8,9*5,8, R(3,4),2=4,7*5,8,其中仅有最后一个是活动的。对应的文本T的矩形是10

25、*5,12, 8,9*5,12,4,7*5,12,这三个矩形都是活动的。在这个例子中,P和T1.8,1.8满足P-匹配,所以由引理3.6,P中(3,4)的邻居和T中(3,4)的邻居是对齐的。我们的解决方法形式如下。设t = log2m。对于模式中的每一个位置,我们定义4t+4个不相交的矩形,图4中说明了我们的构造方法。第一组四个矩形是由位置(x,y)将x行和y列划分而成的,它们分别是x*y+1,m,x*1,y-1,x+1,m*y,1,x-1*y,接下来,我们定义t个不相交的矩形R(x,y),0, ., R(x,y),t-1,它们覆盖了(x,y)右下角的象限。对于i=0,.,t-2,R(x,y)

26、,i = x+m-2i+1+1, x+m-2i*y+1,m和R(x,y),t-1 = x+1,x+m-2t-1*y+1,m对于(x,y)的左上角的象限,我们定义这样的矩形,对于i=0,.,t-2S(x,y),i = x-m+2i, x-m+2i+1-1*1,y-1和S(x,y),t-1 = x-m+2t-1, x-1*1,y-1另外两个象限有类似的定义。文本中的位置(x,y)的矩形跟上面的描述相似,唯一不同之处就在于,对于y列右边的那些矩形需要扩展到n列,而y列x行下面的那个矩形需要延伸到n行。需要注意的是,矩形的数量和他们的行数仍然依据m来定义。现在我们来定义上述矩形的扫描顺序,我们按照远离

27、(x,y)的方向直到到达Px,y的首次出现的位置的顺序遍历每一个活动矩形,精确地说,对于位于y列右边的所有矩形,我们按照从上到下/从左到右的顺序,而位于y列左边的所有矩形,我们是按照从上到下/从右到左的顺序,对于x+1,m*y则是从上到下,对于1,x-1*y则是从下到上。下面的引理3.7则将表明我们的构造过程能够满足关联字符的性质。引理 3.7 模式P中的两个包含相同字符的两个位置(x,y)和(x,y),那么这两个位置是关联的。证明:显然,如果x=x,那么沿着x行存在一系列的位置,使得(x,y)和(x,y)关联,类似的,如果y=y,也有相同的结果。下面我们主要考虑的是xx 和 yy的情况,不失

28、一般性,我们假设xx并且yy。我们声明要么(x,y)位于(x,y)的活动矩形中,要么(x,y)位于(x,y)的活动矩形中,具有很大的可能性是两者都满足。不失一般性,我们假设x=m/2,否则,我们可以通过交换这两个位置来解决,如果(x,y)位于(x,y)的某个活动矩形中,则上述声明的证。否则,R(x,y),0,.,R(x,y),t-1之间必然至少存在一个非活动矩形,设R(x,y),j是最上面的非活动矩形,因为x=m/2,并且R(x,y),t-1是活动的,所以j=x+m-2j+1+1,更进一步,R(x,y),j不满足此模式则表示x+m-2jm,也就是说,x2j。另外,x 2j+m-2j+1+1=m

29、-2j+1,所以x-m+2j 1,由这个不等式表明矩形S(x,y),j是活动的,这就证明(x,y)位于(x,y)的一个活动矩形之内。我们已经证明要么(x,y)位于(x,y)的活动矩形中,要么(x,y)位于(x,y)的活动矩形中,不失一般性,我们假设后者成立,虽然(x,y)不一定是(x,y)的一个邻居,尽管如此,通过对y-y进行归纳证明,我们仍然能证明他们是关联的。归纳基础是y=y的情况,这个已经得到证明。设(x,y)表示(x,y)的一个位于包含(x,y)的矩形之内的邻居,那么yyy,归纳总结,我们有(x,y)和(x,y)关联,所以假设成立。使用这种新的邻居选择策略,算法按照前面描述的方式构造P

30、2和T2,则它们的大小分别为O(m2logm)和O(n2logm),由此,根据引理2.3,P2和T2之间的精确通配符匹配问题存在O(n2log2m)时间复杂度的算法。现在,仍然需要说明如何标记出邻居的算法,该算法对于在模式串中需要O(m2log2m)的时间复杂度,而在文本串中需要O(n2log2m)的时间复杂度,下面我们在模式P中详细描述该算法,在文本T中的方法与此相同。对于在矩形x*y+1,m,x*1,y-1,x+1,m*y和1,x-1*y这四个矩形中查找邻居,我们可以采用最简单的方法,即直接扫描模式P中的行和列。下面,我们描述如何在剩下的矩形中查找邻居。该算法的基本思想是为每一个字符c维护一系列的模式P上的窗口w1,.,wt-1,窗口wi具有2i行高、m列宽(除了窗口wt-1,它的高度为m-2t-1行)。对于每一个i,窗口wi在模式P上逐行向下滑动,在wi的滑动过程中,wi中的字符c的出现按照从上到下/从左到右的顺序被保存在一棵平衡搜索树中。设(x,y)是P中字符c的一个位置,当窗口wi覆盖矩形R(x,y),i的行的时候,我们将通过查找二叉搜索树找到其位于R(x,y),i中的邻居。每一次搜索花费O(logm)的时间,因此,对于所有的字符和其邻居,则需要花费O(m2log2m)的时间,同时,窗口每下滑一行,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1