ShockHash:朝着超越暴力破解的最优空间最小完美散列
摘要:最小完美哈希函数 (MPHF) 将一个包含 n 个键的集合 S 映射到没有冲突的前 n 个整数。表示 MPHF 所需的最小空间下界为 nlog₂e - O(log n) 位。使用暴力算法,可以通过尝试随机哈希函数直到找到一个 MPHF 并存储该函数的种子来获得匹配的上界。在期望中需要测试 eⁿpoly(n) 个种子。目前最有效的构建 MPHFs 的算法都使用暴力方法作为基本构建块。 在本文中,我们介绍了 ShockHash - 小巧、高度超载的杜鹃哈希表。ShockHash 使用两个哈希函数 h₀ 和 h₁,希望存在一个函数 f:S → {0,1},使得 x 映射到 h_{f(x)}(x) 是 S 上的 MPHF。在图论中,ShockHash 通过生成 n 边随机图直到碰巧遇到一个伪森林(一个每个组件包含与节点数相同数量的边的图)来生成 MPHF。使用杜鹃哈希,ShockHash 可以在线性时间内从伪森林中导出 MPHF。它使用一个 1-bit 检索数据结构来使用 n + o(n) 位存储 f。 通过仔细分析随机图成为伪森林的概率,我们证明 ShockHash 期望中只需尝试 (e/2)ⁿpoly(n) 个哈希函数种子,从而将存储种子的空间减少大约 n 位。这使得 ShockHash 比暴力算法快了几乎 2ⁿ 倍,同时保持渐近最优的空间消耗。在 RecSplit 框架内的实现得到了当前最有效的 MPHFs,即竞争方法需要更多的工作量才能达到相同的空间。
作者:Hans-Peter Lehmann, Peter Sanders, Stefan Walzer
论文ID:2308.09561
分类:Data Structures and Algorithms
分类简称:cs.DS
提交时间:2023-08-21