In short

The circuit model computes by applying a discrete sequence of gates to qubits, then measuring. Adiabatic quantum computing (AQC) computes by preparing the ground state of an easy Hamiltonian H_0, slowly sliding the Hamiltonian toward a problem Hamiltonian H_p whose ground state encodes the answer, and measuring at the end. The two pictures share no obvious machinery — one is discrete, the other continuous; one is choreographed, the other is a physics experiment. It is a genuine surprise that they are polynomially equivalent as computational models (Aharonov, van Dam, Kempe, Landau, Lloyd, Regev, 2004–2007 [1]). Any circuit of L gates on n qubits can be compiled into an adiabatic evolution on \text{poly}(n, L) qubits running in \text{poly}(n, L) time; any adiabatic evolution with a polynomially-small spectral gap can be simulated by a circuit of polynomial size. The translation uses Kitaev's history-state construction in the circuit-to-adiabatic direction — you build a Hamiltonian whose ground state is a superposition over all snapshots of the circuit, entangled with a clock register — and Trotter decomposition in the adiabatic-to-circuit direction. The implication: AQC is a universal model of quantum computation. It does not give you exponentially more power than circuits (so it cannot solve NP-complete problems in polynomial time any more than circuits can), but it also does not give you less. It is the same computational complexity class BQP, dressed up as physics. The hard problems stay hard — an NP-hard instance becomes an exponentially-small spectral gap in the adiabatic language, and an exponentially-deep circuit in the gate language. Same difficulty, different costume.

You have now met two ways to compute with quantum mechanics. In the circuit model — the one Shor, Grover, and every textbook uses — you line up qubits, apply a sequence of one- and two-qubit gates like H, CNOT, and T, and measure at the end. The whole computation is a choreographed sequence of operators that you, the programmer, specified explicitly. In adiabatic quantum computing, you do something that looks completely different: you pick a simple Hamiltonian H_0 whose ground state is a uniform superposition, a problem Hamiltonian H_p whose ground state encodes the answer, and then you slowly interpolate between them. There are no gates. There is no circuit diagram. There is a piece of physics, running according to Schrödinger's equation, with a dial you twist from 0 to 1 over time T.

If a friend showed you these two machines without labels, you would swear they were solving different problems. Circuits look like computer science; adiabatic evolution looks like condensed-matter physics. The operations, the hardware, the intuition — everything is different. In 2004, Dorit Aharonov, Wim van Dam, Julia Kempe, Zeph Landau, Seth Lloyd, and Oded Regev published a paper proving that these two models are polynomially equivalent [1]. Anything a circuit can compute in polynomial time, an adiabatic evolution can compute in polynomial time. Anything an adiabatic evolution can compute in polynomial time, a circuit can compute in polynomial time. The two machines are the same machine, just wearing different clothes.

The proof is constructive in both directions. Going from adiabatic to circuit is the easier direction and essentially amounts to Trotter decomposition — you approximate e^{-iH(t)t} by a product of short-time evolutions, each of which is a constant-depth circuit. Going from circuit to adiabatic is harder and cleverer. It uses a construction Kitaev invented in 1999 for a completely different purpose (proving QMA-completeness of the local-Hamiltonian problem — the quantum Cook-Levin theorem): a history-state Hamiltonian whose ground state is a superposition over every intermediate snapshot of the circuit's execution, correlated with a clock register that says "I am at step \ell."

This chapter explains both directions carefully, works through two small explicit examples, and draws out the consequences. By the end, you should be able to look at a circuit and sketch, in words, how it becomes an adiabatic evolution — and conversely, look at an adiabatic schedule and sketch how it becomes a circuit. More importantly, you should understand what the equivalence does and does not tell you: it says AQC is universal (good news for AQC advocates) and it says AQC is no more powerful than the circuit model (bad news for anyone hoping AQC can crack NP-complete problems on its own).

The statement, precisely

Here is what "polynomially equivalent" means, unpacked.

Polynomial equivalence of computational models

Two models A and B are polynomially equivalent if there exist polynomials p, q such that:

  • Every algorithm in A running in time T_A(n) can be simulated in B in time at most p(T_A(n), n).
  • Every algorithm in B running in time T_B(n) can be simulated in A in time at most q(T_B(n), n).

Polynomial equivalence means the models define the same complexity class. A problem is "tractable" in one iff it is tractable in the other. Constant factors, log factors, even moderate polynomial factors are swept under the rug — only exponential gaps would separate the models.

