[发明专利]一种分布式环境下的模式匹配处理器在审
申请号: | 201310433588.5 | 申请日: | 2013-09-22 |
公开(公告)号: | CN103885834A | 公开(公告)日: | 2014-06-25 |
发明(设计)人: | 牛晓芳 | 申请(专利权)人: | 天津思博科科技发展有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 300100 天津市南*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 环境 模式 匹配 处理器 | ||
技术领域
本发明涉及模式匹配与云计算领域,利用分布式计算法的技术结合经典的Wu-Manber模式匹配算法进行改进,公开了一种分布式环境下的模式匹配处理器。该处理器充分利用Map-Reduce的特性,将Wu-Manber的预处理过程和匹配过程拆分成Map-Reduce作业,使处理过程并发进行。
背景技术
模式匹配Pattern matching(也称串匹配String matching)是复杂性理论中研究最广泛的问题之一,它是网络安全、信息检索与过滤、文字处理、数据库查询、音乐检索、计算生物学等重要领域的核心问题,同时也是序列模式挖掘技术的核心与基础。
模式匹配的算法很多,比较经典的有KMP算法,Shift-And/Shift-Or算法,Boyer-Moore算法以及Wu-Manber算法等,这些算法提出的年代较为久远,在此之后也有很多人提出过针对这些算法的改进。甚至在某些特定的场合通过一定的条件约束或者使用特定的数据结构设计出特定的高效算法,但是数据量的增长已经远远超过这些算法改进所处理的程度。
Google发表的论文,奠定了云计算技术工业化应用的基础,也成为分布式计算领域的事实标准。本发明也将采用Map-Reduce的编程模型,使Wu-Manber算法适用于分布式计算环境,来处理海量的Internet信息。
Map-Reduce介绍
Map-Reduce编程模型的输入是一批具有KEY-VALUE格式的记录,产生的输出也是KEY-VALUE格式的记录集合。Map-Raduce编程模型的用户通过两个函数:Mapper和Reducer来实现整个流程。
Maper由用户实现,根据每一个KEY-VALUE的输入,产生一个KEY-VALUE中间结果。正如其名MAP,这个过程是一对一的映射过程。Map-Reduce的模型会将这一映射的结果以相同的KEY将结果集合排序、分组,然后再将结果传给Reducer。
Reducer也是由用户实现,接收Mappper产生的结果集合,针对相同的key,将这个key所对应的所有的value按照用户定义的方法归并起来形成一个更小的KEY-VALUE集合。通常每个Reduce调用产生0或者1个输出值。同一个key对应的多个Value值是通过一个迭代器来传递处理。因此即使某个key对应的Value非常多而无法放入内存映射时,也能正确的运行Reducer。
由于Mapper的输入数据可能在不同的物理机器上,或者可以在任务开始的时候将Mapper的数据分段分发到不同的物理机器上,然后在不同的物理机器上分别执行Mapper,然后统一的对所有Mapper的输出集合进行排序、分组,再将结果集合按照KEY运行一个或者多个Reducer。
Wu-Manber算法介绍
Wu-Manber算法采用字符块技术,增大了主串和模式串不匹配的可能性,从而增加了直接跳跃的机会。使用散列表选择模式串集合中的一个子集与当前文本进行完全匹配。使用前缀表进一步过滤不匹配的模式串,使算法获得了较高的运行效率。
WM算法首先对模式串集合进行预处理。预处理阶段将建立3个表格:SHIFT表,HASH表和PREFIX表。SHIFT表用于在扫描文本串的时候,根据读入字符串决定可以跳过的字符数,如果相应的跳跃值为0,则说明可能产生匹配。HASH表用来存储尾块字符散列值相同的模式串。PREFIX表用于存储尾块字符散列值相同的模式串的首块字符散列值。
SHIFT表为每个B大小的字符块维护一个key,每个key值对应的value是遇到该字符块匹配时,目标串的当前位置需要移动的距离。
HASH表的key也是字符块,value是指向一个链表的指针,这个链表中的元素是当SHIFT[key]为0时,后缀为key的模式串。
PREFIX表的生成与HASH表相对,HASH表中的key为T[m-B+1...m],而PREFIX表中的key为T[1...B]。有PREFIX表,就可以对HASH表项指向的链表做进一步的过滤,即只有前缀和PREFIX的key值相等的链表元素才参与匹配验证。因为在模式集合中既有相同的后缀又有相同前缀的情况会更少。
算法匹配的大致原理:
(1) 设当前比较的文本串X的hash值为h。如果SHIFT[h]=0,说明可能产生了匹 配,那么需要进一步的判断。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津思博科科技发展有限公司,未经天津思博科科技发展有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310433588.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种窗式空气净化换气机
- 下一篇:一种垃圾处理系统的垃圾车卸料大厅