基于散列表的数据流频繁模式内存压缩存储方法.pdf

上传人:32 文档编号:972906 上传时间:2018-03-22 格式:PDF 页数:7 大小:279.60KB
返回 下载 相关 举报
摘要
申请专利号:

CN200910096813.4

申请日:

2009.03.16

公开号:

CN101499097A

公开日:

2009.08.05

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

浙江工商大学

发明人:

琚春华; 刘东升; 王 冰; 尤 钢

地址:

310018浙江省杭州市下沙高教园区学正街18号

优先权:

专利代理机构:

杭州赛科专利代理事务所

代理人:

陈 辉

PDF下载: PDF下载
内容摘要

本发明公开了一种基于散列表的数据流频繁模式内存压缩存储方法,采用散列函数,强化频繁项逻辑单元与物理存储单元的映射关系;散列函数不进行硬编码,可以动态的创建与替换。研究人员可以根据需要选择或者创建散列函数,应用与本方法,达到性能最优;使用基址+散列偏移的方式对内存进行寻址,复合内存的物理构造,简单而迅速。本方法可以有效的降低建立起数据流频繁模式挖掘算法的数据基础,降低了的空间复杂度以及内存寻址时的空间复杂度,不但提高了内存空间和CPU的有效利用程度,并且减少了挖掘算法需要处理的数据项。

权利要求书

1、  一种基于散列表的数据流频繁模式内存压缩存储方法,其特征在于包括如下步骤:
a、首先建立一个简单的散列函数
A = 5 - 1 ]]>
key=i×37+j×7+17

i,j分别为逻辑频繁2-项集的频繁项序号,N为分配的内存区域可以容纳概要数据结构的最大数量,key为关键字,f(i,j)为散列值,该散列函数与散列表中存储位置建立一一映射的关系;
b、分配一块内存连续区域作为存储区域,当有数据需要存储时,将频繁项抽象成概要数据结构,然后基于概要数据结构的数据特征作为参数,传递给散列函数,生成一个整数I,将生成的整数I作为分配的存储区域内存地址Address的高地址偏移写入内存,以后新到的数据流频繁项写入内存的地址为Address+I×sizeof(x),其中sizeof(x)为内存存储结构单元大小;
c、内存寻址根据公式:内存地址Address+整数I×内存存储结构单元大小sizeof(x)进行。

说明书

基于散列表的数据流频繁模式内存压缩存储方法
技术领域
本发明涉及一种内存压缩存储方法,具体涉及一种基于散列表的数据流频繁模式内存压缩存储方法。
背景技术
频繁模式的挖掘被世界上的数据挖掘工作者公认为是很多数据挖掘工作的基础。近年来静态数据库数据的频繁模式挖掘算法已经日渐成熟,但是随着网络应用的不断发展和普及,数据挖掘工作不断的被要求开展到挖掘数据流上来,比如挖掘网络监控数据中的频繁模式发现网络攻击、挖掘信用卡金融交易数据中的频繁模式发现金融犯罪等等。
目前,成熟的数据库或称静态数据的挖掘算法却无法简单的移植到数据流的挖掘工作当中来。究其原因,是因为数据流数据具有不确定性、连续性以及无限性的特点,在有限的内存内维护无限的频繁模式以及潜在频繁模式就变的十分困难。现有的数据流挖掘算法当中,通常采用线性的数组结构、二维的矩阵结构和多叉树结构作为频繁模式在内存中的储存结构,这样的解决方案分别存在着巨大的缺陷,无法适应实际应用中动态的要求:
(1)内存中频繁项的插入、删除操作具有比较高的时空复杂性:线性结构的插入删除必须大量移动原有元素,保持连续的线性;树形结构插入删除还必须修改父结点与子结点的指针信息,保证树的结构完整。
(2)线性结构和二维线性矩阵的内存空间必须是连续的,如果在下一块连续的地址空间内已经存在了数据,则扩展原有存储区域必须进行原有数据的移动与复制带来巨大的IO操作;对于树型存储结构,扩展还必须重新组织新的内存存储单位——结点,与原有结点之间的先后顺序关系,带来很多的CPU运算。
发明内容
本发明目的是提供一种基于散列表的数据流频繁模式内存压缩存储方法,在增加极少的或者有限的空间复杂度的前提下,降低数据流频繁模式挖掘算法所需的空间复杂度,有效的处理内存中项的插入与删除操作,并实现动态的空间扩展与重组,从而降低频繁模式挖掘算法时需要遍历和查找的次数,提高挖掘算法的时空复杂度。
为实现上述目的,本发明的技术方案是一种基于散列表的数据流频繁模式内存压缩存储方法,包括如下步骤:
a、首先建立一个简单的散列函数
A = 5 - 1 ]]>
key=i×37+j×7+17