Applied to our case: the circuit model with one- and two-qubit gates defines the complexity class BQP (bounded-error quantum polynomial time). The Aharonov–van Dam theorem says adiabatic quantum computing, suitably defined, also defines BQP. They are the same class.

The "suitably defined" caveat matters. Adiabatic computation has knobs that the circuit model does not: how local the Hamiltonian is allowed to be, how large the spectral gap must stay, whether the Hamiltonian's matrix elements are positive or complex (the "stoquastic" vs "non-stoquastic" distinction). The strongest form of the equivalence theorem — and the one most widely cited — uses:

Under these conditions, AQC = BQP. Weaker conditions give weaker results: if you restrict to stoquastic Hamiltonians, you get a class called StoqMA or equivalent, which may be strictly smaller than BQP; if you allow the gap to shrink exponentially, you might escape BQP but the evolution time blows up correspondingly. The clean picture is "polynomial gap, local Hamiltonian, universal AQC = circuit-model BQP."

Two models, same complexity classTwo boxes side by side. Left: a quantum circuit with three qubit wires, gates labelled H, CNOT, and measurement. Right: a sketch of adiabatic evolution showing a horizontal bar going from H zero at left to H problem at right, with the ground state tracked along. A two-headed double arrow labelled polynomial equivalence connects the two pictures. Circuit model and adiabatic model — same complexity class (BQP) Circuit model |0⟩ |0⟩ |0⟩ H H M M M discrete gates, measured at end Adiabatic model H₀ H_p s=0 s=1 continuous evolution, ground-state tracking poly-time equivalence
Two radically different-looking models of quantum computation, proven polynomially equivalent by Aharonov, van Dam, Kempe, Landau, Lloyd, and Regev. The circuit model uses discrete gates; adiabatic evolution uses a continuously-varying Hamiltonian. Either can simulate the other with only polynomial overhead.

Adiabatic to circuit — the easy direction

Start with the easier direction, because it builds intuition for what an adiabatic evolution is as a unitary operator. Given an adiabatic schedule H(s) = (1-s) H_0 + s H_p with s = t/T running over 0 \le t \le T, the state evolves according to Schrödinger's equation:

i \frac{d|\psi(t)\rangle}{dt} = H(t) |\psi(t)\rangle.

The solution is |\psi(T)\rangle = U_{\text{ad}} |\psi(0)\rangle where

U_{\text{ad}} = \mathcal{T} \exp\left(-i \int_0^T H(t)\, dt\right),

with \mathcal{T} denoting time-ordering. This U_{\text{ad}} is a perfectly ordinary unitary matrix on the Hilbert space of n qubits. You could, in principle, write it down as a 2^n \times 2^n matrix. To simulate the adiabatic evolution on a gate-based quantum computer, you need to build a circuit that implements U_{\text{ad}}.

The tool is Trotter-Suzuki decomposition. Slice the interval [0, T] into M small steps of size \Delta t = T/M. Within each slice, treat H as approximately constant:

U_{\text{ad}} \approx \prod_{k=1}^{M} e^{-i H(t_k) \Delta t}

where t_k = k \Delta t and the product is time-ordered (most recent on the left). The error from treating H as constant within each slice is O(\Delta t^2) per slice, or O(T \cdot \Delta t) = O(T^2/M) total — shrinks as M grows.

Why the constant-Hamiltonian approximation works per-slice: within a slice of length \Delta t, the Hamiltonian changes by about \Delta t \cdot \partial_t H = O(1/M) (since \partial_t H \sim 1/T for a linear schedule and \Delta t = T/M). So within one slice, H is constant up to an error that shrinks as M grows. Evolving under a constant Hamiltonian for time \Delta t is just the matrix exponential e^{-iH\Delta t}. The Trotter error bound says the cumulative error from stitching M such slices together is O(T^2/M).

Now each matrix exponential e^{-iH(t_k) \Delta t} must itself be turned into a gate sequence. Since H(t_k) = (1 - s_k) H_0 + s_k H_p is a sum of two Hamiltonians, use Trotter's formula again:

e^{-i (A + B) \Delta t} = e^{-iA \Delta t} e^{-iB \Delta t} + O(\Delta t^2).

Applied to our splitting:

e^{-i H(t_k) \Delta t} \approx e^{-i s_k H_p \Delta t} \cdot e^{-i (1 - s_k) H_0 \Delta t}.

Because H_0 and H_p are each k-local Hamiltonians (sums of polynomially many terms, each acting on at most k qubits), each individual exponential e^{-i h_i \Delta t} is a small unitary on at most k qubits, which can be decomposed into a constant-depth circuit of one- and two-qubit gates using the Solovay-Kitaev theorem.

