比暴力枚举更快地计算广义卷积
数据结构与算法
2023-01-31 v2
摘要
本文考虑卷积的一般概念。设 D D D 为有限域,D n D^n D n 为 D D D 的 n n n 长向量(元组)集合。设 f : D × D → D f : D \times D \to D f : D × D → D 为一函数,⊕ f \oplus_f ⊕ f 为 f f f 的逐坐标应用。两个函数 g , h : D n → { − M , … , M } g,h : D^n \to \{-M,\ldots,M\} g , h : D n → { − M , … , M } 的 f f f -卷积定义为 ( g ⊗ f h ) ( v ) : = ∑ v g , v h ∈ D n s.t. v g ⊕ f v h g ( v g ) ⋅ h ( v h ) (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) ( g ⊗ f h ) ( v ) := v g , v h ∈ D n s.t. v g ⊕ f v h ∑ g ( v g ) ⋅ h ( v h ) 对每个 v ∈ D n \textbf{v} \in D^n v ∈ D n 成立。该问题推广了诸多基本卷积,如子集卷积、XOR 乘积、覆盖乘积或包装乘积等。对任意函数 f f f 与域 D D D ,我们可通过暴力枚举在 O ~ ( ∣ D ∣ 2 n p o l y l o g ( M ) ) \widetilde{O}(|D|^{2n}\mathrm{polylog}(M)) O ( ∣ D ∣ 2 n polylog ( M )) 时间内计算 f f f -卷积。我们的主要结果是对该朴素算法的改进。我们证明当 D D D 的基数为偶数时,f f f -卷积可在 O ~ ( ( c ⋅ ∣ D ∣ 2 ) n p o l y l o g ( M ) ) \widetilde{O}((c \cdot |D|^2)^{n}\mathrm{polylog}(M)) O (( c ⋅ ∣ D ∣ 2 ) n polylog ( M )) 时间内精确计算,其中常数 c : = 3 / 4 c := 3/4 c := 3/4 。我们的主要观察是,函数 f : D × D → D f : D \times D \to D f : D × D → D 的\emph{循环划分}可用于加速 f f f -卷积的计算,并证明对每个 f f f 均存在适当的循环划分。此外,我们展示单点 f f f -卷积可更高效计算。在此变体中,给定两个函数 g , h : D n → { − M , … , M } g,h : D^n \to \{-M,\ldots,M\} g , h : D n → { − M , … , M } 及向量 v ∈ D n \textbf{v} \in D^n v ∈ D n ,f f f -查询问题的任务是计算整数 ( g ⊗ f h ) ( v ) (g \otimes_f h)(\textbf{v}) ( g ⊗ f h ) ( v ) 。这是著名的正交向量问题的推广。我们证明 f f f -查询可在 O ~ ( ∣ D ∣ ω 2 n p o l y l o g ( M ) ) \widetilde{O}(|D|^{\frac{\omega}{2} n}\mathrm{polylog}(M)) O ( ∣ D ∣ 2 ω n polylog ( M )) 时间内计算,其中 ω ∈ [ 2 , 2.372 ) \omega \in [2,2.372) ω ∈ [ 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