中文

ShockHash:迈向暴力搜索之外的最优空间极小完美哈希

数据结构与算法 2023-11-14 v2

摘要

极小完美哈希函数(MPHF)将包含 nn 个键的集合 SS 映射到前 nn 个整数而不发生冲撞。表示 MPHF 所需空间的下界为 nlog2eO(logn)n\log_2e-O(\log n) 比特。通过暴力搜索算法——不断尝试随机哈希函数直至偶然得到一个 MPHF 并存储该函数的种子——可获得与之匹配的上界。期望需测试 enpoly(n)e^n\textrm{poly}(n) 个种子。以往构造 MPHF 最节省空间的算法均以此暴力搜索方法为基本构件。本文中,我们引入 ShockHash——小型、重度过载的布谷鸟哈希表。ShockHash 使用两个哈希函数 h0h_0h1h_1,期望存在函数 f:S{0,1}f : S \rightarrow \{0,1\} 使得 xhf(x)(x)x \mapsto h_{f(x)}(x)SS 上的 MPHF。用图论术语说,ShockHash 生成 nn 条边的随机图,直至偶然得到一个伪森林——每个连通分量中边数等于节点数的图。随后利用布谷鸟哈希,ShockHash 在线性时间内由伪森林导出 MPHF。它使用 1-bit 检索数据结构以 n+o(n)n + o(n) 比特存储 ff。通过仔细分析随机图成为伪森林的概率,我们表明 ShockHash 期望仅需尝试 (e/2)npoly(n)(e/2)^n\textrm{poly}(n) 个哈希函数种子,将存储种子所需空间减少约 nn 比特。这使得 ShockHash 比暴力搜索快近 2n2^n 倍,同时保持渐近最优的空间消耗。在 RecSplit 框架内的实现产生了当前最节省空间的 MPHF,即竞争方法需多约两个数量级的计算量才能达到相同空间。

关键词

引用

@article{arxiv.2308.09561,
  title  = {ShockHash: Towards Optimal-Space Minimal Perfect Hashing Beyond Brute-Force},
  author = {Hans-Peter Lehmann and Peter Sanders and Stefan Walzer},
  journal= {arXiv preprint arXiv:2308.09561},
  year   = {2023}
}