Stitching it all together: the total circuit size is O(M \cdot \text{(terms in }H\text{)}\cdot\text{constant}) = O(M \cdot \text{poly}(n)). Choosing M = \text{poly}(n, T) large enough to keep Trotter error below a desired \epsilon, and noting that the adiabatic theorem requires T = O(1/g_{\min}^2) = O(\text{poly}(n)) when the gap is polynomial, gives a total circuit of size \text{poly}(n). Done.

The takeaway: any adiabatic evolution with polynomial gap is simulated by a polynomial-size circuit. The overhead is multiplicative and manageable. Shor's factoring run adiabatically would become Shor's factoring run as a circuit, plus a Trotter-sized-polynomial blow-up.

Circuit to adiabatic — the clever direction

Now the harder direction. Given a quantum circuit U = U_L U_{L-1} \cdots U_2 U_1 of L gates acting on n qubits, build an adiabatic evolution whose ground state at s = 1 encodes the circuit's output. This is the direction that required the key new idea, and the idea is Kitaev's history-state construction.

The history state

A quantum circuit running on input |\psi_0\rangle produces a sequence of intermediate states:

|\psi_0\rangle \xrightarrow{U_1} |\psi_1\rangle \xrightarrow{U_2} |\psi_2\rangle \xrightarrow{U_3} \cdots \xrightarrow{U_L} |\psi_L\rangle

where |\psi_\ell\rangle = U_\ell U_{\ell-1} \cdots U_1 |\psi_0\rangle is the state after \ell gates. The output of the computation is |\psi_L\rangle.

Kitaev's idea: introduce a separate clock register that can store values \ell = 0, 1, \ldots, L (this takes \lceil \log_2(L+1) \rceil qubits, or in the unary encoding used in most proofs, L+1 qubits). Define the history state

|\eta\rangle = \frac{1}{\sqrt{L+1}} \sum_{\ell=0}^{L} |\ell\rangle_{\text{clock}} \otimes |\psi_\ell\rangle_{\text{comp}}.

Why a uniform superposition over clock values: we want a single state that simultaneously "remembers" every intermediate step of the computation. The clock register is the index \ell; the computation register is the state at step \ell; the sum ties them together. The factor 1/\sqrt{L+1} normalises. Measuring the clock register collapses the computation register to whatever state it was in at that time step — including the final output at \ell = L.

If you can prepare the history state |\eta\rangle, you can extract the computation's output: measure the clock register, and conditional on getting \ell = L (which happens with probability 1/(L+1)), the computation register is in |\psi_L\rangle. The probability 1/(L+1) is only polynomially small, so repeating the whole process polynomially many times gets the output with high probability.

The question becomes: can we prepare the history state via adiabatic evolution? And that is where the Hamiltonian engineering comes in.

The history-state Hamiltonian

Construct a Hamiltonian H_{\text{hist}} on the joint clock + computation Hilbert space, built from three kinds of penalty terms:

  1. Clock-validity terms, H_{\text{clock}}: penalise any clock state that isn't a valid unary-encoded clock value. In the unary encoding, a valid clock is a string like 1^\ell 0^{L-\ell} — some number of 1's followed by 0's. Any invalid pattern gets energy > 0.

  2. Initial-state terms, H_{\text{init}}: penalise the configuration (clock = 0, computation \ne |\psi_0\rangle). This says "if the clock is at the start, the computation register must hold the initial state."

  3. Propagation terms, H_{\text{prop}}: for each gate U_\ell, a term that penalises the configuration "clock is at \ell, computation register does NOT equal U_\ell applied to whatever was there at clock \ell - 1." Concretely, for each \ell:

h_\ell^{\text{prop}} = \tfrac{1}{2}\left( |\ell\rangle\langle\ell|_{\text{clock}} \otimes I - |\ell\rangle\langle\ell-1|_{\text{clock}} \otimes U_\ell - |\ell-1\rangle\langle\ell|_{\text{clock}} \otimes U_\ell^\dagger + |\ell-1\rangle\langle\ell-1|_{\text{clock}} \otimes I \right).

The total history-state Hamiltonian is

H_{\text{hist}} = H_{\text{clock}} + H_{\text{init}} + H_{\text{prop}}.

Key claim: H_{\text{hist}} has a unique ground state, and that ground state is exactly the history state |\eta\rangle, with energy 0.

