  How fast can you test whether a constellation of stars appears in the night
sky? This question can be modeled as the computational problem of testing
whether a set of points $P$ can be moved into (or close to) another set $Q$
under some prescribed group of transformations.
  Consider, as a simple representative, the following problem: Given two sets
of at most $n$ integers $P,Q\subseteq[N]$, determine whether there is some
shift $s$ such that $P$ shifted by $s$ is a subset of $Q$, i.e.,
$P+s=\{p+s:p\in P\}\subseteq Q$. This problem, to which we refer as the
Constellation problem, can be solved in near-linear time $O(n\log n)$ by a
Monte Carlo randomized algorithm [Cardoze, Schulman; FOCS'98] and time
$O(n\log^2 N)$ by a Las Vegas randomized algorithm [Cole, Hariharan; STOC'02].
Moreover, there is a deterministic algorithm running in time
$n\cdot2^{O(\sqrt{\log n\log\log N})}$ [Chan, Lewenstein; STOC'15]. An
interesting question left open by these previous works is whether Constellation
is in deterministic near-linear time (i.e., with only polylogarithmic
overhead).
  We answer this question positively by giving an $n\cdot(\log N)^{O(1)}$-time
deterministic algorithm for the Constellation problem. Our algorithm extends to
various more complex Point Pattern Matching problems in higher dimensions,
under translations and rigid motions, and possibly with mismatches, and also to
a near-linear-time derandomization of the Sparse Wildcard Matching problem on
strings.
  We find it particularly interesting how we obtain our deterministic
algorithm. All previous algorithms are based on the same baseline idea, using
additive hashing and the Fast Fourier Transform. In contrast, our algorithms
are based on new ideas, involving a surprising blend of combinatorial and
algebraic techniques. At the heart lies an innovative application of the
Baur-Strassen theorem from algebraic complexity theory.
