- Algorithms
Hamiltonian Simulation
The task of approximating the time evolution operator e^{-iHt} of a quantum system's Hamiltonian using quantum circuits.
Every quantum system evolves according to the Schrodinger equation. Given a Hamiltonian describing the system’s energy, the state at time is obtained by applying the time evolution operator to the initial state. For a classical computer, computing this operator exactly requires working with exponentially large matrices. A quantum computer, being itself a quantum system, can implement directly as a quantum circuit of manageable size. Hamiltonian simulation is the formal task of building that circuit, and it is the engine underneath almost every quantum algorithm for chemistry, materials science, and quantum field theory.
The details
The Schrodinger equation in natural units () is:
whose solution is . For an -qubit system, is a Hermitian matrix. Diagonalising it classically requires time. A quantum computer with qubits can represent natively and apply without ever forming the full matrix.
Trotterization is the oldest and most widely used simulation method. Most physically relevant Hamiltonians decompose as sums of local terms:
Each acts on only a few qubits and is straightforward to exponentiate as a short quantum circuit. The first-order Trotter-Suzuki formula approximates:
with error , controllable by increasing (the number of Trotter steps). The second-order symmetric formula:
halves the error prefactor and is widely used in practice. Higher-order (-th order) Trotter formulae achieve error at the cost of more exponentials per step.
import numpy as np
from qiskit.synthesis import SuzukiTrotter
from qiskit.quantum_info import SparsePauliOp
# Transverse-field Ising model: H = -J sum Z_i Z_{i+1} - h sum X_i
n = 4
J, h = 1.0, 0.5
zz_terms = [("ZZ", [i, i+1], -J) for i in range(n - 1)]
x_terms = [("X", [i], -h) for i in range(n)]
H = SparsePauliOp.from_sparse_list(zz_terms + x_terms, num_qubits=n)
# Build a second-order Trotter circuit for time t with r steps
t, r = 1.0, 10
synthesiser = SuzukiTrotter(order=2, reps=r)
evo_circuit = synthesiser.synthesize(H * t)
print(evo_circuit.depth())
Qubitisation and quantum signal processing (QSP) are asymptotically superior alternatives developed after 2016. Qubitisation block-encodes in a larger unitary; QSP then applies a polynomial transformation to synthesise with gate count , where is the one-norm of . This is asymptotically optimal and can reduce circuit depth by orders of magnitude over Trotter for large molecules.
In second quantisation (standard for chemistry), the Hamiltonian is mapped to qubits via Jordan-Wigner or Bravyi-Kitaev transformations (one qubit per spin-orbital); first quantisation encodes particle positions on a spatial grid with better qubit scaling but more complex circuits. Hamiltonian simulation underlies quantum phase estimation: QPE uses controlled- to extract eigenvalues of to chemical accuracy on fault-tolerant hardware.
Why it matters for learners
Hamiltonian simulation is arguably the most important subroutine in fault-tolerant quantum computing. It underlies quantum simulation of molecules and materials, quantum phase estimation, and quantum field theory applications. Virtually every quantum advantage claim in chemistry traces to how efficiently can be implemented.
The gap between Trotter and qubitisation-based methods shows why algorithmic research matters: it translates directly into orders-of-magnitude differences in physical qubit counts. The algorithm also connects to VQE, which sidesteps via a variational ansatz, and to adiabatic quantum computing, where slow time evolution is the computation.
Common misconceptions
Misconception 1: Trotterization error can always be made arbitrarily small by adding more steps. In theory yes; in practice, more Trotter steps mean deeper circuits and more gate errors. Past a device-specific optimum, accumulated hardware noise exceeds the Trotter error, so the best step count must be tuned to the device’s noise rates.
Misconception 2: Hamiltonian simulation and quantum simulation are the same thing. Hamiltonian simulation is the specific subroutine of implementing as a circuit. Quantum simulation is the broader task of learning properties of a quantum system, which may use this subroutine but also includes VQE and other methods that never directly implement .
Misconception 3: The Hamiltonian must be sparse for quantum simulation to work. Sparse Hamiltonians are the easiest case, and most physically relevant ones (local condensed-matter interactions, few-body chemistry terms) are sparse. But qubitisation and block encoding techniques apply to denser Hamiltonians, and research is extending simulation methods to the dense cases arising in quantum field theory.