Why the history state is the unique zero-energy ground state: each term in H_{\text{hist}} is positive semi-definite (you can check the matrix of each propagation term is a projector times a scalar). So the total energy is zero iff every term's expectation is zero. H_{\text{clock}} being zero means the state is a superposition over valid clock values. H_{\text{init}} being zero means the clock-0 component holds |\psi_0\rangle. H_{\text{prop}} being zero forces consistency: the state at clock \ell must equal U_\ell applied to the state at clock \ell-1, for every \ell. The only state satisfying all three is |\eta\rangle.

The other crucial property: H_{\text{hist}} has a spectral gap g = \Omega(1/L^2) between the ground state and the first excited state. This is a non-trivial theorem (Kitaev 1999, improved by later authors); the key step is noticing that H_{\text{prop}} looks like a random-walk kernel on the clock register, whose gap is controlled by the 1/L^2 scaling of discrete Laplacian spectra.

The adiabatic sweep

Now you have everything. Define:

Interpolate: H(s) = (1-s) H_0 + s H_{\text{hist}}. The ground state of H(0) is the trivial initial state; the ground state of H(1) is the history state. If the interpolation is slow enough, the adiabatic theorem takes the initial state to the history state.

The runtime: the gap of H(s) along the path is bounded below by 1/L^2 (actually tighter analysis gives 1/L^{2+o(1)} for specific constructions). So the adiabatic time is T = O(1/g_{\min}^2) = O(L^4). Measuring the clock and post-selecting on outcome L succeeds with probability 1/(L+1). Total expected time: O(L^5) — polynomial in L and n.

That is the theorem. Any circuit U of depth L can be simulated by an adiabatic evolution on n + O(L) qubits (including the clock), running for time \text{poly}(n, L), using only k-local terms in the Hamiltonian (originally k = 5 in Kitaev; Kempe, Kitaev, Regev improved to k = 3; Oliveira and Terhal pushed to k = 2 on a 2D lattice [2]).

Kitaev history-state constructionThree stacked rows. Top row labelled clock register shows boxes with labels zero one two three ell dot dot dot L. Middle row labelled computation register shows boxes with labels psi zero psi one psi two psi three psi ell dot dot dot psi L. Arrows labelled U one U two U three U ell connect consecutive computation states. Bottom row shows a single formula reading the history state is a sum over ell of clock ell tensor psi ell, with the ground state label. Kitaev history-state construction clock |0⟩ |1⟩ |2⟩ |3⟩ |ℓ⟩ |L⟩ comp. |ψ₀⟩ |ψ₁⟩ |ψ₂⟩ |ψ₃⟩ |ψ_ℓ⟩ |ψ_L⟩ U₁ U₂ U₃ U_ℓ |η⟩ = (1/√(L+1)) Σ_ℓ |ℓ⟩_clock ⊗ |ψ_ℓ⟩_comp the unique ground state of H_hist — encodes every snapshot of the circuit
The history state superposes every intermediate snapshot of the circuit's execution, correlated with a clock register. Adiabatic evolution prepares this single state; measuring the clock and post-selecting on the final value $L$ extracts the circuit's output with probability $1/(L+1)$.

A tiny intuition for the gap bound

Why is the spectral gap of H_{\text{hist}} of order 1/L^2? Here is the flavour, without a full proof.

Restrict attention to the subspace where H_{\text{clock}} and H_{\text{init}} are zero — i.e., the subspace of valid clock configurations with the initial computation state. On this subspace, the propagation Hamiltonian H_{\text{prop}} acts like a discrete second derivative on the clock register. Specifically, let W = U_\ell U_{\ell-1} \cdots U_1 map the computation state at step 0 to step \ell. Then in the basis rotated by W, H_{\text{prop}} becomes the Laplacian-like operator \sum_\ell |\ell\rangle\langle\ell| - \tfrac{1}{2}(|\ell-1\rangle\langle\ell| + |\ell\rangle\langle\ell-1|). This is the discrete Laplacian on a line of length L+1, and its smallest non-zero eigenvalue is well-known to scale as 1/L^2 (by analogy with the continuous Laplacian on an interval).

The "circuit-to-adiabatic" construction, in other words, turns the circuit-depth cost of the computation into a spectral-gap cost of the Hamiltonian. A deep circuit becomes a tight gap becomes a long adiabatic time. Same fundamental difficulty, translated.

Worked examples

Example 1: Encoding a Hadamard as a history-state adiabatic evolution

Let's take the tiniest possible circuit: one qubit, one Hadamard gate. The circuit is U = H, so L = 1 gate. Starting from |\psi_0\rangle = |0\rangle, we expect |\psi_1\rangle = H|0\rangle = |+\rangle.

