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
Carleman linearization
Lift the quadratic ODE onto the tower , on which the dynamics is exactly linear and each level couples only to its neighbours, then truncate at level . The lift itself is exact; all of the error comes from the truncation. Katz, Muraleedharan and Alase derive it as one instance of Koopman linearization: taking the space of observables to be the polynomials and the basis functions to be the monomials reproduces exactly this tower, in one variable and in .
A narrower version of: Koopman linearization
Open the full recordFills the slot: Embed a nonlinear system into a linear one
Stated for with diagonalizable and eigenvalues ordered , that is, a strictly dissipative linear part. Liu et al. give a convergence theorem for , where . It does not apply when the linear part has an eigenvalue with non-negative real part.
, , , , and a truncation or lift parameter (Carleman truncation level , a phase-space grid, the level-set dimension, the homotopy order).
Nonlinear initial-value problem → Linear ODE systemstack the tensor powers, cut at level N
The lift is the tower of tensor powers: for , started from . Differentiating along leaves each level coupled only to its two neighbours, so the tower obeys with and block-tridiagonal: , the same sum built from , the same sum built from , and . is -sparse and the lifted system has dimension . approximation: The tower is infinite and the truncation is what closes it — the exact level- equation carries the coupling to the level above, and cutting at drops precisely that term, so the residual solves with and carrying that one dropped block. The lift itself is exact; this is where all of the error comes from. assumption: The bound on that residual is Liu et al.'s Lemma 2, which assumes Problem 1's hypotheses — diagonalizable with — together with for and , and is run after the rescaling that leaves unchanged while giving and . Under those, , and for a homogeneous equation () Corollary 1 gives , with the tighter at the first level. That is what the dissipativity condition is for — in the paper's own words, "if , both (4.28) and (4.29) decrease exponentially with , making the truncation efficient", whereas for the same bounds force , so "the truncation order given by Lemma 2 must grow exponentially with ". It is sufficient and not necessary: the paper's own intractability result begins at and leaves open. The level actually taken is with and . Katz, Muraleedharan and Alase reach the same tower from Koopman linearization by taking the polynomials as the observables and the monomials as the basis: for that gives , so truncating at leaves the generator carrying on its superdiagonal and zero elsewhere.
approximationassumption
A linear generator with any inhomogeneity, a lift map, a readout map, and an error bound as a function of the truncation parameter.
None found yet.
given F_2, F_1, F_0(t), u_in, horizon T, error tolerance eps,
for the quadratic ODE du/dt = F_2 u^(x)2 + F_1 u + F_0(t)
# conditions, as this record states them: F_1 diagonalizable with eigenvalues
# ordered Re(lambda_n) <= ... <= Re(lambda_1) < 0, that is, a strictly
# dissipative linear part, and R < 1 for
# R = (1/|Re(lambda_1)|)(||u_in|| ||F_2|| + ||F_0||/||u_in||).
# Liu et al.'s truncation bound also assumes ||F_0|| <= ||F_2||.
rescale u -> gamma u # leaves R unchanged, and gives
# ||F_2|| + ||F_0|| < |Re(lambda_1)| and ||u_in|| < 1
choose the truncation level
N = ceil( log(2 T ||F_2|| / delta) / log(1/||u_in||) ),
with delta = g eps/(1 + eps) and g = ||u(T)||
# the lift: the tower of tensor powers. The lift itself is exact; all of the
# error comes from the truncation
y_j := u^(x)j for j = 1 ... N
y_in = [ u_in ; u_in^(x)2 ; ... ; u_in^(x)N ]
# each level couples only to its neighbours, so A(t) is block tridiagonal
for j = 1 ... N:
A^j_{j+1} = F_2 (x) I^(x)(j-1) + I (x) F_2 (x) I^(x)(j-2) + ... + I^(x)(j-1) (x) F_2
A^j_j = the same sum built from F_1
A^j_{j-1} = the same sum built from F_0(t)
# A is (3 N s)-sparse, and the lifted system has dimension
# Delta = n + n^2 + ... + n^N = O(n^N)
# truncate at level N: the exact level-N equation carries the coupling
# A^N_{N+1} u^(x)(N+1) to the level above, and cutting at N drops that term
emit dy/dt = A(t) y + b(t), y(0) = y_in, b(t) = [ F_0(t) ; 0 ; ... ; 0 ]
# under R < 1 the truncation error decays with N:
# ||u(t) - y_1(t)|| <= ||eta(t)|| <= t N ||F_2|| ||u_in||^(N+1)
# and, for F_0 = 0, ||eta_j(t)|| <= ||u_in||^j R^(N+1-j)
# R < 1 is sufficient, not necessary: the intractability result begins at
# R >= sqrt(2), and 1 <= R < sqrt(2) is open
return y_1 as the approximation of u; the linear system this produces is solved
by the layer below -- on its own the linearization is a change of
variables and buys nothing until something solves the system it producesLiu et al. state the algorithm's complexity as , where is the evolution time, the dimension of the nonlinear system, the allowed error, and a quantity measuring the decay of the solution. It is quoted here as the paper states it: a complexity for the complete algorithm — this embedding together with the linear solver the truncated tower feeds — and not a standalone cost for the linearization, which on its own is a change of variables and buys nothing until something solves the system it produces. The bound holds under the hypothesis recorded above. How the truncation level depends on and is in the paper's full text and is not quoted here.
None found yet.
Liu et al. also prove that the general quadratic ODE problem is intractable for R ≥ √2, so the band 1 ≤ R < √2 is open and must not be described as necessary. Wu, Wang and Li subsequently prove linear convergence with respect to the truncation level under a resonance condition instead of a dissipative one, with numerical experiments on Burgers' equation, Fermi-Pasta-Ulam chains and the Korteweg-de Vries equation; that enlarges the set of systems for which the embedding is known to converge and does not overturn the R ≥ √2 result.
None found yet.
Of the papers cited here, 2 report numerics — nobody has written those up yet.
None found yet.
References
- Efficient quantum algorithm for dissipative nonlinear differential equations
Jin-Peng Liu, Herman Øie Kolden, Hari K. Krovi, Nuno F. Loureiro, Konstantina Trivisa, Andrew M. Childs · 2020
- Quantum Algorithms for Nonlinear Dynamics: Revisiting Carleman Linearization with No Dissipative Conditions
Hsuan-Cheng Wu, Jingyao Wang, Xiantao Li · 2024
- Efficient quantum algorithm for solving differential equations with Fourier nonlinearity via Koopman linearization
Judd Katz, Gopikrishnan Muraleedharan, Abhijeet Alase · 2025
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.
12 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 — open · opened: what was inside is drawn in its place
- Koopman linearization
- Carleman linearization, a narrower version of Koopman linearization
- Carleman-Fourier linearization, a narrower version of Koopman linearization
- Koopman-von Neumann lift to phase-space densities
- Level-set exact linearization
- Homotopy perturbation embedding
- Solve a linear ODE du/dt = A(t)u + b(t) — opens into 9 · 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