关键词:
机器字
模式匹配
打包技术
FFT
AC自动机
摘要:
模式匹配算法是在给出的文本中找到是否有模式出现的一个基本算法。该算法不仅需要找到全部出现的模式并且还需要确定模式出现的位置。模式匹配算法可以解决多种领域的应用问题。例如在生物信息学领域中,在海量的DNA数据搜索目标的基因序列。在网络安全方面、尤其是在入侵检测系统中,模式匹配算法发挥着非常重要的作用,算法的效率对整个系统的性能有重要影响。本文研究模式匹配算法的性能和空间占用的优化问题,提出了基于机器字运算的模式匹配算法优化方法。(1)基于word-RAM模型,使用机器字并行技术,本文也称打包方法,将多个向量的计算单元打包到一个机器字中进行卷积计算求出文本和模式的汉明距离以实现匹配操作。首先要对其实现过程中的关键技术快速傅里叶变换进行优化设计,其主要思想是基于机器字长度使用基于整数的模运算方法做FFT,其中间变量及结果均为整数形式,以减少机器在计算复数FFT时所需要的开销,其次使用基于此优化的快速傅里叶变换(FFT)方法的算法解决模式匹配问题。(2)提出一种简单高效的字典树匹配数据结构用于多模式匹配算法。其主要思想是将模式截取为若干个长度为?的子串,并将其子串视为一个符号,通过采用在截取的模式集上的AC自动机和?长度字符子串上的AC自动机模拟原有模式集的AC自动机。由于这种新型数据结构将前缀合并应用于模式的子串,因此提高了空间使用效率。本文将比特并行技术应用于此数据结构的实现中,将模式按照机器字长w比特进行截取,即?为机器字内可以装载的字符数,并使用哈希函数对其压缩,根据?子串的散列值构造模式集合的AC自动机。此方法减少了原有AC自动机的状态数,并保持了较高的性能。论文进行了一系列实验验证了所提出的方法对的有效性。