Compressed Bloom Filter
焦萌 2007年2月8日
在前面的讨论中,我们都只将Bloom Filter作为一种表示集合的数据结构。但在网络应用中,Bloom Filter经常被当作节点之间交换信息时传递的消息。从这个角度考虑,我们自然希望消息在传递之前能够被压缩。
那么Bloom Filter到底能不能被压缩?在Bloom Filter概念和原理一文中,我们知道当Bloom Filter的错误率最低时,位数组中任意一位是0的概率p = 1/2。也就是说,在错误率最低时位数组中0和1的概率各占一半。根据Claude Shannon 编码原理,位数组将不可能获得任何压缩的效果。
然而事实并不是这样,因为p = 1/2的结论是这样作出的:在已知位数组大小m和集合元素个数n的情况下,我们求出最优的哈希函数个数k