支持常数时间操作的多重集动态字典和计数过滤器
1 引言
在数据结构领域,多重集动态字典问题备受关注。集合字典(忽略元素多重性)是数据结构中的基础问题,已得到深入研究。而对于多重集,元素可以有任意的多重性,并且我们已知任意时刻多重集的总基数(包含多重性)的上限为 n。目标是设计一种数据结构,支持多重性查询(即元素 x 在多重集中出现的次数),并允许对多重集进行插入和删除操作。
相关问题是支持近似成员和多重性查询。近似集合成员查询允许以假阳性的形式出现单侧错误,给定错误参数 ε > 0,对于不在集合中的元素返回“是”的概率至多为 ε,这种数据结构被称为过滤器。对于多重集,相应的数据结构称为计数过滤器(或频谱过滤器)。计数过滤器返回的计数至少是元素在多重集中的多重性,并且以概率 ε 进行过计数。由于其在实际中的应用,计数过滤器多年来受到了广泛关注。多重集字典的一个主要应用是设计动态过滤器和计数过滤器。
存储字典所需空间的下限可通过简单的计数论证得出(即信息论下限)。具体而言,基数为 n 的多重集字典的空间至少为 log $ \binom{u + n}{n} $ = n log(u/n) + Θ(n) 位,其中 u 是全集的大小。对于过滤器,下限至少为 n log(1/ε) + Θ(n) 位。如果数据结构所需的总位数为 (1 + o(1)) · B,其中 B 表示空间下限,且当 n 趋于无穷大时,o(1) 项收敛于零,则该数据结构是简洁的。如果数据结构在空间上达到简洁,且有一个附加的 O(n) 项,则称其为空间高效的。
对于字典和过滤器的设计,关注的性能指标是数据结构占用的空间和执行操作所需的时间。第一个目标是设计出对于多重集字典在高概率下空间高效的数据结构。我
超级会员免费看
订阅专栏 解锁全文
411

被折叠的 条评论
为什么被折叠?



