Bloom Filter 和 Counting Bloom Filter
Bloom-Filter是Bit-map的升级版本,至少从我了解这个算法的顺序上来说。Bloom-Filter原理大致是吧所需插入的元素用k个Hash函数散列到一个以bit为单位的Hash表上。只支持插入和查询,并且有false positive的可能。
Counting-Bloom-Filter又是BF的升级版,增加了几个bit用于计数,并且支持删除功能,同样有false positive的可能。
Variable-Increment Counting Bloom Filter
在2012年的Infocom上有一篇对Counting-Bloom-Filter算法的改进,
The Variable-Increment Counting Bloom Filter
其中的第二种改进算法大致是这样的。
用一个大小为数个bit的count数组替代CBF中的2个数组,count数组中所存的元素以及存放的位置由两组Hash函数确定。
H={
h1,h2,...hn},G={
g1,g2,...gn}
hi(x)∈size of Hash table , gi(x)∈DL ,其中 DL=