Partial Bloom Filter

转载地址:https://blog.csdn.net/jiaomeng/article/details/1502910

Partial Bloom Filter

在标准的Bloom Filter中,我们用k个相互独立的哈希函数将一个集合映射到长度为m的位数组中,其中每个哈希函数的映射范围都为{0, … , m-1}。除了这种标准的实现方式之外,还有一种实现被广泛采用,就是所谓的Partial Bloom Filter。

Partial Bloom Filter和标准Bloom Filter唯一不同的地方在于哈希函数的映射范围。在Partial Bloom Filter中,位数组被等分成k个区域,每个哈希函数只映射到其中一个区域。也就是说,每个哈希函数映射范围都是{0, … , m/k - 1},但互不重叠,大家各自负责各自的区域。

下面我们来估算一下这种实现的错误率。位数组中某一位只可能被一个哈希函数选中,且选中的概率为k/m,所以这一位不被选中的概率为1 – k/m。假设集合有n个元素,那么这一位在存储完整个集合后还保持为0的概率为(1 – k/m)n。由于(1 – k/m)n ≈ e-kn/m,所以Partial Bloom Filter和标准Bloom Filter的错误率很近似。如果一定要分出个高下,实际上标准Bloom Filter错误率要小一些,因为对于k≥1,有

在实际应用中,Partial Bloom Filter有一定的优势,因为一旦哈希函数的映射范围也独立开来,k个哈希函数就可以并行访问位数组,从而提高程序性能。
 

猜你喜欢

转载自blog.csdn.net/weixin_40805079/article/details/88898413