Step 1. Build the state spaces. We need one computation qubit (call it c) and a clock register that distinguishes clock values \ell \in \{0, 1\}. The cleanest encoding for this tiny case is a single clock qubit k with |0\rangle_k \leftrightarrow \ell = 0 and |1\rangle_k \leftrightarrow \ell = 1. Total: 2 qubits.

Step 2. Write down the history state explicitly.

|\eta\rangle = \tfrac{1}{\sqrt 2}\left( |0\rangle_k \otimes |0\rangle_c + |1\rangle_k \otimes |+\rangle_c \right).

Why this exact state: at clock 0, the computation holds the input |0\rangle; at clock 1, the computation holds the output of the single gate H|0\rangle = |+\rangle. The history state puts these two in an equal superposition, tagged by the clock.

Expanding |+\rangle = (|0\rangle + |1\rangle)/\sqrt 2 and simplifying:

|\eta\rangle = \tfrac{1}{\sqrt 2}\left(|00\rangle + \tfrac{1}{\sqrt 2}(|10\rangle + |11\rangle)\right) = \tfrac{1}{\sqrt 2}|00\rangle + \tfrac{1}{2}|10\rangle + \tfrac{1}{2}|11\rangle.

Here the first index is the clock, the second is the computation qubit.

Step 3. Construct the three Hamiltonian pieces.

Clock-validity. With a single qubit clock and only 2 valid clock values (|0\rangle_k and |1\rangle_k), every basis state is a valid clock value, so H_{\text{clock}} = 0 for this tiny case.

Initial-state. Penalise the configuration (clock = 0, comp \ne |0\rangle):

H_{\text{init}} = |0\rangle\langle 0|_k \otimes |1\rangle\langle 1|_c.

This is a projector onto the 2-qubit state |01\rangle, with energy 1 on |01\rangle and 0 on everything else in the clock-0 sector.

Propagation. One term for \ell = 1, implementing U_1 = H:

h_1^{\text{prop}} = \tfrac{1}{2}\left(|1\rangle\langle 1|_k \otimes I - |1\rangle\langle 0|_k \otimes H - |0\rangle\langle 1|_k \otimes H + |0\rangle\langle 0|_k \otimes I\right).

Why the specific combination: the first and fourth terms force the "diagonal" configurations to have energy 1/2 (they act like identities in the comp register). The cross terms |1\rangle\langle 0|_k \otimes H and its hermitian conjugate couple clock-0-comp-in to clock-1-comp-H-applied — which is the only consistent transition. The whole operator is a projector onto the subspace orthogonal to "clock and comp agree via H." Its energy is zero exactly when |\psi_1\rangle_c = H|\psi_0\rangle_c.

Assemble. H_{\text{hist}} = H_{\text{init}} + h_1^{\text{prop}}.

Step 4. Verify the ground state. You can check (by computing H_{\text{hist}}|\eta\rangle term by term):

  • H_{\text{init}}|\eta\rangle: on the clock-0 piece, |0\rangle_c gets projected onto |1\rangle\langle 1|_c, giving zero. On clock-1 pieces, H_{\text{init}} contains |0\rangle\langle 0|_k, which annihilates |1\rangle_k. Total: zero.
  • h_1^{\text{prop}}|\eta\rangle: direct algebra gives zero (exercise: plug in the history state and expand; every term cancels).

So H_{\text{hist}}|\eta\rangle = 0, confirming |\eta\rangle is a zero-energy ground state.

Step 5. The adiabatic sweep. Pick H_0 = |1\rangle\langle 1|_k + |1\rangle\langle 1|_c, whose unique ground state is |00\rangle_{kc} (clock at start, comp in initial state). Interpolate H(s) = (1-s) H_0 + s H_{\text{hist}}. For this tiny Hamiltonian the minimum gap can be computed exactly — it is a constant, g_{\min} = \Theta(1) (the 1/L^2 scaling only matters for large L). So the evolution time is T = O(1) and the whole adiabatic simulation runs in constant time.

Result. After the sweep, measure the clock register. With probability 1/2 you get clock = 1 and the computation register is in |+\rangle — you have just applied the Hadamard gate adiabatically. With probability 1/2 you get clock = 0 and must rerun.

