Hamiltonians and Encoding for Quantum Circuits
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:
- 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.
- 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.
Related
- Pauli Operators
- SparsePauliOp
- Hamiltonian Simulation — Why It’s Hard
- Trotterization — what you actually do with this decomposition on a circuit
- Quantum Chemistry — QPE on H2 (Worked Example) — a full worked example of this Jordan-Wigner mapping applied to a real molecule
- The Full Pipeline of a Quantum Solver — this note covers the pipeline’s “Encoding” stage in depth
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?