Perfect 与 Minimal ​
给定静态有限键集
则
与 FKS 完美哈希相比,MPHF 把
四项成本必须分开 ​
一个 MPHF 方案至少要报告:构建时间及失败重试;求值
在常见静态随机化构造中,建表对随机种子取期望线性或近线性时间,成功后每次求值为最坏
MPHF 描述存在约
可追踪词典编号 ​
设
关联值数组可按这三个位置连续存储,查 cat 时先算编号
对非成员 fox,函数仍会返回
Hypergraph Peeling 构造图像 ​
一类实用构造从数个随机哈希函数建立超图:键是超边,候选槽/辅助变量是顶点。若超图可逐步剥离度为一的顶点,就记录剥离栈,再按逆序给辅助数组赋值,使每条键边最终选择唯一编号。
若剩下不可剥离的 core,当前随机种子失败并重试。赋值阶段的局部异或或模运算只是实现手段;正确性不变量是每个键在逆序处理时仍有一个未被占用的自由变量,最终
静态性与更新边界 ​
插入新键会破坏双射:已有
MPHF 也不支持范围查询、前驱或排序;连续编号只是空间定位。若需要保持键序,应使用有序字典或显式 rank 映射,不能把任意哈希编号当作秩。
参考资料
- Michael L. Fredman, János Komlós, and Endre Szemerédi, “Storing a Sparse Table with O(1) Worst Case Access Time,” Journal of the ACM 31(3), 1984.
- Fabiano C. Botelho, Rasmus Pagh, and Nivio Ziviani, “Simple and Space-Efficient Minimal Perfect Hash Functions,” WADS, 2007.
- Torben Hagerup and Torsten Tholey, “Efficient Minimal Perfect Hashing in Nearly Minimal Space,” STACS, 2001.