中文

确定性无缓存感知 Funnelselect

数据结构与算法 2024-02-28 v1

摘要

在多选择问题中,给定一个包含 NN 个元素的未排序数组 SS 和一个包含 qq 个查询秩 r1<<rqr_1<\cdots<r_q 的数组,任务是按排序顺序返回 SS 中秩分别为 r1,,rqr_1, \ldots, r_qqq 个元素。该问题的渐近确定性比较复杂度已由 Dobkin 和 Munro [JACM 1981] 解决。在 I/O 模型中,Hu 等人 [SPAA 2014] 实现了最优 I/O 复杂度。最近 [ESA 2023],我们提出了一种具有匹配 I/O 复杂度的无缓存感知算法,名为 funnelselect,因为它大量借鉴了 Frigo, Leiserson, Prokop 和 Ramachandran [FOCS 1999] 开创性论文中的无缓存感知排序算法 funnelsort 的思想。Funnelselect 本质上是随机的,因为它依赖采样来廉价地找到许多好的枢轴。在本文中,我们提出了确定性 funnelselect,在无随机化的情况下以无缓存感知方式实现了相同的最优 I/O 复杂度。我们的新算法本质上用一个(期望意义上的)使用随机枢轴的反向漏斗计算,替换为使用多个反向漏斗计算的递归算法。为了满足 I/O 界限,这需要基于查询秩序列的熵仔细选择子问题规模;因此,确定性 funnelselect 提出了随机 funnelselect 所未遇到的独特技术挑战。 resulting 的最坏情况 I/O 界限为 O(i=1q+1ΔiBlogM/BNΔi+NB)O\bigl(\sum_{i=1}^{q+1} \frac{\Delta_i}{B} \cdot \log_{M/B} \frac{N}{\Delta_i} + \frac{N}{B}\bigr),其中 BB 是外部存储块大小,MB1+ϵM\geq B^{1+\epsilon} 是内部存储大小(对于某个常数 ϵ>0\epsilon>0),且 Δi=riri1\Delta_i = r_{i} - r_{i-1}(假设 r0=0r_0=0rq+1=N+1r_{q+1}=N + 1)。

关键词

引用

@article{arxiv.2402.17631,
  title  = {Deterministic Cache-Oblivious Funnelselect},
  author = {Gerth Stølting Brodal and Sebastian Wild},
  journal= {arXiv preprint arXiv:2402.17631},
  year   = {2024}
}