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
Folded-spectrum variational eigensolver
Point the same search somewhere other than the bottom. Minimising the variance around a chosen energy makes every eigenstate a minimum and the one nearest that energy the reachable one — so a state can be found without knowing its index, and the bill arrives as a squared Hamiltonian with far more terms to measure.
Open the full recordFills the slot: Estimate an excited-state energyExpand it here — a map of just this
Cadi Tazi and Thom state what it buys and what it costs in the same breath: the method "provides the possibility of directly computing excited states around a selected target energy, using the same ansatz as for the ground state calculation", and, "inspired by the variance-based methods from the Quantum Monte Carlo literature", it "minimizes the energy variance, thus requiring a computationally expensive squared Hamiltonian". The squared operator is the binding cost and they treat it as one: "we alleviate this potentially poor scaling by employing a Pauli grouping procedure, identifying sets of commuting Pauli strings that can be evaluated simultaneously". The target energy is an input, not an output — a state is reached because it is near a number the user chose. Results are "all electronic excited states with chemical accuracy on ideal quantum simulators" for H2 and LiH; no device run is reported.
A Hermitian H reachable as a sum of terms that can be measured separately; a statement of which state is wanted — an index k, a symmetry sector, or a target energy to sit nearest; for most of the methods here, the ground state already solved, and for the deflation route every lower state as well; a target additive error and a shot budget.
Hamiltonian whose excited state is wanted → Parameterised circuit familyChoose a parameterised trial state
FS-VQE keeps the ground-state circuit family and changes only what it acts on; an excited state adds Pauli operators and post-rotation gates, not a new ansatz. The trial state is Trotterised UCC truncated at rank ( is UCCSD), eq. (7) in the paper's own indexing: . Under Jordan-Wigner the compiled circuit carries one Pauli gadget and one angle per retained excitation: three for in STO-3G, depth , CNOTs. approximation: the truncation, not the Trotter split, is the accuracy limit; eq. (6) carries but the implemented is claimed exact under Evangelista et al.'s ordering of excitations, which they adopt, while section VIII A concedes singles and doubles do not generally reach FCI accuracy beyond small systems What this route fixes differently is : the Hartree-Fock determinant gives way to an excited determinant or a spin-symmetrised superposition, for for and for assumption: that reference overlaps the target wavefunction; strongly multi-reference molecules are left open
approximationassumption
Parameterised circuit family → State you can prepareMinimise the objective over the parameters
Over the same angles as a ground-state run this route minimises (eq. 14), not , with an arbitrary target energy given as input. Eq. (13), on every eigenpair, says the folded operator keeps 's eigenstates and folds the eigenvalues about , so its lowest eigenstate is the one whose is nearest ; minimising variationally targets that state approximation: the state reached is an ansatz-limited approximation of that eigenstate. For QASM simulations SPSA does the walking: one random per iteration with a component in every dimension, sampled only at , so evaluations per iteration whatever approximation: every parameter's gradient is approximated from those two measurements alone. In all computations shots follow , , to ; the loop stops at a cost-gradient threshold. is post-processed, not the optimiser's output: refit to a parabola's vertex, then rounded to , or where the cost improves. Along a surface and , with an penalty, , at isolated geometries where the state jumped.
approximation
State you can prepare → Number with an error barEstimate an observable
Inside the loop the scalar read back is , not : the folded operator is expanded as (eq. 15) and each string recovered from counts, with for strings, and otherwise (eq. 24) with on , the post-rotation being a Hadamard on each qubit and an on each qubit. Strings sharing are read from one circuit. Squaring 's -string Hamiltonian gives about strings, cut by Pauli commutation and anti-commutation relations to , then by the qubit-wise grouping used here to evaluations; 's folded strings make QWC groups, or the two general-commuting groups the error-mitigated run measures. Precision is assumption: bounded by a constant at a fixed failure probability, a Chebyshev worst case. The reported QASM energy is a separate readout at shots, (figure 3).
assumption
A scalar estimate — of that eigenvalue, or of the gap between it and the ground state — together with the run budget it consumed. Some methods return a whole low-energy subspace at once and others return one state per run, and that difference is a cost, not a convenience.
None found yet.
given Hamiltonian H, as a weighted sum of Pauli strings h_i P_i
an arbitrary target energy omega, chosen by the user -- not returned,
not fitted, an input like any other
the same Trotterized UCCSD ansatz used for a ground-state VQE run,
applied to a reference determinant |Phi_ref> chosen for the
symmetry sector of the wanted excited state
a shot-budget scheduler, and the SPSA classical optimizer for the
QASM-simulator runs (Sec. VI B)
# the LiH potential curves were run on a statevector simulator
# instead; SPSA is named only for the QASM runs (Sec. VII B)
requires omega closer to the wanted eigenvalue E than to any other -- when it
is not, the loop still converges, just onto the neighbouring state; the
paper reports this as expected behaviour of the method, observed as
jumps between electronic states along a potential energy surface when
two states are close in energy or gradients are large (Sec. VI A 1)
# --- fold the spectrum about omega -------------------------------------------
(H - omega)^2 |Psi> = (E - omega)^2 |Psi> (Eq. 13)
# true for every eigenstate |Psi> of H, for every omega -- proved from
# linearity of the Schrodinger equation, not ansatz- or method-specific
# the folded operator keeps H's eigenstates but reorders the eigenvalues
# around omega, so its LOWEST eigenstate is the one whose E sits
# nearest omega (Sec. III, Fig. 4)
# -- Section III has no lettered subsections; this is body text there
F(theta) = <Psi(theta)| (H - omega)^2 |Psi(theta)> (Eq. 14)
# minimised in place of <H>; this swap is the only change from a
# ground-state VQE -- same ansatz, same reference-state machinery
# --- build the squared operator, then cut it back down ------------------------
square H to form (H - omega)^2 # ~ (#Pauli strings in H)^2
# "the number of Pauli strings primarily obtained is approximately the
# square of the number of terms in H" (Sec. IV B 1)
# e.g. H2O/STO-3G: 1578 strings in H square to about 1578^2 before any
# reduction is applied (Table II, Appendix 2)
reduce via Pauli commutation/anticommutation relations (Sec. IV B 1)
# H2O: down to 111615 strings this way (Table II, Appendix 2)
# the paper reports this reduction gives an EMPIRICAL scaling below
# O(N^6) against the expected O(N^8), a result imported from a
# separate study of a different set of systems and only asserted, not
# derived, to extend to the folded operator here; the paper's own next
# sentence asks for "more formal analyses" (Sec. IV B 1)
partition the reduced strings into simultaneously-diagonalizable groups
# qubit-wise commutativity (QWC): H2O -> 20393 groups under Jordan-
# Wigner, one circuit evaluation each; H2's 24 folded strings -> 9 QWC
# groups (Table II, Appendix 2)
# the coarser general-commutativity (GC) partition used for the
# error-mitigated run cuts H2's 24 strings to just 2 groups,
# G1 (16 strings) and G2 (8 strings) (Eq. 30, Sec. V C)
# -- Sec. V C is "Zero Noise Extrapolation", not the VI C
# post-processing subsections cited further down
# --- VQE loop: minimise F, not <H> --------------------------------------------
repeat until the cost gradient falls below 1e-9: (Sec. VIII A)
prepare |Psi(theta)> = UCCSD(theta) |Phi_ref>
for each Pauli group:
take s shots, s = smax - (smax - smin) * exp(-k * iteration),
smin = 1000, smax = 10000, k > 0 (Eq. 36)
# used for ALL computations in the paper; precision only tightens
# as the run approaches convergence -- early, imprecise
# evaluations are tolerated by design (Sec. VI B 2)
recover the group's Pauli expectation values from one set of counts
sum weighted group expectation values to get F(theta)
theta <- SPSA_step(theta, F)
# perturbs every theta_i at once; F is evaluated only at
# theta+delta and theta-delta -- 2 evaluations per iteration
# REGARDLESS of dim(theta), which is why SPSA is used here (Sec. VI B)
# --- optional: carry a state across a potential-energy-surface scan -----------
if scanning a PES, warm-start point k+1 from point k's converged result:
omega_{k+1} <- E_k ; theta_init_{k+1} <- theta_opt_k (Eq. 32, 33)
# a continuity heuristic added on top of the method, not part of a
# single-geometry FS-VQE run (Sec. VI A)
# requires continuous MO coefficients too: RHF phase jumps are detected
# via P_{k,k+1} = C_k^dagger S_k C_{k+1} and rectified (Eq. 34)
at geometries observed to jump between states, add a penalty to F:
F <- F + eta * |theta_{k-1} - theta_k|, eta = 0.1 (Eq. 35)
# eta = 0.1 is an empirically chosen constant, applied only to "some
# isolated points" in the curve -- not a standing part of the
# loop (Sec. VI A 1)
# --- refine theta after the loop exits ----------------------------------------
sample F at a few points near theta_opt and fit a parabola;
replace theta_opt with its vertex if F improves (Sec. VI C 1)
# rests on UCCSD eigenstates sitting at parabola vertices in the energy
# landscape; the paper calls the gain "usually very low" because the
# optimizer already locates the vertex well, with "a few tenths of a
# percent" gained only in some cases
round any theta_i landing close to 0 or to a fraction of pi;
keep the rounding only if F improves (Sec. VI C 2)
# runs AFTER the quadratic fit, on its output; "usually only improves the
# result very slightly", up to a few hundredths of a percent
take a final measurement at 30000 shots (Sec. VI B 2)
return the energy at theta_opt (nuclear repulsion plus <H> in the optimised
state) and the prepared state |Psi(theta_opt)>
# the exact form of that final-energy expression is read off Figure 3's
# flowchart, whose symbols pdftotext does not extract -- inferred from
# step 1 ("compute nuclear repulsion energy") and Sec. II's <H>, NOT
# quoted; worth a visual check of the figure
# one run returns ONE state near one omega, not a spectrum -- "all excited
# states ... may be obtained by modifying the parameter omega over a wide
# enough range of energies", i.e. scanned by hand (Sec. III)
# nothing in this loop certifies that the converged E is really nearest
# omega rather than a local minimum of F reached by a limited ansatz
# no quantum-device run is reported: NISQ hardware is called "too limited"
# and every result is a simulator result (Sec. VII)Cadi Tazi and Thom count the squared operator directly: forming takes in STO-3G from Pauli strings to , which qubit-wise-commuting grouping under Jordan-Wigner returns to groups, one circuit evaluation each (Table II, section VIII B). That section calls the group count in spin-orbitals, but the figure is their import of Suchsland et al.'s ungrouped string count: empirical, over molecules to qubits, no proved power law, and never established for groups. SPSA costs evaluations per iteration (QASM simulations); for , whose strings fall into two general-commuting groups, one evaluation is two circuits. Each string needs shots at fixed confidence and bounded variance, here rising to . UCCSD depth is . Nothing bounds the iterations: the loop stops on a gradient threshold (section VIII A). The classical Pauli reduction and grouping underneath is NP-hard and, the authors say, not yet scalable.
None found yet.
None found yet.
Folded-spectrum VQE · Qiskit
From the repository — run, not written up from a paper · unsupported
About
Minimizing the squared shifted Hamiltonian targets eigenstates near a chosen energy shift.
Methods
None found yet.
Data
None found yet.
Code
Qiskit
Results
Literature-backed method record; algorithmic scope and evidence boundary reviewed, with no benchmark run claimed.
- Folded-spectrum VQE
Minimizing the squared shifted Hamiltonian targets eigenstates near a chosen energy shift.
References
- Folded Spectrum VQE : A quantum computing method for the calculation of molecular excited states
Lila Cadi Tazi, Alex J.W. Thom · 2023
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.
13 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) — 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