一种基于最小完美散列
This presentation is the property of its rightful owner.
Sponsored Links
1 / 17

一种基于最小完美散列 多关键词匹配算法 PowerPoint PPT Presentation


  • 155 Views
  • Uploaded on
  • Presentation posted in: General

一种基于最小完美散列 多关键词匹配算法. 谭建龙 计算所软件室 2002-7. 内容. 散列函数介绍 计算保序最小完美散列函数 算法概要 预处理介绍 搜索算法介绍 总结和展望. 散列函数介绍(1). 散列函数( Hashing Function). aaaa. bbbb. cccc. dddd. 散列函数介绍(2). 完美散列函数( Perfect Hashing Function). aaaa. bbbb. cccc. dddd. 散列函数介绍(3). 最小完美散列函数( Minimal PHF). aaaa. bbbb.

Download Presentation

一种基于最小完美散列 多关键词匹配算法

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


4610314

一种基于最小完美散列多关键词匹配算法

谭建龙

计算所软件室

2002-7


4610314

内容

  • 散列函数介绍

  • 计算保序最小完美散列函数

  • 算法概要

  • 预处理介绍

  • 搜索算法介绍

  • 总结和展望


4610314

散列函数介绍(1)

  • 散列函数(Hashing Function)

aaaa

bbbb

cccc

dddd


4610314

散列函数介绍(2)

  • 完美散列函数(Perfect Hashing Function)

aaaa

bbbb

cccc

dddd


4610314

散列函数介绍(3)

  • 最小完美散列函数(Minimal PHF)

aaaa

bbbb

cccc

dddd


4610314

散列函数介绍(4)

  • 保序最小完美散列函数(Order preserving MPHF)

aaaa

bbbb

cccc

dddd


4610314

保序最小完美散列函数(MPHF)

  • 没有任何冲突的把n个关键词散列到0..n-1

  • 第i个关键词一定散列为i-1;


4610314

MPHF搜索算法

建立随机的表三张随机表

计算出一个图Graph

存在回路

找到了MPHF


4610314

保序最小完美散列函数

  • 空间复杂性

    • 三张随机表:关键词长度×字符集大小

    • 计算的图: 1。23×关键词个数

  • 时间复杂性

    • O( 关键词个数)


4610314

MPHF函数

字符串

关键词长度次查询

3张随机表

3个整数

4次求模运算

3次查询图

1张图

散列值


4610314

实际使用的MPHF函数

字符串

关键词长度次查询

3张随机表

3个整数

4次求模运算

3次查询图

1张图

散列值


Mphf match

MPHF-Match算法概要

  • 预处理

    • 建立一个基于关键词的保序最小完美散列函数(MPHF)

    • 建立任何一个整数跳跃距离的表

    • 建立一个使用hashFirst函数检测的表

  • 搜索文本

    • 使用整数表跳跃前进

    • 使用检测表快速检测

    • 使用MPHF函数确认发现关键词


4610314

预处理

  • 建立一个基于关键词的保序最小完美散列函数(MPHF)

  • 建立任何一个整数跳跃距离的表

  • 建立一个使用hashFirst函数检测的表


4610314

搜索文本

  • 使用整数表跳跃前进

  • 使用检测表快速检测

  • 使用MPHF函数确认发现关键词


4610314

Text Text Text Text Text Text Text Text Text TextTextTextText x

xtTe

Text

整数散列

整数跳跃表

计算跳跃距离

跳跃


4610314

Text Text Text Text Text Text Text Text Text TextTextTextText x

xtTe

整数散列

整数跳跃表

计算跳跃距离

Text Text Text Text Te

检测表

3张随机表

第一步MPHF

第二步MPHF

1个图

确认匹配关键词


4610314

Table5.1: Runtimes for string searching50 times

Patterns

Length

fgrep

agrep

Huff-Match

100

7

47.0

36.1

34.0

500

7

43.5

31.0

25.0

1000

7

47.1

36.5

33.0

1500

7

51.8

39.8

35.3

2000

7

55.3

43.1

38.4

1000

10

34.3

26.1

24.0

1500

10

37.4

28.7

25.9

2000

10

40.8

31.8

28.4

算法性能


  • Login