The dynamics of a quantum system can be simulated using a quantum computer by breaking down the unitary into a quantum circuit of one and two qubit gates. The most established methods are the Trotter-Suzuki decompositions, for which rigorous bounds on the circuit size depend on the number of terms $L$ in the system Hamiltonian and the size of the largest term in the Hamiltonian $\Lambda$. Consequently, Trotter-Suzuki is only practical for sparse Hamiltonians. Trotter-Suzuki is a deterministic compiler but it was recently shown that randomised compiling offers lower overheads. Here we present and analyse a randomised compiler for Hamiltonian simulation where gate probabilities are proportional to the strength of a corresponding term in the Hamiltonian. This approach requires a circuit size independent of $L$ and $\Lambda$, but instead depending on $\lambda$ the absolute sum of Hamiltonian strengths (the $\ell_1$ norm). Therefore, it is especially suited to electronic structure Hamiltonians relevant to quantum chemistry. Considering propane, carbon dioxide and ethane, we observe speed-ups compared to standard Trotter-Suzuki of between $306\times$ and $1591\times$ for physically significant simulation times at precision $10^{-3}$. Performing phase estimation at chemical accuracy, we report that the savings are similar.

This is a cool protocol, “qDRIFT”:

Split up H into normalized \(H_j\) with constants \(c_j\)

Randomly use unitaries \(e^{itH_j}\) with probability \(c_j / \sum c_j\)

With enough gates, it will approximate \(e^{itH}\) (wow!)

It’s good compared to Trotter/Suzuki since dependence on number of terms is much better (not directly on L, just on \(\sum c_j\))

Stochastically drifts towards target unitary.

There is an interesting quantum channel argument, showing that the Taylor expansion of \(e^{itH}\rho e^{-itH}\) is close to the probabilistic mixing of gates in qDRIFT (choosing \(H_j\) with probability \(c_j/\sum c_j\), many times)

New ideas

Is there a higher-order qDRIFT?

What about H = H_a + H_b, using qDRIFT on each one? (Perhaps we can partition the terms so that \([H_a, H_b] \approx 0\) ?

What if you have one big \(\lambda\) and a lot of little corrections? Can you run qDRIFT on the little corrections and make \(H_A + H_{qdrift}\)?

Things to clarify

What is “compilation”?

Why does qdrift perform so much better than trotter? even numerically?

How does this compare to time dependent perturbation theory?

To use, scroll down and press the Submit button for a one-sentence summary of the abstract.