一种基于dtbf的rfid冗余数据清洗方法及系统的制作方法

文档序号:10577319阅读:593来源:国知局
一种基于dtbf的rfid冗余数据清洗方法及系统的制作方法
【专利摘要】本发明公开了一种基于DTBF的RFID冗余数据清洗方法。首先初始化DTBF;读取新数据x,计算元素x的k个哈希地址:如果向量BFi的k个哈希位置的时间值Tag.time全都不为0,当新元素的TID等于向量BFi的k个哈希位置的TID时,求取新元素x与向量BFr中k个哈希位置的时间域Tag.time中的时间差X,判断时间差X是否大于时间窗口ω,如果否,则表示新元素x为非冗余数据,并存储数据;如果是,则新元素x为冗余数据,直接丢弃数据。本发明提供的方法集成了Dynamic Bloom Filter能够处理动态数据集合的特性及Time Bloom Filter能够利用时间信息进行冗余判断的特点,该方法可动态调整DTBF包含的向量数,并且DTBF每个向量均为一个Time Bloom Filter,可以利用时间信息进行数据冗余的判断。
【专利说明】
一种基于DTBF的RF ID冗余数据清洗方法及系统
技术领域
[0001]本发明涉及RFID冗余数据清洗领域,特别是一种基于DTBF的冗余数据清洗方法及 系统。
【背景技术】
[0002] RFID技术被认为是企业仓储管理和供应链管理中的重要技术,最近几年在仓库的 信息化管理中得到了广泛的应用,明显提高了企业仓储管理的信息化水平。由于RFID的非 接触性,只要在检测范围内,无论是否需要,标签都会被检测到。当带有RFID移动天线阵列 的巡检车在仓库中以极慢的速度对货包标签进行巡检的过程中,会产生大量不必要的数据 (冗余数据)。另一方面,为了防止在巡检过程中漏读标签数据,在巡检车上会布置两个或多 个阅读器。当多个阅读器同时检测到同一标签时,也会产生冗余数据。因此在实际仓库扫描 盘点定位过程中无法避免冗余数据的产生。
[0003] 由于RFID数据本身具有流特性、动态性以及关联性等特点,所以RFID冗余数据的 清除面临两个主要问题:首先RFID数据以流的形式快速、自动的产生,对于已经"流过"的数 据无法再次访问,即使设法对数据进行存储,数据访问的代价也是巨大的,这就要求算法能 够高效快速的处理RFID冗余数据。其次,RFID数据流是一种动态数据集,即事先无法知道数 据量的大小,并且处理时不可能在内存中长时间保存所有的历史数据,所以也对算法的处 理空间和时间提出了更高的要求。
[0004] Bloom Filter以有限的内存进行快速、高效的查找,目前在冗余数据的清洗领域 得到了广泛的关注,但是当数据流持续产生、长期运行时,Bloom Filter所有入口均为1,这 时Bloom Fi Iter的错误率将会急剧上升,随之失效。如果根据数据集动态调整Bloom Filter的大小,那么过滤器容错率P等所有相关参数都要重新计算,会浪费过滤器大量计算 时间,这样一来Bloom Filter高效快速的特点将不复存在。
[0005] Dynamic Bloom Filter虽然可以用来处理动态增长的RFI数据集,但是Dynamic Bloom Filter内部由位数组构成,对于某些想依靠时间戳判断标签数据是否冗余的情形, 过滤器此时必须要用整数数组代替位数组存储标签数据的时间戳数据,而Dynamic Bloom Filter并不具备这样的条件,所以利用Dynamic Bloom Filter进行时间冗余判断并不可 行。
[0006] 因此急需一种既能够根据时间信息进行冗余判断,又能保证快速性、精确性的 RFID冗余数据清除方法。

【发明内容】

