有损字典:特性、构建与应用
1. 有损字典概述
有损字典具有以下特性:
1. 空间使用 :占用 r(s - b + l) 比特空间,由两个各有 r/2 个单元、每个单元 s - b + l 比特的表组成。
2. 误报率 :误报率 ϵ ≤ (2^b - 1)r / 2^w。
3. 期望权重 :存储集合中键的期望权重为 ∑(i = 1 到 n) pr,i * vi,其中:
- 当 i < r/2 时,pr,i ≥ 1 - 52 * r^(-1) / ((r/2)^i - 1)。
- 当 i ≥ r/2 时,pr,i ≥ 2 * (1 - 2/r)^(i - 1) - (1 - 2/r)^(2 * (i - 1))。
4. 查找操作 :查找操作最多进行两次(独立)表访问。
5. 构建时间 :可在 O(n log*n + rl/w) 时间内构建。
当哈希函数将大致相同数量的元素映射到 {1, …, r/2} 中的每个值时,对于 s = w - log r + O(1) 存在商函数。对于 b = ⌊log(2^w * ϵ / r + 1)⌋,可满足误报率不等式。当 s = w - log r + O(1) 时,使用 r(log(1/ϵ + r/2^w) + l + O(1)) 空间可实现 ϵ 误报率。通过设置 b = 0,可得到无假阳性的有损字典。给定期望的最大空间使用 m 和误报率 ϵ,可高效选择表的最大可能大小 r。