- Fundamentals
- Also: Ising Hamiltonian
- Also: transverse-field Ising model
Ising Model
The Ising model is a mathematical model of ferromagnetism in statistical mechanics, describing interacting binary spins on a lattice, and is directly simulated by quantum annealing hardware and neutral atom quantum computers.
The classical Ising model assigns a binary spin variable to each site of a lattice. The energy of a configuration is given by the Hamiltonian:
Where:
- is the coupling strength between neighbouring spins and
- is an external magnetic field acting on spin
- The sum runs over pairs of connected sites
Finding the minimum energy configuration (ground state) is equivalent to solving a constraint satisfaction or combinatorial optimization problem. For general graphs, this is NP-hard.
Quantum Ising Model
The quantum (transverse-field) Ising model adds a quantum tunneling term:
Where and are Pauli operators and is the transverse field strength. The transverse field enables quantum tunneling between spin states, which is the mechanism quantum annealing exploits to escape local minima.
Relevance to Quantum Computing
The Ising model is central to quantum hardware in three ways:
Quantum annealing. D-Wave’s quantum processors are physical implementations of the quantum Ising Hamiltonian. Users specify and values corresponding to their optimization problem, and the hardware anneals to the ground state.
Neutral atom quantum computers. The Rydberg blockade interaction between neutral atoms naturally implements a form of the Ising model. QuEra’s Aquila system (analog mode via Amazon Braket) allows users to specify atom geometries and drive sequences that implement Ising-type dynamics for quantum simulation.
QUBO formulation. The Ising model is mathematically equivalent to QUBO (Quadratic Unconstrained Binary Optimization) via the substitution . Most quantum annealing software converts between the two representations automatically.
Practical Example in Qiskit (Pauli Evolution)
from qiskit.quantum_info import SparsePauliOp
from qiskit.circuit.library import PauliEvolutionGate
from qiskit.synthesis import LieTrotter
# 2-qubit transverse-field Ising Hamiltonian: -ZZ - hX1 - hX2
h = 0.5 # transverse field strength
J = 1.0 # coupling
H_ising = SparsePauliOp.from_list([
('ZZ', -J),
('XI', -h),
('IX', -h),
])
# Evolve for time t using Trotter decomposition
from qiskit import QuantumCircuit
qc = QuantumCircuit(2)
evo_gate = PauliEvolutionGate(H_ising, time=1.0, synthesis=LieTrotter(reps=4))
qc.append(evo_gate, [0, 1])
qc = qc.decompose()
print(f"Circuit depth: {qc.depth()}")