What this shows. Even for a trivial one-gate circuit, the history-state construction yields a genuine 2-qubit adiabatic procedure. The simplicity of the tiny case clarifies what the general machinery is doing: clock register tracks the step, initial-state term pins the input, propagation terms enforce the gate actions, ground state is the superposition over the entire computation. Scale the same recipe up to L gates and n qubits and you have Kitaev's full construction — with the caveat that the spectral gap starts shrinking as 1/L^2, making the adiabatic sweep slower for longer circuits.

Example 2: Trotterising a 3-qubit adiabatic into a short circuit

Now the reverse direction. Take the adiabatic MaxCut sweep on a triangle graph from the AQC chapter:

H(s) = (1 - s)\underbrace{(-X_1 - X_2 - X_3)}_{H_0} + s\underbrace{(Z_1 Z_2 + Z_2 Z_3 + Z_1 Z_3)}_{H_p},

with s = t/T and T chosen comfortably large (say, T = 10, well above 1/g_{\min}^2 \approx 5). Build a circuit that implements this evolution.

Step 1. Discretise time. Pick M = 20 time slices, \Delta t = T/M = 0.5. The Trotter error is O(T \cdot \Delta t) = O(5) in operator norm — too large. Increase M to M = 200 so \Delta t = 0.05, giving Trotter error O(0.25), small enough for a 3-qubit problem where we want reasonable fidelity. Why more slices help: Trotter error comes from the non-commutation of H_0 and H_p. Each slice incurs error \sim \Delta t^2 \|[H_0, H_p]\|; stitching M slices gives total error \sim M \Delta t^2 \|[H_0, H_p]\| = T \Delta t \|[H_0, H_p]\|. Shrinking \Delta t (equivalently, growing M) shrinks the error linearly.

Step 2. Each slice has two subsections. Within slice k, apply U_k = e^{-i s_k H_p \Delta t} e^{-i (1-s_k) H_0 \Delta t} where s_k = (k - 1/2)/M (midpoint of the slice).

Step 3. Turn each exponential into gates.

Easy part: e^{-i(1-s_k) H_0 \Delta t} = e^{-i(1-s_k) \Delta t(-X_1 - X_2 - X_3)} = \prod_j e^{i(1-s_k) \Delta t \cdot X_j}. Each factor is a single-qubit x-rotation by angle \theta_j = -2(1-s_k)\Delta t:

e^{i\alpha X} = R_x(-2\alpha).

So three R_x gates, one per qubit.

Problem part: e^{-i s_k H_p \Delta t} = e^{-i s_k \Delta t (Z_1 Z_2 + Z_2 Z_3 + Z_1 Z_3)}. The three terms commute pairwise (all diagonal in the Z basis), so we can factor:

= e^{-i s_k \Delta t Z_1 Z_2} \cdot e^{-i s_k \Delta t Z_2 Z_3} \cdot e^{-i s_k \Delta t Z_1 Z_3}.

Each two-qubit ZZ-rotation decomposes into a three-gate sequence:

e^{-i \theta Z_i Z_j} = \text{CNOT}_{ij} \cdot (I \otimes R_z(2\theta)) \cdot \text{CNOT}_{ij}.

Why the CNOT sandwich: conjugating a single-qubit R_z(2\theta) on the target with CNOT maps it to an R_{zz}(\theta) on both qubits. This is the standard ZZ-rotation decomposition.

So each slice is: 3 single-qubit R_x rotations + 3 ZZ-rotations (each = 2 CNOTs + 1 R_z) = 3 R_x + 6 CNOTs + 3 R_z = 12 elementary gates.

Step 4. Count the circuit size. With M = 200 slices, the total circuit depth is about 200 \times 12 = 2400 elementary gates. For a 3-qubit problem. Not a small circuit. But polynomial in everything: the evolution time T, the problem size n = 3, and the desired accuracy 1/\epsilon.

Step 5. Assemble the full circuit.

|0⟩ ─ H ──[R_x(α_1)]─●──[R_z(θ_1)]─●──── ... (repeat slice 200 times)
                     │               │
|0⟩ ─ H ──[R_x(α_2)]─⊕───────────────⊕─●──[R_z(θ_2)]─●── ...
                                       │               │
|0⟩ ─ H ──[R_x(α_3)]───────────────────⊕───────────────⊕── ...

The leading Hadamards prepare |+++\rangle (the ground state of H_0). Each slice tweaks the state a little. After all 200 slices, the state is approximately the ground state of H_p. Measure in the Z-basis to read off the MaxCut answer.

Result. The 3-qubit adiabatic MaxCut becomes a \sim 2400-gate circuit. On a typical circuit-model quantum computer with gate error \sim 10^{-3}, this is within reach of current hardware, and would produce the correct MaxCut ground state with high probability.

