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?