Optimal ancilla-free Clifford+T approximation of z-rotations
Neil J. Ross, Peter Selinger
TL;DR
The paper tackles optimal ancilla-free synthesis of arbitrary $z$-rotations using Clifford+$T$ circuits. It introduces a fast probabilistic algorithm that is optimal given a factoring oracle, and near-optimal without factoring by solving a pair of coupled problems: a 2D grid problem and a Diophantine equation, via enumerating candidates $u\in\mathbb{D}[\omega]$ and solving $t^{\dagger}t=1-u^{\dagger}u$. The core technical advance is an efficient, iterative grid-transformation approach (grid operators) that normalizes convex regions to upright shapes, enabling guaranteed enumeration with polylogarithmic time in $1/\varepsilon$. The results yield a typical $T$-count of $3\log_2(1/\varepsilon)+O(\log\log(1/\varepsilon))$ and demonstrate practical performance against previous methods, with optimality proven in the presence of a factoring oracle and near-optimality otherwise. This framework significantly improves exact and approximate synthesis for the Clifford+$T$ gate set and offers a blueprint for phase-agnostic variants and related gate sets.
Abstract
We consider the problem of approximating arbitrary single-qubit z-rotations by ancilla-free Clifford+T circuits, up to given epsilon. We present a fast new probabilistic algorithm for solving this problem optimally, i.e., for finding the shortest possible circuit whatsoever for the given problem instance. The algorithm requires a factoring oracle (such as a quantum computer). Even in the absence of a factoring oracle, the algorithm is still near-optimal under a mild number-theoretic hypothesis. In this case, the algorithm finds a solution of T-count m + O(log(log(1/epsilon))), where m is the T-count of the second-to-optimal solution. In the typical case, this yields circuit approximations of T-count 3log_2(1/epsilon) + O(log(log(1/epsilon))). Our algorithm is efficient in practice, and provably efficient under the above-mentioned number-theoretic hypothesis, in the sense that its expected runtime is O(polylog(1/epsilon)).