What this shows. The circuit produced by Trotterisation is much larger than the naive "direct circuit" you would design for MaxCut by hand — because it is simulating an inefficient adiabatic evolution step-by-step. This is the price you pay for automatic translation. For any specific problem, there is usually a more clever circuit that bypasses the adiabatic detour. But Trotterisation always works, and the gate count it produces is always polynomial. Which is all the equivalence theorem claims.

Why this matters — the implications

AQC is universal

Before Aharonov–van Dam, it was not obvious that adiabatic quantum computing could do everything the circuit model could. Early AQC papers gave efficient adiabatic algorithms for specific problems (unstructured search, certain optimisation instances), but a general recipe for simulating arbitrary circuits was missing. The history-state construction closes this gap. Whatever you can compute with gates, you can compute by Hamiltonian engineering.

AQC is not more universal

The equivalence goes both ways. Whatever you can compute adiabatically, you can compute with gates, with only polynomial overhead. AQC does not secretly solve problems that circuits cannot. In particular:

The "barren plateau" analogue

Readers who have met the barren-plateau problem in variational quantum algorithms may notice a parallel. Variational circuits suffer from exponentially-vanishing gradients on random parameterisations — an obstacle to training. AQC suffers from exponentially-vanishing spectral gaps on hard problem instances — an obstacle to efficient runtime. Both are specific forms of the same meta-phenomenon: quantum hardness, when translated between formulations, becomes a small number somewhere. In the circuit picture it is circuit depth; in the adiabatic picture it is spectral gap; in the variational picture it is gradient magnitude. There is no free lunch, only different plates at the same table.

Practical consequences

For algorithm designers, the equivalence means you can design in whichever model is easier and translate later. Many optimisation algorithms are more naturally described adiabatically (you are sliding a Hamiltonian), while many number-theoretic algorithms are more naturally described circuit-style (you are composing phase-kickback tricks). Pick the description that fits the problem, and the other description is only a polynomial Trotter away.

For hardware builders, the equivalence means both kinds of machines are legitimate universal quantum computers. D-Wave's quantum annealers are a restricted form of adiabatic hardware; IBM's gate-model superconducting processors are circuit hardware. The universality theorem says a sufficiently powerful adiabatic machine (with arbitrary multi-qubit Hamiltonians, not just 2-local Ising) would be equivalent to a sufficiently powerful gate-model machine. The engineering trade-offs differ, but the computational goalposts are the same.

Common confusions

Going deeper

If you understand that adiabatic quantum computing and the circuit model are polynomially equivalent, that the circuit-to-adiabatic translation uses Kitaev's history-state Hamiltonian whose ground state is a superposition over all snapshots of the circuit, that the adiabatic-to-circuit translation uses Trotter decomposition of the time-evolution operator, and that the equivalence means AQC defines the same complexity class BQP as circuits — you have chapter 179. What follows is the precise spectral-gap analysis, the locality reductions from 5-local to 2-local, the non-stoquastic caveat, and the connection to universal adiabatic complexity beyond BQP.

The spectral gap bound — sketch

For the history-state Hamiltonian H_{\text{hist}} on L+1 clock steps, the gap analysis proceeds via a unitary change of basis. Define

W = \sum_{\ell=0}^{L} |\ell\rangle\langle\ell|_{\text{clock}} \otimes (U_\ell U_{\ell-1} \cdots U_1)_{\text{comp}}.

In the rotated frame, H_{\text{prop}} becomes a clock-only operator:

W^\dagger H_{\text{prop}} W = \sum_\ell \tfrac{1}{2}\left(|\ell\rangle\langle\ell| + |\ell-1\rangle\langle\ell-1| - |\ell-1\rangle\langle\ell| - |\ell\rangle\langle\ell-1|\right)_{\text{clock}} \otimes I_{\text{comp}}.

This is the discrete Laplacian on the path graph with L+1 nodes. Its smallest non-zero eigenvalue is 2 \sin^2(\pi/(2(L+1))) \approx \pi^2/(2 L^2) for large L — the classic 1/L^2 scaling. The full analysis (with H_{\text{init}} and H_{\text{clock}} included) shows the gap of H_{\text{hist}} is at least \Omega(1/L^2); with tighter modifications (Caha, Landau, Nagaj 2018) it can be made \Omega(1/L), matching a natural lower bound.

From 5-local to 2-local — the locality reduction

