Computing Generalized Convolutions Faster Than Brute Force

计算广义卷积比暴力破解更快

阅读:1

Abstract

In this paper, we consider a general notion of convolution. Let D be a finite domain and let Dn be the set of n-length vectors (tuples) of D. Let f:D × D → D be a function and let ⊕f be a coordinate-wise application of f. The f-Convolution of two functions g, h:Dn → { - M, …, M} is [Formula: see text] for every v ∈ Dn. This problem generalizes many fundamental convolutions such as Subset Convolution, XOR Product, Covering Product or Packing Product, etc. For arbitrary function f and domain D we can compute f-Convolution via brute-force enumeration in O~(|D|2n · polylog(M)) time. Our main result is an improvement over this naive algorithm. We show that f-Convolution can be computed exactly in O~((c · |D|2)n · polylog(M)) for constant c: = 3/4 when D has even cardinality. Our main observation is that a cyclic partition of a function f:D × D → D can be used to speed up the computation of f-Convolution, and we show that an appropriate cyclic partition exists for every f. Furthermore, we demonstrate that a single entry of the f-Convolution can be computed more efficiently. In this variant, we are given two functions g, h:Dn → { - M, …, M} alongside with a vector v ∈ Dn and the task of the f-Query problem is to compute integer (g⊛fh)(v). This is a generalization of the well-known Orthogonal Vectors problem. We show that f-Query can be computed in O~(|D|2/n · polylog(M)) time, where ω ∈ [2, 2.372) is the exponent of currently fastest matrix multiplication algorithm.

特别声明

1、本页面内容包含部分的内容是基于公开信息的合理引用;引用内容仅为补充信息,不代表本站立场。

2、若认为本页面引用内容涉及侵权,请及时与本站联系,我们将第一时间处理。

3、其他媒体/个人如需使用本页面原创内容,需注明“来源:[生知库]”并获得授权;使用引用内容的,需自行联系原作者获得许可。

4、投稿及合作请联系:info@biocloudy.com。