i,j分别为逻辑频繁2-项集的频繁项序号,N为分配的内存区域可以容纳概要数据结构的最大数量,key为关键字,f(i,j)为散列值,该散列函数与散列表中存储位置建立一一映射的关系;
b、分配一块内存连续区域作为存储区域,当有数据需要存储时,将数据流频繁项抽象成概要数据结构,然后基于概要数据结构的数据特征作为参数,传递给散列函数,生成一个整数I,将生成的整数I作为分配的存储区域内存地址Address的高地址偏移写入内存,以后新到的数据流频繁项写入内存的地址为Address+I×sizeof(x),其中sizeof(x)为内存存储结构单元大小;
c、内存寻址根据公式:内存地址Address+整数I×内存存储结构单元大小sizeof(x)进行;
本方法可以有效的降低建立起数据流频繁模式挖掘算法的数据基础,降低了的空间复杂度以及内存寻址时的空间复杂度,不但提高了内存空间和CPU的有效利用程度,并且减少了挖掘算法需要处理的数据项。
具体实施方式
下面结合具体实施方式对本发明进行详细说明。
一种基于散列表的数据流频繁模式内存压缩存储方法,包括如下步骤:
a、首先建立一个简单的散列函数
A = 5 - 1 ]]>
key=i×37+j×7+17

i,j分别为逻辑频繁2-项集的频繁项序号,N为分配的内存区域可以容纳概要数据结构的最大数量,key为关键字,f(i,j)为散列值,该散列函数与散列表中存储位置建立一一映射的关系;
b、分配一块内存连续区域作为存储区域,当有数据需要存储时,将频繁项抽象成概要数据结构,然后基于概要数据结构的数据特征作为参数,传递给散列函数,生成一个整数I,将生成的整数I作为分配的存储区域内存地址Address的高地址偏移写入内存,以后新到的数据流频繁项写入内存的地址为Address+I×sizeof(x),其中sizeof(x)为内存存储结构单元大小;
c、内存寻址根据公式:内存地址Address+整数I×内存存储结构单元大小sizeof(x)进行。
实施例
首先建立一个简单的散列函数:
A = 5 - 1 ]]>
key=i×37+j×7+17

这个散列函数使用i,j作为键值,i,j分别为逻辑频繁2-项集的频繁项序号。N为分配的内存区域可以容纳概要数据结构的最大数量,key为关键字,f(i,j)为散列值。该散列函数建立i,j与散列表中存储位置间的一一映射。对于一个长度为128的散列表,I1I2在散列表中的相应存储位置为散列表中的第0个元素。
散列表不可避免的会出现冲突(collision或称碰撞)的情况。对不同的关键字可能得到同一散列值即key1≠key2,而f(key1)=f(key2)。具有相同函数值的关键字对该散列函数来说称为同义词(synonym)。对于冲突的情况做如下处理:如果散列函数发生冲突,也就是说在散列表的对应位置已经存储了一个元素,则查找临近的一个高地址元素是否为空,是则插入,否则继续遍历下个位置,直到找到一个空的存储位置。
散列表具体构造过程如下:
首先扫描数据流,对数据流中的每一个二元组T={Tid,Itemset}(Tid是事务编号,Itemset是项集),假设已经求出T中的所有2-项集及其频繁度,使用散列函数f(i,j)映射到存储位置,加入到散列表中。其中i,j均为项的序号。
表一给出了一个由当前包含9个事务的数据流(表二所示数据流事务集)而生成的散列表,且设此时的桶大小远大于16,则当前bucket id为1。
表1  D-散列表

表二  数据流事务集

基于散列表的数据流频繁模式内存压缩存储方法.pdf_第1页
第1页 / 共7页
基于散列表的数据流频繁模式内存压缩存储方法.pdf_第2页
第2页 / 共7页
基于散列表的数据流频繁模式内存压缩存储方法.pdf_第3页
第3页 / 共7页
点击查看更多>>
资源描述

《基于散列表的数据流频繁模式内存压缩存储方法.pdf》由会员分享,可在线阅读,更多相关《基于散列表的数据流频繁模式内存压缩存储方法.pdf(7页珍藏版)》请在专利查询网上搜索。

本发明公开了一种基于散列表的数据流频繁模式内存压缩存储方法,采用散列函数,强化频繁项逻辑单元与物理存储单元的映射关系;散列函数不进行硬编码,可以动态的创建与替换。研究人员可以根据需要选择或者创建散列函数,应用与本方法,达到性能最优;使用基址+散列偏移的方式对内存进行寻址,复合内存的物理构造,简单而迅速。本方法可以有效的降低建立起数据流频繁模式挖掘算法的数据基础,降低了的空间复杂度以及内存寻址时的空。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1