中文

无哈希函数的哈希表,以及如何充分利用随机比特

数据结构与算法 2022-09-19 v2

摘要

本文考虑一个基本问题:存储 nn(1+Θ(1))logn(1 + \Theta(1)) \log n 比特键值对的哈希表能提供多强的概率保证?以往关于此问题的工作受限于已知哈希函数族的局限性:唯一实现低于 1/2\polylogn1 / 2^{\polylog n} 失败概率的哈希表需要访问完全随机哈希函数——若使用已知显式哈希函数族实现相同哈希表,其失败概率变为 1/\poly(n)1 / \poly(n)。为绕过这些障碍,我们展示如何构造一种具有与哈希表相同保证但\emph{避免直接使用哈希函数}的随机化数据结构。在此基础上,我们能够构造一个使用 O(n)O(n) 随机比特、对任意正常数 ϵ\epsilon 实现失败概率 1/nn1ϵ1 / n^{n^{1 - \epsilon}} 的哈希表。事实上,我们表明该保证甚至可由\emph{简洁字典}实现,即使用不超过信息论最优值 1+o(1)1 + o(1) 倍空间的字典。最后我们还构造了一个简洁哈希表,其概率保证处于另一极端,在仅使用 O~(logn)\tilde{O}(\log n) 随机比特的情况下提供 1/\poly(n)1 / \poly(n) 的失败概率。后一结果(直至低阶项)匹配了 Dietzfelbinger 等人先前实现的保证,但具有更高的空间效率和若干令人惊讶的技术组件。

关键词

引用

@article{arxiv.2209.06038,
  title  = {A Hash Table Without Hash Functions, and How to Get the Most Out of Your Random Bits},
  author = {William Kuszmaul},
  journal= {arXiv preprint arXiv:2209.06038},
  year   = {2022}
}