• Algorithms
  • Also: Trotter-Suzuki decomposition
  • Also: Trotter decomposition
  • Also: product formula

Trotterization

Trotterization (Trotter-Suzuki decomposition) is a method for approximating quantum time evolution e^(-iHt) by splitting the Hamiltonian into simpler terms and interleaving their individual exponentials, converting Hamiltonian simulation into a quantum circuit.

Trotterization is the standard technique for converting Hamiltonian simulation into a quantum circuit. Given a Hamiltonian H = A + B where A and B do not commute, the exact time evolution operator e^(-iHt) cannot generally be implemented directly. The Trotter-Suzuki product formula approximates it:

First-order (Lie-Trotter):

e^(-i(A+B)t) ≈ (e^(-iAt/n) e^(-iBt/n))^n

The error is O(t²/n): double the number of steps, halve the error. Each “step” adds circuit depth proportional to the number of Hamiltonian terms.

Second-order (Suzuki):

e^(-i(A+B)t) ≈ (e^(-iAt/2n) e^(-iBt/n) e^(-iAt/2n))^n

The error is O(t³/n²): double the steps, quarter the error. More accurate per step, only slightly more gates.

Higher-order Suzuki formulas exist (4th, 6th order) with even better convergence rates.

Why it matters

Simulating how quantum systems evolve in time (molecules reacting, electrons tunneling in a lattice, spins precessing in a magnetic field) is one of the most important uses of quantum computers. Trotterization is the bridge between a physical Hamiltonian (a sum of Pauli operators) and an actual quantum circuit.

For a k-term Hamiltonian and n Trotter steps, each step adds a layer of gates proportional to k. For the Heisenberg model with n spins, k scales as O(n), so circuit depth scales as O(n * n_steps). On NISQ hardware, Trotter circuits become too deep quickly; this is why error mitigation and fault tolerance are prerequisites for large-scale Hamiltonian simulation.

In Qiskit

from qiskit.circuit.library import PauliEvolutionGate
from qiskit.quantum_info import SparsePauliOp
from qiskit.synthesis import LieTrotter, SuzukiTrotter

H = SparsePauliOp.from_list([('ZZ', 1.0), ('XI', 0.5), ('IX', 0.5)])

# First-order Trotter, 4 steps
evo = PauliEvolutionGate(H, time=1.0, synthesis=LieTrotter(reps=4))

# Second-order Suzuki, 4 steps (recommended default)
evo = PauliEvolutionGate(H, time=1.0, synthesis=SuzukiTrotter(order=2, reps=4))

Trotter error

The Trotter error for first-order is bounded by:

||e^{-iHt} - (e^{-iAt/n} e^{-iBt/n})^n|| <= t^2 ||[A, B]|| / (2n)

where [A, B] = AB - BA is the commutator. If A and B commute, the Trotter error is exactly zero and the decomposition is exact. For Hamiltonians where terms act on different qubits (they commute), the Trotter approximation is exact regardless of n.

Common misconception

Trotterization is sometimes confused with the adiabatic theorem or variational methods. It is neither; it is a direct simulation of time evolution for a known Hamiltonian, not an optimization algorithm. The closest algorithm to compare it with is quantum phase estimation, which also uses controlled time evolution but for a different purpose (finding eigenvalues rather than evolving states).