[0007] 有鉴于此,为了解决上述问题,本发明提供一种既能利用时间信息过滤RFID冗余 数据,又能处理动态RFID数据集的过滤方法,将时间布隆过滤器和动态布隆过滤器进行融 合的新冗余数据过滤方法,用于RFID的数据虑重。
[0008] 本发明的目的是这样实现的:
[0009]本发明提供的基于DTBF的RFID冗余数据清洗方法,包括以下几个步骤:
[0010] 步骤1:初始化DTBF;
[0011]步骤2:读取新数据,计算新数据中的新元素 X的k的哈希地址;
[0012 ] 步骤3:设置向量BFi (l<i彡r),并逐个检查每个向量BFi (I < i彡r)中新元素 X对应 的k个哈希地址是否都为0;
[0013] 如果向量BFi(l$i彡r)中k个哈希位置不全都为0,则进入到步骤4;
[0014] 如果向量BFi的k个哈希位置的时间域Tag. time位全都不为0,则判断新元素的TID 是否等于向量BFj^k个哈希位置的TID,如果等于,则进入到步骤5;如果不等于,则表示发 生误判,输出报警信息;
[0015] 步骤4:检查向量BFr的是否达到存储容限,如果达到,则设置新向量BF r,并进行初 始化向量BFr,将新元素 X插入新向量BFr中;
[0016] 步骤5:求取新元素 X与向量BFr中k个哈希位置的时间域Tag. time中的时间差X,判 断时间差X是否大于时间窗口 ω,如果否,则表示新元素 X为非冗余数据,并存储数据;
[0017] 步骤6:如果是,则新元素 X为冗余数据,直接丢弃数据。
[0018] 进一步,所述步骤1中的初始化DTBF,具体步骤如下:
[0019] 设定时间窗口大小ω;
[0020] 设置DTBF向量数r和向量存储容限;
[0021] 有过滤器性质求出最优哈希函数个数k以及向量长度m;
[0022] 初始化DTBF的第一个向量BFr = {η,m,k};
[0023]其中,η为向量中元素的个数,m为向量的长度,哈希函数个数为k,将BFr向量的每 一位存储位置置为〇, ω为时间窗口大小。
[0024]进一步,所述步骤4中初始化向量BFr,具体步骤如下:
[0025] 设定过滤器误判率p以及时间窗口大小ω ;
[0026] 确定过滤器最大误判率ρ和向量存储容限;
[0027] 有过滤器性质求出最优哈希函数个数k以及向量长度m;
[0028]初始化第一个向量BFr= {n,m,k};
[0029] 其中,η为向量中元素的个数,m为向量的长度,哈希函数个数为k,将BFr向量的每 一位存储位置置为〇, ω为时间窗口大小。
[0030] 进一步,所述过滤器的哈希函数个数k和向量长度m满足以下公式:
[0031 ] ^ = -M2 〇: η
[0032]进一步,所述步骤4中检查向量BFr的是否达到存储容限:是通过以下方式来实现 的:
[0033] 检查向量BFr的Tag. time位0位占有率是否达到预设值,如果达到,则表示达到存 储容限。
[0034]本发明还提供了一种基于DTBF的RFID冗余数据清洗系统,包括初始模块、数据读 取模块、哈希地址零位计算模块、误判输出报警信息模块、存储容限判断模块、初始化向量 BFr模块、冗余数据判断模块和存储模块;
[0035]所述初始模块,用于初始化DTBF;
[0036]所述数据读取模块,用于读取新数据并计算新数据中的新元素 x的k的哈希地址; [0037] 所述哈希地址零位计算模块,用于计算每个向量BFi( Ki彡r)中新元素 X对应的k 个哈希地址;并输出向量BFi的k个哈希位置的时间域Tag. time位全都不为0的哈希地址;
[0038] 所述误判输出报警信息模块,用于输出当新元素的TID不等于向量BFj^k个哈希 位置的TID时的报警信息;
[0039] 所述存储容限判断模块,用于检查向量BFr的是否达到存储容限;
[0040] 初始化向量BFr模块,用于当向量BFr达到存储容限时设置新向量BFr并将新元素 X 插入新向量BFr中;
[0041] 所述冗余数据判断模块,用于计算新元素 X与向量BFr中k个哈希位置的时间域 Tag.time中的时间差X,判断时间差X是否大于时间窗口 ω ;
[0042] 所述存储模块,用于存储非冗余数据。
[0043]进一步,所述初始模块中的初始化DTBF,具体步骤如下:
[0044] 设定时间窗口大小ω ;
[0045] 设置DTBF向量数r和向量存储容限;
[0046] 有过滤器性质求出最优哈希函数个数k以及向量长度m;
[0047] 初始化DTBF的第一个向量BFr= {n,m,k};
[0048] 其中,η为向量中元素的个数,m为向量的长度,哈希函数个数为k,将BFr向量的每 一位存储位置置为〇, ω为时间窗口大小。
[0049] 进一步,所述初始化向量BFr模块中初始化向量BFr,具体步骤如下:
[0050] 设定过滤器误判率p以及时间窗口大小ω ;
[0051 ]确定过滤器最大误判率ρ和向量存储容限;
[0052]有过滤器性质求出最优哈希函数个数k以及向量长度m;
[0053]初始化第一个向量BFr= {n,m,k};
[0054] 其中,η为向量中元素的个数,m为向量的长度,哈希函数个数为k,将BFr向量的每 一位存储位置置为〇, ω为时间窗口大小。
[0055] 进一步,所述哈希函数个数k和向量长度m满足以下公式: jfl
[0056] k = - In 2 ο η
[0057] 进一步,所述存储容限判断模块中计算检查向量BFr的是否达到存储容限:是通过 以下方式来实现的:
[0058] 检查向量BFr的Tag. time位0位占有率是否达到预设值,如果达到,则表示达到存 储容限。
[0059]本发明提供的基于动态时间布隆过滤器的RFID冗余数据清洗方法,所述的动态时 间布隆过滤器包括时间布隆过滤器和动态布隆过滤器;时间布隆过滤器利用RFID扫描数据 的时间信息与课题定义的时间窗口大小进行比较,即根据前后两次RFID扫描数据的时间差 与定义的时间窗口大小,对后续到达的RFID扫描数据进行冗余判断。动态布隆过滤器根据 RFID扫描数据集的大小对时间布隆过滤器向量进行动态数量的调整,从而使得过滤器整体 误判率降到最低。
[0060]由于采用了上述技术方案,本发明具有如下的优点:
[0061]课题采用的动态时间布隆过滤器集成了时间布隆过滤器与动态布隆过滤器的优 点。当有RFID数据输入时,首先根据时间布隆过滤器的工作原理,利用RFID扫描数据的时间 戳信息进行数据的冗余判断;接着当外部元数据量达到过滤器存储容限时,开辟新的时间 布隆过滤器对外部元数据进行存储,从而在完成对数据进行快速冗余判断的同时有效的降 低过滤器的误判率。
[0062] 本发明提供的基于DTBF的RFID数据冗余清洗方法集成了Dynamic Bloom Filter, 该方法能够处理动态数据集合的特性以及Time Bloom FiIter能够利用时间信息进行冗余 判断的特点,为RFID数据冗余清洗提供了一个新的思路。该方法可以动态调整DTBF包含的 向量数,并且DTBF每个向量均为一个Time Bloom FiIter,可以利用时间信息进行数据冗余 的判断。
[0063]本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并 且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可 以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书和权利要 求书来实现和获得。
【附图说明】
[0064]本发明的【附图说明】如下。
[0065]图1为本实施例提供的DTBF结构图。
[0066]图2a为本实施例提供的〈TID!,2>实例过程示意图。
[0067]图2b为本实施例提供的CTID1,4>实例过程示意图。
[0068]图2c为本实施例提供的CTID2,4>实例过程示意图。
[0069]图2d为本实施例提供的CTID1,16>实例过程示意图。
[0070]图2e为本实施例提供的CTID2,12>实例过程示意图。
[0071]图3为本实施例提供的DTBF初始化流程图。
[0072] 图4为本实施例提供的BFr初始化流程图。
[0073] 图5为本实施例提供的整体去冗余算法流程图。
[0074]图6为本实施例提供的基于DTBF的RFID冗余数据清洗系统原理图
【具体实施方式】
[0075]下面结合附图和实施例对本发明作进一步说明。
[0076] 实施例1
[0077]如图所示,本实施例提供的一种基于DTBF的RFID冗余数据清洗方法,包括以下几 个步骤:
[0078] 步骤1:初始化DTBF;
[0079 ]步骤2:读取新数据,计算新数据中的新元素 X的k的哈希地址;
[0080] 步骤3:设置向量BFi (Ki彡r),并逐个检查每个向量BFi (1彡i彡r)中新元素 X对应 的k个哈希地址是否都为0;
[0081 ] 如果向量BFi( 1彡i彡r)中k个哈希位置不全都为0,则进入到步骤4;
[0082] 如果向量BFi的k个哈希位置的时间域Tag. time位全都不为0,则判断新元素的TID 是否等于向量BFj^k个哈希位置的TID,如果等于,则进入到步骤5;如果不等于,则表示发 生误判,输出报警信息;
[0083] 步骤4:检查向量BFr的是否达到存储容限,如果达到,则设置新向量BF r,并进行初 始化向量BFr,将新元素 X插入新向量BFr中;
[0084] 步骤5:求取新元素 X与向量BFr中k个哈希位置的时间域Tag. time中的时间差X,判 断时间差X是否大于时间窗口 ω,如果否,则表示新元素 X为非冗余数据,并存储数据;
[0085] 步骤6:如果是,则新元素 X为冗余数据,直接丢弃数据。
[0086]所述步骤1中的初始化DTBF,具体步骤如下:
[0087] 设定时间窗口大小ω;
[0088] 设置DTBF向量数r和向量存储容限;
[0089] 有过滤器性质求出最优哈希函数个数k以及向量长度m;
[0090] 初始化DTBF的第一个向量BFr= {n,m,k};
[0091] 其中,η为向量中所能容纳的最多元素个数,m为向量的长度,哈希函数个数为k,将 BFr向量的每一位存储位置置为0, ω为时间窗口大小。
[0092] 所述步骤4中初始化向量BFr,具体步骤如下:
[0093] 设定过滤器误判率ρ以及时间窗口大小ω ;
[0094] 确定过滤器最大误判率ρ和向量存储容限;
[0095] 有过滤器性质求出最优哈希函数个数k以及向量长度m;
[0096]初始化第一个向量BFr= {n,m,k};
[0097] 其中,η为向量中元素的个数,m为向量的长度,哈希函数个数为k,将BFr向量的每 一位存储位置置为〇, ω为时间窗口大小。
[0098] 所述过滤器的哈希函数个数k和向量长度m满足以下公式: .-J Tft. - ^
[0099] k'二-In 2 〇 η
[0100] 所述步骤4中检查向量BFr的是否达到存储容限:是通过以下方式来实现的:
[0101] 检查向量BFr的Tag. time位0位占有率是否达到预设值,本实施例的预设值为预设 值40-60%,也可以设置为50%,如果达到,则表示达到存储容限。
[0102] 本实施例提供来一种基于DTBF的RFID冗余数据清洗系统,包括初始模块、数据读 取模块、哈希地址零位计算模块、误判输出报警信息模块、存储容限判断模块、初始化向量 BFr模块、冗余数据判断模块和存储模块;
[0103] 所述初始模块,用于初始化DTBF;
[0104] 所述数据读取模块,用于读取新数据并计算新数据中的新元素 X的k的哈希地址;
[0105] 所述哈希地址零位计算模块,用于计算每个向量BFi( Ki彡r)中新元素 X对应的k 个哈希地址;并输出向量BFi的k个哈希位置的时间域Tag. time位全都不为0的哈希地址;
[0106] 所述误判输出报警信息模块,用于输出当新元素的TID不等于向量BFj^k个哈希 位置的TID时的报警信息;
[0107] 所述存储容限判断模块,用于检查向量BFr的是否达到存储容限;
[0108] 初始化向量BFr模块,用于当向量BFr达到存储容限时设置新向量BFr并将新元素 X 插入新向量BFr中;
[0109] 所述冗余数据判断模块,用于计算新元素 x与向量BFr中k个哈希位置的时间域 Tag.time中的时间差X,判断时间差X是否大于时间窗口 ω ;
[0110] 所述存储模块,用于存储非冗余数据。
[0111] 所述初始模块中的初始化DTBF,具体步骤如下:
[0112] 设定时间窗口大小ω;
[0113] 设置DTBF向量数r和向量存储容限;
[0114] 有过滤器性质求出最优哈希函数个数k以及向量长度m;
[0115] 初始化DTBF的第一个向量BFr= {n,m,k};
[0116] 其中,η为向量中元素的个数,m为向量的长度,哈希函数个数为k,将BFr向量的每 一位存储位置置为〇, ω为时间窗口大小。
[0117] 所述初始化向量BFr模块中初始化向量BFr,具体步骤如下:
[0118] 设定过滤器误判率p以及时间窗口大小ω ;
[0119] 确定过滤器最大误判率ρ和向量存储容限;
[0120] 有过滤器性质求出最优哈希函数个数k以及向量长度m;
[0121]初始化第一个向量BFr= {n,m,k};
[0122] 其中,η为向量中元素所能容纳的最多元素个数,m为向量的长度,哈希函数个数为 k,将BFr向量的每一位存储位置置为0, ω为时间窗口大小。
[0123] 所述哈希函数个数k和向量长度m满足以下公式: , m..
[0124] k =-m2. 〇 H
[0125] 所述存储容限判断模块中计算检查向量BFr的是否达到存储容限:是通过以下方 式来实现的:
[0126] 检查向量BFr的Tag. time位0位占有率是否达到预设值,本实施例的预设值为预设 值40-60%,也可以设置为50%,,如果达到,则表示达到存储容限。
[0127] 实施例2
[0128] 本实施例提供的基于DTBF的RFID数据冗余清洗方法集成了Dynamic Bloom Filter,该方法能够处理动态数据集合的特性以及Time Bloom Fi I ter能够利用时间信息 进行冗余判断的特点,为RFID数据冗余清洗提供了一个新的思路。
[0129] DTBF是将Time Bloom Filter的m位(TID,Tag.time)向量扩展成rXm位的矩阵(r 多I),r初始值设为1。当插入的元素数量达到向量存储容限时就将r加1,然后向过滤器下一 个向量插入元素,过滤器每个向量能够容纳的元素数量是相同的。当RFID新数据到达时,求 取新元素与向量中k个哈希位置的Tag. t ime时间差d,通过比较时间差d与时间窗口 ω的大 小,对该数据进行冗余判断。针对动态RFID数据集以及利用时间信息进行冗余判断的情况, 该方法可以动态调整DTBF包含的向量数,并且DTBF每个向量均为一个Time Bloom Filter, 可以利用时间信息进行数据冗余的判断。DTBF的结构如图1所示,本方法具体包括以下几个 步骤:
[0130] 步骤1:初始化DTBF,对过滤器误判率ρ以及时间窗口大小ω进行设定。设置DTBF向 量数r = l,初始化DTBF的第一个向量BFr= {n,m,k}。
[0131]其中,η为向量中所能容纳的最多元素元素个数,m为向量的长度,哈希函数个数为 k,将BFr向量的每一位存储位置置为O,ω为时间窗口大小。
[0132] 步骤2:读取新元素 X,计算元素 X的k的哈希地址,即hi(x),h2(x)…hk(x);
[0133] 步骤3:逐个检查每个向量彡r)中该元素对应的k个哈希地址是否都为0。 该步骤又分为如下两个部分:
[0134] 1、若在任何向量中k个哈希位置都有某些位置为0,元素必不在集合中,此此时执 行步骤4;
[0135] 2、若其中有一个BFi相应的k个哈希位置的Tag. time位全都不为0,该步骤又分为 如下两种情况:
[0136] 1、新元素 TID不等于此向量k个哈希位置的TID,过滤器发生误判,对此元素的过滤 过程结束。
[0137] 2、新元素 TID等于此向量k个哈希位置的TID,证明该条数据已存在,此时执行步骤 5;
[0138] 步骤4:检查DTBF最新向量BFr的Tag. time位0位占有率是否达到50%,如果达到,r = r+l,开辟新的向量空间BFr,并进行初始化,新元素插入新向量空间中。
[0139] 步骤5:求取新元素与向量BFr中k个哈希位置的Tag. time时间差d,通过比较d与时 间窗口 ω的大小,对该数据进行冗余判断。
[0140]步骤6:对非冗余数据进行存储。
[0141] 实施例3
[0142] 本实施例提供的RFID冗余数据清除方法,包括以下步骤:
[0143] 步骤1:初始化DTBF,并对误判率ρ以及时间窗口大小ω进行设定。设置DTBF向量数 r = l,初始化DTBF的第一个向量BFr= {n,m,k},其中ρ、η、ω均为根据具体应用设定的固定 值。P表示根据应用设置的过滤器的最大误判率;η表示每个向量BFjg够处理的最多标签个 数;ω为进行冗余判断的时间窗口的大小。
[0144] 下面详述向量长度m、哈希函数个数k的提取方法:
[0145] 由于布隆过滤器使用哈希函数来对数据进行分散,所以必然会存在哈希碰撞等问 题,在判断一个元素是否属于Bloom Filter时,必然会出现一定的错误率,现就来估计其大 小:
[0146] 当集合S={Sl,s2,......Sn}中所有元素都被k个哈希函数映射到具有m位的位数 组时,某一位为0的概率(假设kn<m且各个哈希函数值完全随机且均匀分布);
[0147]
[0148] 其中i表示布隆过滤器中任意一位被哈希函数选中的概率,1 -1表示哈希函数映 m m 射之后该位未被选中的概率。
[0149] 要将集合中的全部元素映射到位数组中,需要做kn次哈希。如果映射完成后在位 数组中仍然存有为〇的单元,那么意味着kn次哈希都没有映射到该单元,概率为:
[0150]
[0151] 由推导公式知:
[0152]
[0153]
[0154]
[0155] 由上述各个公式可知,P表示kn次哈希后位数组中某一位仍然为0的概率,I-P表示 kn次哈希后某一位为1的概率。则布隆过滤器将一个不属于集合的元素判断为属于集合的 概率为:
[0156]
[0157] 由式5可知影响布隆过滤器性能的因素主要有哈希函数个数k以及位数组的大小 m,下面将通过式5进行推导,得出最优哈希函数的个数以及最优位组数。
[0158] 由式5得:
[0159
[0160] 令:g = kln(l_P),则f = eg,由此可以看出要想使得f最小则要求g最小。[0161] 由于:
[0162:
[0163:
[0164:
[0165:
[0166:
[0167:
[0168:
1 m
[0169] ^ 得到P =;,此时& = 一 & 2,所以最优哈希函数个数为: 2 η
[0175] 步骤2:对于读取到的新元素 X,选取经典哈希函数,计算元素 X的k个哈希地址,即
[0170]
[0171]
[0172]
[0173]
[0174] 匕⑴如⑴…匕⑴对于哈希函数的选取,根据实际情形,由应用者自行选择。
[0176] 步骤3:检查DTBF每个向量利丨fi名 >所对应的上述k个哈希地址即IuUhh2 (x)~hk(x)某一个地址处的Tag. time值是否为0,若在任何向量中k个哈希位置都有某些位 置为0,元素必不在过滤器中,此时执行步骤4;
[0177] 若其中有一个BFi相应的k个哈希位置的Tag. time位全都不为0,该步骤又必须分 为如下两种情况进行讨论:
[0178] 1、新元素 TID不等于此向量k个哈希位置的TID,此时系统发生误判,过滤器结束过 滤过程;
[0179] 2、新元素 TID等于此向量k个哈希位置的TID,证明该条数据已存在,执行步骤5;
[0180] 步骤4:检查DTBF向量BFr的Tag. time位0位占有率是否达到50%,即判断插入元素 的数据量是否达到向量的存储容限。如果达到,r = r+Ι,开辟新的向量空间BFr,并对向量进 行初始化,新到达元素插入新向量空间中。
[0181] 假设,哈希函数服从均匀分布,则1个元素进入之后,当第1 + 1个元素进入时,布隆 过滤器向量BFr中任意一位为0的概率为:
[0182]
[0183]
[0184]
[0185] 所以当布隆过滤器的哈希函数个数k和向量长度m确定的前提下,为了使得误判率 m 最低,向量中表示的集合元素个数n,在满足公式A= - In 2时,此时向量中为0的位数约为总 η 位数的50%。因此可以根据向量中0位的占有率判断向量是否已经达到存储容限。
[0186]步骤5:由数据冗余性判别定义可知即使存在TID相同的RFID数据,根据Tag. time, RFID数据也不一定是冗余数据,因此我们求取新元素与向量BFr中k个哈希位置的Tag. time 时间差d,通过比较d与时间窗口 ω的大小,对该数据进行冗余判断。
[0187] 下面用一个实例详细说明RFID数据流在向量BFi中的实现过程。其中包含标签1^和 丁2的观测数据。依次达到过滤器的数据流为: TID2,12>,滑动窗口大小ω = 10;如图2a_e所不,为本实施例提供的算法实例实现过程不意 图。
[0188] (1)开始运行时,CHD1,2>首先达到过滤器,哈希到第0、2和5号存储单元。由于是 新到达数据,利用观测数据值更新这三个单元的标签ID域以及时间域,即TID=1,Tag. time =2,如图2(a)所示;
[0189] (2)当CTID1,4>到来时,由于与上述数据的标签ID相同,则哈希到过滤器中的相同 位置,此时由于4_2<ω,因此,该数据为非冗余数据,则用该数据更新过滤器,并对该非冗 余数据进行保存,如图2 (b)所示;
[0190] (3)当<TID2,4>到来时,哈希到第1、4和6号存储位置,更新过滤器,如图2(c)所示; (4)当〈TID!,16>到来时,由于标签所对应单元的ID域数据与数据的ID相同,而且16-4彡ω, 则该数据为冗余数据,直接舍弃,如图2 (d)所示;
[0191] (5)当<TID2,12>到来时,同理,更新T2对应的存储单元,如图2 (e)所示。
[0192] 最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较 佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技 术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明 的权利要求范围当中。
【主权项】
1. 一种基于DTBF的RFID冗余数据清洗方法,其特征在于:包括w下步骤: 步骤1:初始化DTBF; 步骤2:读取新数据,计算新数据中的新元素 X的k的哈希地址; 步骤3:设置向量BFi(l《i《;r),并逐个检查每个向量BFi(l《i《;r)中新元素 X对应的k 个哈希地址是否都为0; 如果向量邸1 (1《i《r)中k个哈希位置不全都为0,则进入到步骤4; 如果向量BFi的k个哈希位置的时间域化g. time位全都不为0,则判断新元素的TID是否 等于向量BFi的k个哈希位置的TID,如果等于,则进入到步骤5;如果不等于,则表示发生误 判,输出报警信息; 步骤4:检查向量BFr的是否达到存储容限,如果达到,则设置新向量BFr,并进行初始化 向量BFr,将新元素 X插入新向量BFr中; 步骤5:求取新元素 X与向量BFr中k个哈希位置的时间域化g. t ime中的时间差X,判断时 间差X是否大于时间窗口 ω,如果否,则表示新元素 X为非冗余数据,并存储数据; 步骤6:如果是,则新元素 X为冗余数据,直接丢弃数据。2. 如权利要求1所述的基于DTBF的RFID冗余数据清洗方法,其特征在于:所述步骤1中 的初始化DTBF,具体步骤如下: 设定时间窗口大小ω; 设置DTBF向量BFr所容许的误判率Ρ和向量存储容限η; 有过滤器性质求出最优哈希函数个数kW及向量长度m; 初始化DTBF的第一个向量邸r = {η,m,k}; 其中,η为向量中所能容纳的最多元素个数,m为向量的长度,哈希函数个数为k,将BFr向 量的每一位存储位置置为0,ω为时间窗口大小。3. 如权利要求1所述的基于DTBF的RFID冗余数据清洗方法,其特征在于:所述步骤4中 初始化向量BFr,具体步骤如下: 设定过滤器误判率pW及时间窗口大小ω ; 确定过滤器最大误判率Ρ和向量存储容限η; 有过滤器性质求出最优哈希函数个数kW及向量长度m; 初始化第一个向量BFr={n,m,k}; 其中,η为向量中元素的个数,m为向量的长度,哈希函数个数为k,将BFr向量的每一位存 储位置置为0, ω为时间窗口大小。4. 如权利要求2所述的基于DTBF的RFID冗余数据清洗方法,其特征在于:所述过滤器的 哈希函数个数k和向量长度m满足W下公式:5. 如权利要求1所述的基于DTBF的RFID冗余数据清洗方法,其特征在于:所述步骤4中 检查向量BFr的是否达到存储容限:是通过W下方式来实现的: 检查向量BFr的Tag. time位0位占有率是否达到预设值,如果达到,则表示达到存储容 限。6. -种基于DTBF的RFID冗余数据清洗系统,其特征在于:包括初始模块、数据读取模 块、哈希地址零位计算模块、误判输出报警信息模块、存储容限判断模块、初始化向量BFr模 块、冗余数据判断模块和存储模块; 所述初始模块,用于初始化DTBF; 所述数据读取模块,用于读取新数据并计算新数据中的新元素 X的k的哈希地址; 所述哈希地址零位计算模块,用于计算每个向量BFi(l《i《;r)中新元素 X对应的k个哈 希地址;并输出向量BFi的k个哈希位置的时间域化g. time位全都不为0的哈希地址; 所述误判输出报警信息模块,用于输出当新元素的TID不等于向量BFi的k个哈希位置的 TID时的报警信息; 所述存储容限判断模块,用于检查向量BFr的是否达到存储容限; 初始化向量BFr模块,用于当向量BFr达到存储容限时设置新向量BFr并将新元素 X插入 新向量BFr中; 所述冗余数据判断模块,用于计算新元素 X与向量BFr中k个哈希位置的时间域化g. time 中的时间差X,判断时间差X是否大于时间窗口 ω ; 所述存储模块,用于存储非冗余数据。7. 如权利要求6所述的基于DTBF的RFID冗余数据清洗系统,其特征在于:所述初始模块 中的初始化DTBF,具体步骤如下: 设定时间窗口大小ω; 设置DTBF向量数r和向量存储容限η; 有过滤器性质求出最优哈希函数个数kW及向量长度m; 初始化DTBF的第一个向量邸r = {η,m,k}; 其中,η为向量中所能容纳的最多元素个数,m为向量的长度,哈希函数个数为k,将BFr向 量的每一位存储位置置为0,ω为时间窗口大小。8. 如权利要求6所述的基于DTBF的RFID冗余数据清洗系统,其特征在于:所述初始化向 量BFr模块中初始化向量BFr,具体步骤如下: 设定过滤器误判率pW及时间窗口大小ω ; 确定过滤器最大误判率Ρ和向量存储容限; 有过滤器性质求出最优哈希函数个数kW及向量长度m; 初始化第一个向量BFr={n,m,k}; 其中,η为向量中元素的个数,m为向量的长度,哈希函数个数为k,将BFr向量的每一位存 储位置置为0, ω为时间窗口大小。9. 如权利要求7所述的基于DTBF的RFID冗余数据清洗系统,其特征在于:所述哈希函数 个数k和向量长度m满足W下公式:10. 如权利要求6所述的基于DTBF的RFID冗余数据清洗系统,其特征在于:所述存储容 限判断模块中计算检查向量BFr的是否达到存储容限:是通过W下方式来实现的: 检查向量BFr的Tag. time位0位占有率是否达到预设值,如果达到,则表示达到存储容 限。
【文档编号】G06F17/30GK105938480SQ201610212717
【公开日】2016年9月14日
【申请日】2016年4月7日
【发明人】孙棣华, 刘卫宁, 赵敏, 郑林江, 王东方
【申请人】重庆大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1