Fourier meets M\"obius: fast subset convolution

Abstract

We present a fast algorithm for the subset convolution problem: given functions f and g defined on the lattice of subsets of an n-element set N, compute their subset convolution f*g, defined for all S⊂eq N by (f * g)(S) = ΣT ⊂eq Sf(T) g(S T), where addition and multiplication is carried out in an arbitrary ring. Via M\"obius transform and inversion, our algorithm evaluates the subset convolution in O(n2 2n) additions and multiplications, substantially improving upon the straightforward O(3n) algorithm. Specifically, if the input functions have an integer range -M,-M+1,...,M, their subset convolution over the ordinary sum-product ring can be computed in O*(2n log M) time; the notation O* suppresses polylogarithmic factors. Furthermore, using a standard embedding technique we can compute the subset convolution over the max-sum or min-sum semiring in O*(2n M) time. To demonstrate the applicability of fast subset convolution, we present the first O*(2k n2 + n m) algorithm for the minimum Steiner tree problem in graphs with n vertices, k terminals, and m edges with bounded integer weights, improving upon the O*(3k n + 2k n2 + n m) time bound of the classical Dreyfus-Wagner algorithm. We also discuss extensions to recent O*(2n)-time algorithms for covering and partitioning problems (Bj\"orklund and Husfeldt, FOCS 2006; Koivisto, FOCS 2006).

0

Turn this paper into a full lesson

ArcXiv compiles a staged curriculum from this paper: 8-12 lessons across beginner → advanced, synthesised section guides, visuals, flashcards, a quiz, exercises, and on-demand deep dives per section. Grounded in the abstract, never invented.

Discussion (0)

Sign in to join the discussion.

Loading comments…