Did Fourier Really Meet Möbius? Fast Subset Convolution via FFT
Mihail Stoian
TL;DR
The paper addresses the practical limitations of the classic subset convolution algorithm, which traditionally runs in $O(2^n n^2)$ time using zeta/Möbius transforms but suffers from floating-point rounding and large intermediate values. It introduces SubsetConvolutionViaFFT, an FFT-based method that avoids set-function transforms by representing set functions as binary-subset vectors split into rank-$i$ components and performing frequency-domain convolutions; the key step uses $a+b=(a|b)+(a&b)$ to enforce disjointness, with an inverse FFT returning the result per cardinality and zeroing to maintain $|S|=k$. The approach preserves the original running time $O(2^n n^2)$, requires no zero-padding, and enables leveraging decades of FFT optimizations in practice. By clarifying the continued relevance of zeta/Möbius transforms in other settings and linking to related FFT-based work, the paper highlights practical pathways for applying subset convolution in algorithm engineering, including dynamic programming on tree decompositions and problems like minimum Steiner tree and chromatic number.
Abstract
In their seminal work on subset convolution, Björklund, Husfeldt, Kaski and Koivisto introduced the now well-known $O(2^n n^2)$-time evaluation of the subset convolution in the sum-product ring. This sparked a wave of remarkable results for fundamental problems, such as the minimum Steiner tree and the chromatic number. However, in spite of its theoretical improvement, large intermediate outputs and floating-point precision errors due to alternating addition and subtraction in its set function transforms make the algorithm unusable in practice. We provide a simple FFT-based algorithm that completely eliminates the need for set function transforms and maintains the running time of the original algorithm. This makes it possible to take advantage of nearly sixty years of research on efficient FFT implementations.
