Hamiltonians and Encoding for Quantum Circuits

qc/algorithms qc/math

A Hamiltonian is the energy operator of a physical system: its eigenvalues are the system’s allowed energies, its eigenvectors are the corresponding physical states, and it governs time evolution via (setting ). Key insight: itself is generally not unitary, so it isn’t a valid quantum gate — the operator you actually implement on a circuit is , the unitary time-evolution operator generated by .

Why Paulis are the universal language

Two facts make circuit-level Hamiltonian work tractable:

  1. Any Hermitian matrix can be written as a real-weighted linear combination of -qubit Pauli strings — this is the same fact behind Pauli Operators’ role as the “universal alphabet” for observables, extended via tensor products to qubits.
  2. A Pauli rotation is unitary for any Pauli string — so each term in a Pauli-decomposed Hamiltonian is directly implementable as a rotation gate.

Three ways to hand to a circuit

  • LCP (linear combination of Paulis) — with real coefficients . Natural for spin models, and the format near-term algorithms in this section mostly use.
  • LCU (linear combination of unitaries) — with complex coefficients, used by block-encoding methods for fault-tolerant-era algorithms.
  • Sparse matrix oracles (locations) and (values), an oracle-access model rather than an explicit decomposition.

Mapping physical systems onto qubits

Spin models map directly — one physical spin becomes one qubit, and the Hamiltonian is naturally in LCP form. Example, the transverse-field Ising model (the same Hamiltonian family as 1D Ising Chain and the Mirror Trick):

Fermions are harder — creation/annihilation operators anticommute, which plain qubit operators don’t do by default. Two standard mappings:

  • Jordan-Wigner: — simple, but a single fermionic operator touches qubits (the trailing string).
  • Bravyi-Kitaev: touches only qubits, at the cost of a less intuitive encoding — still delocalized, just less so.

This fermion-to-qubit mapping step is exactly what the SQD/LUCJ chemistry algorithms later in this section assume has already happened.

Worked Jordan-Wigner example (from an H₂ Hamiltonian, see Quantum Chemistry — QPE on H2 (Worked Example)): a number operator maps to — a single-qubit term. A density-density (Coulomb repulsion) term maps to a -type two-qubit term, since it’s just a product of two number operators. Hopping terms () map to -type terms carrying the -string between and . This is how a molecular Hamiltonian with a handful of orbitals turns into the kind of 15-term Pauli sum that Quantum Chemistry — QPE on H2 (Worked Example) then feeds into a QPE circuit.

Self-Check

  • Why is the thing you implement on a circuit, not itself?
  • Could you explain why any Hermitian matrix being a sum of Pauli strings matters practically?
  • Why do fermionic systems need a mapping like Jordan-Wigner or Bravyi-Kitaev, but spin systems don’t?