Kitaev's original construction used 5-local Hamiltonian terms. Kempe, Kitaev, and Regev (2006) improved to 3-local via perturbation gadgets: terms that encode a high-weight interaction in the low-energy sector of a stronger 2-local or 3-local Hamiltonian. Oliveira and Terhal (2008) further reduced to 2-local on a 2D square lattice [2]. The 2-local result is optimal: 1-local Hamiltonians cannot encode any non-trivial computation, since their ground states are products of single-qubit ground states.

The perturbation-gadget idea is elegant. You want a 3-body term h_{ijk}, but your hardware only has 2-body terms. Add an ancilla qubit a and a strong 2-body Hamiltonian \lambda H_{\text{penalty}} that forces a into a specific state in the low-energy sector. Design 2-body couplings between i, j, k, a such that, in the effective low-energy theory (obtained by Schrieffer-Wolff perturbation theory in powers of 1/\lambda), the 3-body term h_{ijk} emerges at second or third order. The ground state and low-lying spectrum of the gadget Hamiltonian reproduces that of the original 3-body Hamiltonian, up to corrections that vanish as \lambda \to \infty.

Stoquastic vs non-stoquastic

A Hamiltonian H is stoquastic (in some basis) if all off-diagonal matrix elements in that basis are real and non-positive. Stoquastic Hamiltonians have special structure: their ground states can be written as superpositions with non-negative coefficients (they look like classical probability distributions), and their thermal states admit efficient classical Monte Carlo simulation.

Here is the catch: the history-state Hamiltonian in its natural form is stoquastic only for a restricted class of circuits. For general universal circuits, H_{\text{hist}} is non-stoquastic. So the Aharonov–van Dam equivalence — that AQC = BQP — relies on non-stoquastic Hamiltonians. If you restrict to stoquastic AQC (which is what D-Wave hardware implements), you get a smaller complexity class, widely conjectured to sit between MA and BQP, called StoqMA.

The practical consequence is sobering: D-Wave's flux-qubit annealers are stoquastic. Even as an adiabatic machine, they are not universal in the full BQP sense. Building a non-stoquastic universal adiabatic machine — with something like XY-type or XZX-type couplings — is a distinct (and harder) hardware engineering challenge.

Beyond BQP — adiabatic complexity classes

The equivalence theorem pins AQC at BQP when the gap is polynomially small. If you allow the gap to be exponentially small and accept an exponentially-long evolution time, adiabatic evolution climbs up to PSPACE or even higher — because you can explore the energy landscape arbitrarily slowly. If you allow the gap to be constant (harder problems forbidden), you land in a strictly smaller class.

These fine-grained distinctions give a rich complexity-theoretic picture:

The lesson: "how slow" is the fundamental knob, and it maps cleanly onto classical-complexity refinements.

The QAOA connection

Farhi, Goldstone, and Gutmann's QAOA can be seen as "adiabatic evolution with a learned Trotter schedule." The p \to \infty limit of QAOA is exactly AQC with the schedule s(t) parametrised by the learned (\gamma_k, \beta_k) parameters. For finite p, QAOA is a small-slice Trotter discretisation of AQC — with the crucial twist that the slice durations are optimised by a classical outer loop, potentially doing better than a naive linear adiabatic schedule. The Aharonov–van Dam equivalence, through the Trotter-decomposition direction, tells you that p must generically scale polynomially with problem size to maintain adiabatic fidelity; the sub-polynomial "low-p QAOA" that NISQ experiments actually run is a gamble on whether the low-depth heuristic beats the asymptotic requirement on specific problem families.

Where this leads next

References

  1. Dorit Aharonov, Wim van Dam, Julia Kempe, Zeph Landau, Seth Lloyd, Oded Regev, Adiabatic Quantum Computation is Equivalent to Standard Quantum Computation (2004, published 2007), SIAM J. Comp.arXiv:quant-ph/0405098.
  2. Roberto Oliveira and Barbara Terhal, The complexity of quantum spin systems on a two-dimensional square lattice (2008) — arXiv:quant-ph/0504050.
  3. Alexei Kitaev, Alexander Shen, Mikhail Vyalyi, Classical and Quantum Computation (2002), AMS Graduate Studies in Mathematics vol. 47 — AMS landing page.
  4. Julia Kempe, Alexei Kitaev, Oded Regev, The Complexity of the Local Hamiltonian Problem (2006), SIAM J. Comp.arXiv:quant-ph/0406180.
  5. Tameem Albash and Daniel A. Lidar, Adiabatic Quantum Computation (2018), Rev. Mod. Phys.arXiv:1611.04471.
  6. Wikipedia, Adiabatic quantum computation.