About this map
Sections
What this is
Quantum algorithms are not written from scratch. They are assembled from a small number of reusable steps, and almost every published method is a different route through the same handful of them.
This is a map of those routes. Circles are the things an algorithm can be holding. Lines are the steps that carry you from one to the next. A method is a path across.
Nothing here is generated. Every line was read out of a paper and checked against it.
How to read it
- Something you can hold — a state, a matrix, a circuit, an answer.
- The same, in the middle of a step you have opened.
- A step. Someone has published a way through it.
- A step whose way through has not been pinned to one method.
- A step nothing published fills yet.
- A step you have opened. What is drawn inside it is how it was done.
- There is a record in the repository for this one.
How to move around
- Two fingers move the map. Pinch to zoom, or hold ctrl and scroll.
- Click a step to open it in place — everything else stays where it is.
- Click a name to read the full record without leaving the map.
- Arrow keys move, plus and minus zoom, zero puts it back.
What a line is claiming
A solid line means a paper puts those two steps together and we have the citation. A long-dashed line means the route is recorded but no single method has been named for that step. A short-dashed line means nothing published fills it — the step is real, the way through is not written yet.
A count after a step's name — ×T/h, ×O(κ) — means the route walks that step that many times rather than once. It is the source's own symbol, and the card says what it stands for and what one turn costs. A step with no count is a step no source we read said is repeated, which is not the same as one taken once.
A line drawn nested under another, on the soft shaded band behind it, is a narrower version of the line above it: the same construction, re-analysed or re-tuned, filling the same step. It is why two lines can draw the identical interior and still be two entries. Lines outside the band are alternatives to their neighbours, not versions of them.
The map does not hide the gaps. An empty step is drawn as an empty step.
What is not here yet
The map covers the algorithm literature. The repository covers circuits and primitives. They overlap less than you would expect, and where a method has no record we say so on its page rather than leaving the space blank.
Where something named here does have a record, its name links straight to it.
Method
Linear multistep method, all-at-once encoding
The first quantum algorithm for general linear ODEs. Discretize with a high-order linear multistep method, lay every time step out at once against a clock register so that one state holds the whole history, and solve the resulting sparse linear system with a quantum linear system algorithm. Going high-order is what buys the scaling: plain Euler costs at least here.
Open the full recordFills the slot: Solve a linear ODE du/dt = A(t)u + b(t)Expand it here — a map of just this
Theorem 9 assumes the multistep method is of order and -stable, that is diagonalisable as , and that its eigenvalues all satisfy — so the eigenvalues must sit in a wedge in the left half-plane, and where has an eigenvalue with positive real part the paper's remedy is to "simply subtract a multiple of the identity, and rescale the solution". Two further hypotheses: , which rules out a solution that decays away from its own final value, and . -stability rather than -stability is forced rather than chosen: "the second Dahlquist barrier is that an -stable multistep method must be of order ", and the point of the paper is . **The rigorous result is for constant coefficients**: the Conclusions state that the approach "can also be used to solve linear differential equations with time-dependent coefficients, though the error analysis will be more difficult", so unlike the Dyson and LCHS routes this one does not meet the slot's contract with a proof behind it.
A block-encoding of with a normalization , preparation unitaries for and , the evolution time , and an error tolerance .
Linear ODE system → Linear system Ax = bChoose a time discretization or propagator approximation
What crosses here is a system of rows, and the register that indexes them. The step is Eq. (9), , and the trick that makes one linear system out of a whole evolution is a "Feynman's clock": an added register encoding the time, so that holds the solution at every step rather than at the last one. approximation: The method has order exactly when for the generating polynomials , ; going high-order is the whole point, because Euler at order one forces and "a scaling of the complexity of at least ". assumption: The method is -stable — , Definition 2 — rather than -stable, because the second Dahlquist barrier caps an -stable method at order two; and every eigenvalue of lies in that wedge, with a shift by a multiple of the identity where one does not. **The horizon is doubled on purpose.** Reading the answer off the clock succeeds with probability only , so is held constant over with — "then any measurement result for the time in this interval will give the state corresponding to the solution" — which costs nothing in the scaling of .
approximationassumption
Linear system Ax = b → Solution as a stateQuantum linear solve
The assembled system of Eq. (7) goes to a quantum linear system algorithm — Harrow, Hassidim and Lloyd's, whose runtime Berry quotes as . assumption: The condition number of the assembled system is not the condition number of : Theorem 7 gives , so the clock register's length enters the solve directly, and — the condition number of the eigenvector matrix in — enters in place of any conditioning of itself. approximation: The solver's error is a trace distance on the state it returns, and the two error budgets are tied by ; the argument for that is Eqs. (60)-(70), which bound the post-measurement state against the exact one by and then show . What makes a constant rather than is the doubled horizon of the previous hop, so the two hops are not independent: the discretization pays for the readout. Preparing the right-hand side costs by Lemma 8, and the superposition over times "simply by choosing to be a power of two".
approximationassumption
A state proportional to , or a history state, together with separately stated matrix-query and initial-state-query complexity.
None found yet.
Read in full: 1010.2745 carries no numerics at all. It is a construction and a complexity analysis end to end — Definitions 1 and 2, the stability polynomials, the block system of Eq. (8), and Theorem 9 — with no instance, no simulation and no figure. The register row records that as a full-text read rather than an abstract one.
given A (sparse, constant coefficients), b, x_in, horizon dt, error budget e
choose a linear k-step method of order p that is A(alpha)-stable
# A-stability would cap p at 2 (the second Dahlquist barrier), and the
# whole point of going high-order is p > 2
# alpha must be wide enough that every eigenvalue of A has |arg(-lambda_i)| <= alpha
set N_t = 2*dt/h time steps
# twice the horizon on purpose: x is held constant on [dt, 2dt], so that
# measuring the clock register lands on the answer with probability Omega(1)
# instead of 1/(N_t + 1)
assemble the sparse linear system script_A x_vec = b_vec whose rows are:
row 0: x_0 = x_in
stepping rows: sum_l alpha_l x_{j+l} = h * sum_l beta_l ( A x_{j+l} + b )
holding rows: x_{j+1} - x_j = 0 # the constant tail
hand the system to the layer below
# the solution comes back as one state sum_j |t_j> |x_j> over a clock
# register: the whole history at once, not the final time alone
measure the clock register; keep the outcomes in [dt, 2dt]
# what is left is a state encoding x(dt), to within trace distance eTheorem 9, the main result: calls to the oracles for , and , where is the sparsity, the dimension and the condition number of the eigenvector matrix. Dropping the term for the error in *starting* the multistep method improves the other quantities without changing the scaling: . The Conclusions quote the headline in and alone: . The paper says outright that this is probably not the last word — "it is likely that this is suboptimal, because the lower bound is linear scaling", the no-fast-forwarding bound — and every later route on this slot is an attempt on that gap.
None found yet.
None found yet.
The clock-register linear system $\mathcal{A}\vec{x} = \vec{b}$ (sections III and IV)
- High-order quantum algorithm for solving linear differential equations
Dominic W. Berry · 2010
About
Why a linear system rather than a simulation, in the paper's own order. Section II sets up the alternative first and rejects it: for a general , split into Hermitian and antiHermitian parts and combine the two evolutions by a Lie-Trotter formula, and "it appears to give a complexity that increases exponentially with the time interval " — because the amplitude "must therefore decay exponentially, because we must allow for the maximum eigenvalue of ". That approach also "does not enable simulation of inhomogeneous differential equations". Section III's answer is the trick the rest of the construction rests on: a "Feynman's clock", an additional register encoding the time, so that one state holds the solution at all times rather than the final time alone.
Methods
The system is of Eq. (7), where "each entry of is a block of the dimension of , and each entry of and is a block of the dimension of ". Eq. (8) writes it out for the Euler case with and time-independent: the first block row is against and "sets the initial value, "; the stepping rows are on the subdiagonal against on the diagonal, so that ""; and "the final rows indicate equations where ", the tail that holds constant. Section IV replaces the stepping rows with a general linear multistep method, Eq. (9): , whose stability is read off the generating polynomials and through the roots of : the stability domain is , and the method has order if and only if . Definition 2 is the property the algorithm needs: -stable for means . **The doubling is load-bearing and easy to miss.** Reading the answer off the clock register succeeds with probability only , so the paper solves to with held constant on the second half — "then any measurement result for the time in this interval will give the state corresponding to the solution" — which is what makes in Eq. (69) and costs nothing in the scaling of .
Data
No dataset and no instantiated matrix. , and stay symbolic throughout, reached only through oracles, and the sole concrete display is the five-block-row Euler example of Eq. (8) — drawn to make the block structure legible, with and still symbolic. The one quantitative choice the construction fixes is .
Code
None found yet.
Results
None found yet.
- High-order quantum algorithm for solving linear differential equations
Quantum algorithms for linear differential equations · Qiskit
From the repository — run, not written up from a paper · unsupported
About
Given a first-order linear differential equation d/dt x = A(t)x + b(t) with N-dimensional vectors x and b and an N×N matrix A, and given an initial condition x(0), produce the solution x(t) at a later time t to precision ε, in the sense that the normalized vector x(t)/‖x(t)‖ returned is at distance at most ε from the exact solution.
Methods
None found yet.
Data
None found yet.
Code
Qiskit
Results
Literature record · problem statement and speedup class checked against the Quantum Algorithm Zoo entry · primary reference checked against its arXiv abs page
- Quantum algorithms for linear differential equations
Given a first-order linear differential equation d/dt x = A(t)x + b(t) with N-dimensional vectors x and b and an N×N matrix A, and given an initial condition x(0), produce the solution x(t) at a later time t to precision ε, in the sense that the normalized vector x(t)/‖x(t)‖ returned is at distance at most ε from the exact solution.
References
- High-order quantum algorithm for solving linear differential equations
Dominic W. Berry · 2010
Where the routes meet
11 problems nothing else needs — the places a reader arrives. Open a line to see what is recorded inside it, or click its name to go there.
19 lines have something recorded inside that you have not opened.
Of the routes that have been taken apart, 15 are built entirely from named slots, 15 hand off part of the work and finish the rest themselves, and 20 are one undivided act. None of the three is a defect; they are different things to reuse.
Every line on this figure, in words
The lines on this figure
Solve a nonlinear ODE dy/dt = F(y)
- Embed a nonlinear system into a linear one — opens into 6 · a way across — click it to open it here
- Solve a linear ODE du/dt = A(t)u + b(t) — open · opened: what was inside is drawn in its place
- Linear multistep method, all-at-once encoding — opens into 2 · a way across — click it to open it here
- Taylor propagator, all-at-once encoding — opens into 2 · a way across — click it to open it here
- Chebyshev spectral method, global collocation — opens into 2 · a way across — click it to open it here
- Dyson propagator, all-at-once encoding — opens into 2 · a way across — click it to open it here
- Time-marching with uniform singular value amplification — opens into 2 · a way across — click it to open it here
- LCHS — linear combination of Hamiltonian simulation — opens into 3 · a way across — click it to open it here
- Schrödingerisation (linear PDEs as Schrödinger equations) — opens into 3 · a way across — click it to open it here
- Choose a time discretization or propagator approximation → Quantum linear solve — open
- Choose a time discretization or propagator approximation — opens into 6 · a way across — click it to open it here
- Quantum linear solve — opens into 5 · a way across — click it to open it here
- Simulate Hamiltonian evolution → Estimate an observable — open
- Simulate Hamiltonian evolution — opens into 3 · a way across — click it to open it here
- Estimate an observable — opens into 4 · a way across — click it to open it here
Estimate an excited-state energy
- Variational quantum deflation — opens into 3 · a way across — click it to open it here
- Subspace-search variational eigensolver — opens into 3 · a way across — click it to open it here
- Quantum subspace expansion
- Quantum equation of motion
- Folded-spectrum variational eigensolver — opens into 3 · a way across — click it to open it here
- Penalty-constrained variational eigensolver — opens into 3 · a way across — click it to open it here
- Multistate contracted variational eigensolver — opens into 3 · a way across — click it to open it here
Every step you can open
1 of these have an object recorded in the middle; the rest open into the methods that fill them.
- Solve a nonlinear ODE dy/dt = F(y)
- Replace a spatial domain with a finite grid
- Discretize a PDE into one linear system
- Embed a nonlinear system into a linear one
- Solve a linear ODE du/dt = A(t)u + b(t)
- Recast a non-Hermitian generator as Hamiltonian evolution
- Choose a time discretization or propagator approximation
- Quantum linear solve
- Matrix function
- QSP phase factors
- Polynomial approximation
- Block-encode a matrix
- Prepare an input state
- Amplify a success branch
- Simulate Hamiltonian evolution
- Estimate an observable
- Compile a circuit to a specific device
- Satisfy the hardware connectivity constraint
- Approximate a continuous rotation in a discrete gate set
- Recover a noiseless expectation value by post-processing
- Build logical qubits at a target logical error rate
- Estimate a Hamiltonian's ground-state energy
- Choose a parameterised trial state
- Minimise the objective over the parameters
- Estimate an excited-state energy
- Measure what the machine can actually do
- Recover the period of a periodic function
- Estimate the eigenphase of a unitary
- Find the item a check accepts
- Walk a graph to the vertex you want
- Search a cost Hamiltonian for the assignment it minimises
What is on this map, counted
What is here, counted
147 nodes — 31 slots and 116 methods.
76 of the 147 link to a record in the Atlas, between them naming 89 records. The rest name papers and nothing else: this graph describes work the catalogue has not got yet, and the nodes with no record are the list of what a corpus pass has to go and read.
0 slots have no method recorded, and 32 methods have not been taken apart. Both are shown as what they are rather than left blank.
Every claim here rests on a source. This graph cites 140 papers; they and the 172 the Atlas cites alone are registered in one place, with what each reports and everywhere it is cited from. Papers