中文

比暴力枚举更快地计算广义卷积

数据结构与算法 2023-01-31 v2

摘要

本文考虑卷积的一般概念。设 DD 为有限域,DnD^nDDnn 长向量(元组)集合。设 f:D×DDf : D \times D \to D 为一函数,f\oplus_fff 的逐坐标应用。两个函数 g,h:Dn{M,,M}g,h : D^n \to \{-M,\ldots,M\}ff-卷积定义为 (gfh)(v):=vg,vhDns.t. vgfvhg(vg)h(vh)(g \otimes_f h)(\textbf{v}) := \sum_{\substack{\textbf{v}_g,\textbf{v}_h \in D^n\\ \text{s.t. } \textbf{v}_g \oplus_f \textbf{v}_h}} g(\textbf{v}_g) \cdot h(\textbf{v}_h) 对每个 vDn\textbf{v} \in D^n 成立。该问题推广了诸多基本卷积,如子集卷积、XOR 乘积、覆盖乘积或包装乘积等。对任意函数 ff 与域 DD,我们可通过暴力枚举在 O~(D2npolylog(M))\widetilde{O}(|D|^{2n}\mathrm{polylog}(M)) 时间内计算 ff-卷积。我们的主要结果是对该朴素算法的改进。我们证明当 DD 的基数为偶数时,ff-卷积可在 O~((cD2)npolylog(M))\widetilde{O}((c \cdot |D|^2)^{n}\mathrm{polylog}(M)) 时间内精确计算,其中常数 c:=3/4c := 3/4。我们的主要观察是,函数 f:D×DDf : D \times D \to D 的\emph{循环划分}可用于加速 ff-卷积的计算,并证明对每个 ff 均存在适当的循环划分。此外,我们展示单点 ff-卷积可更高效计算。在此变体中,给定两个函数 g,h:Dn{M,,M}g,h : D^n \to \{-M,\ldots,M\} 及向量 vDn\textbf{v} \in D^nff-查询问题的任务是计算整数 (gfh)(v)(g \otimes_f h)(\textbf{v})。这是著名的正交向量问题的推广。我们证明 ff-查询可在 O~(Dω2npolylog(M))\widetilde{O}(|D|^{\frac{\omega}{2} n}\mathrm{polylog}(M)) 时间内计算,其中 ω[2,2.372)\omega \in [2,2.372) 为当前最快矩阵乘法算法的指数。

关键词

引用

@article{arxiv.2209.01623,
  title  = {Computing Generalized Convolutions Faster Than Brute Force},
  author = {Barış Can Esmer and Ariel Kulik and Dániel Marx and Philipp Schepper and Karol Węgrzycki},
  journal= {arXiv preprint arXiv:2209.01623},
  year   = {2023}
}

备注

We improved constant c, 29 pages, 5 colored figures