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
Penalty-constrained variational eigensolver
Add a term to the objective that punishes the trial state for leaving the symmetry sector you asked for, and the ordinary ground-state search returns that sector's lowest state — an excited state of the whole Hamiltonian whenever the sector is not the one the ground state lives in. Which penalty is used matters: one common form is proved not to work.
Open the full recordFills the slot: Estimate an excited-state energyExpand it here — a map of just this
Kuroiwa and Nakagawa analyse the two penalty forms already in use and separate them: one "works properly in that eigenstates obtained by the VQE with the penalty term reside in the desired symmetry sector", and they "further give a convenient formula to determine the magnitude of the penalty term, which may lead to the faster convergence of the VQE". The other is not a weaker option but a wrong one — they "prove that the other type of penalty terms does not work for obtaining the target state with the desired symmetry in a rigorous sense and even gives completely wrong results in some cases". Two conditions follow. The target symmetry sector has to be known in advance, since it is what the penalty is written against; and this route reaches a symmetry-resolved spectrum rather than the k-th state as such, so it answers "the lowest state with these quantum numbers" and not "the third state overall". Their own framing is that the work "lay[s] the theoretical foundation for the use of the VQE with the penalty terms", validated by numerical simulation.
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
The constraint is not built into the family here. This route prepares an ordinary with and pays for the symmetry in the objective instead, because a symmetry-adapted ansatz "strongly depends on the heuristic knowledge of the symmetry and is not always readily available for generic symmetries". The guarantees are then stated over the whole space — not as a consequence of that choice, but because the purpose is to explore the performance of the cost functions themselves — assumption: the ansatz can represent an arbitrary -qubit state, so with which reduces the parameters to populations on the joint eigenbasis of and . The simulations use finite circuits: a hardware-efficient ansatz of depth and for from , , and a real-valued symmetry-preserving depth-12 ansatz for that conserves the electron number of , so no penalty is set.
assumption
Parameterised circuit family → State you can prepareMinimise the objective over the parameters
The objective here is not the energy. This route minimises — one penalty per conserved quantity commuting with — with either or assumption: the analysis is stated for the lowest state of a sector; VQD enters as the ground-state problem for , so the levels below are 's. For a single the populations give , the spectrum with every out-of-sector level lifted. Ordering and taking as the target index, so that for all , any with returns ; relaxed, over , the smallest gap between distinct eigenvalues of ( for , for ). Since is the unknown, is either estimated by a cheaper classical method () or bounded, from : overestimating still works and only slows convergence, underestimating can move the minimum off the target. The rival is quadratic in the populations where the energy is linear, so it penalises the deviation less; on the tangent edge of the convex envelope its global minimum sits at energy approximation: the target is recovered exactly only as , and only in case (A) with , where is a boundary point of that envelope; in case (B) no suffices.
approximationassumption
State you can prepare → Number with an error barEstimate an observable
Every evaluation of the objective is bought in Pauli measurements, and Eq. (5) makes this route's readout heavier than plain VQE's: beside it must also estimate , an operator that "consists of more Pauli operators than the original does" — given as the main reason , needing only , is cheaper per evaluation. Cost is charged as (cost-function evaluations) (Pauli operators per evaluation): on 8-qubit 's triplet, with BFGS and averaged over ten initial parameter sets, takes measurements at and at , where the residual also degrades from to Ha. The same estimate doubles as a diagnostic: is tracked during the optimisation, and a value that "deviates from 0 drastically" after convergence marks an undershot and a missed sector. assumption: the simulations use exact expectation values and model neither circuit noise nor finite sampling Noise is treated separately: under a global depolarizing channel , — a positive rescaling plus a -independent constant — so its minimiser is unchanged, while 's shifts at .
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 on n qubits and a conserved-quantity observable C with
[H, C] = 0 (particle number N, S^2, S_z, ...) (Sec. II C)
target symmetry sector: an eigenvalue c of C, fixed before the run --
c determines the sector, it is an input here, not an output (Sec. II C)
ordinary ansatz |psi(theta)> = V(theta)|ref>,
V(theta) = V_l(theta_l) ... V_1(theta_1) (Eq. 1-2)
# |ref> is the paper's |psi_0> of Eq. 1, "some reference state" -- one
# FIXED state (|00001111> in the H4 runs, Sec. IV) reused unchanged by
# every round. Renamed here because Sec. II B writes |psi_0> for a
# different object: the converged ground state found earlier.
# no symmetry structure is built into V(theta); the guarantees below
# are then derived assuming this ansatz can reach an ARBITRARY
# n-qubit state, |psi(theta)> = sum_i a_i |i>, because the paper's
# purpose is to study the two cost functions themselves, not a
# specific circuit's reach (Sec. III, Eq. 8)
for an excited state: eigenstates |psi_0>, ..., |psi_{k-1}> already
obtained by earlier rounds of this same procedure (Sec. II B)
requires the target sector known in advance as the scalar c -- this route
resolves a symmetry sector, so it answers "the lowest state with C = c",
not "the k-th state overall" without one; denote that state's energy
E_{i0}, meaning C_i != c for every i < i0 under E_0 <= ... <= E_{2^n-1} (Sec. III)
# --- cost function: penalize deviation from the sector, don't build it in ---------
if excited state k:
L(theta) = LVQD(theta) = <psi(theta)|H|psi(theta)>
+ sum_{i=0}^{k-1} beta_i |<psi_i|psi(theta)>|^2 (Eq. 4)
# equivalently plain VQE against H' = H + sum_i beta_i |psi_i><psi_i|,
# beta_i > 0 chosen only to enforce orthogonality against the
# already-found lower states (Sec. II B)
else:
L(theta) = LVQE(theta) = <psi(theta)|H|psi(theta)> (Eq. 3)
F(theta) = L(theta) + mu_C * <psi(theta)|(C - c)^2|psi(theta)> = F^(1) (Eq. 5)
# the rival form F^(2) = L + mu_C*(<psi|C|psi> - c)^2 is NOT used here:
# proved to miss the target by O(1/mu_C) at every finite mu_C even in
# the best case, and when (c, E_{i0}) sits interior to the (C,E) convex
# envelope, no mu_C -- however large -- recovers it at all (Sec. III B, Eq. 18-23)
# --- set the penalty weight --------------------------------------------------------
# proved sufficient, but needs the full spectrum so is not directly usable:
# mu_C >= max_{i<i0} (E_{i0} - E_i) / (C_i - c)^2 (Eq. 11)
C_min = smallest gap between distinct eigenvalues of C
# 1 for the particle-number operator N; 3/4 for S^2; 1/2 for S_z (Sec. III A)
mu_C_simple = (E_{i0} - E_0) / C_min^2
# a looser but simpler bound than Eq. 11, obtained from E_i >= E_0
# for all i < i0 -- still proved sufficient (Eq. 12-13)
# E_{i0} - E_0 is itself unknown before the run; two ways to fill it in:
mu_C_ce = (E_{i0}_classical - E_0_classical) / C_min^2 # e.g. Hartree-Fock
# or Moeller-Plesset estimates of the two energies (Eq. 14)
mu_C_rough = (2 / C_min^2) * sum_j |c_j| # H = sum_j c_j P_j (Pauli decomposition)
# from the rigorous bound E_{i0} - E_0 <= 2||H|| <= 2 sum_j |c_j| (Eq. 15)
mu_C := mu_C_rough # pick exactly ONE of the three; F^(1) takes a single scalar
# overestimating E_{i0} - E_0 still finds the target, only slower;
# UNDERestimating can move the minimum off the target -- so
# mu_C_rough (never an underestimate) is the safe default (Sec. III A)
# but the paper also says mu_C_rough "may be too large for the fast
# convergence", and that a large mu_C slows the optimizer, so
# mu_C := mu_C_ce is the faster choice where the classical estimate
# can be trusted not to underestimate the gap (Sec. III A, Eq. 15)
# several conserved quantities at once: one term and one mu_C^(l) per
# C^(l), each set by the same formula with its own C_min^(l) (Eq. 16-17)
# --- optimize -----------------------------------------------------------------------
run a classical optimizer on F^(1)(theta) with that mu_C, theta -> theta*
# the paper's own numerics use BFGS on noiseless simulation with exact
# expectation values -- no shot noise, no device noise (Sec. IV)
while optimizing, track <psi(theta)|(C - c)^2|psi(theta)>
# if this has not fallen near 0 by convergence, mu_C was too small and
# the run missed the sector -- raise mu_C and rerun (Sec. III A)
return |psi(theta*)>, F^(1)(theta*) as the estimate of the sector's E_{i0}
# under a global depolarizing channel this minimizer is UNCHANGED -- the noisy
# F^(1) equals (1-p) times F^(1) plus a theta-independent constant, so the
# same theta* minimizes it; F^(2)'s minimizer instead shifts at O(p) (Sec. III C, Eq. 26)Kuroiwa and Nakagawa price penalty-constrained VQE in Pauli measurements — (cost-function evaluations) (Pauli operators per evaluation) — and bound neither factor: the working penalty measures once per conserved quantity, more Pauli operators than alone but never counted, plus overlap terms for the -th state by VQD. Their figures are measured, not proved — 8-qubit triplet, depth-12 symmetry-preserving ansatz, BFGS, noiseless, averaged over ten initial parameter sets. takes Pauli measurements at , rising to at where the residual degrades from to Ha. That cheapest accurate point still exceeds the the unguaranteed needs at , though the ordering reverses in their VQD run. On with BFGS the classically estimated needs evaluations against for the loose bound, which converged less accurately. Every guarantee assumes an ansatz spanning arbitrary -qubit states.
None found yet.
None found yet.
Penalty-based excited-state VQE · Qiskit
From the repository — run, not written up from a paper · unsupported
About
Orthogonality or symmetry penalties augment the energy objective to exclude previously identified sectors.
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.
- Penalty-based excited-state VQE
Orthogonality or symmetry penalties augment the energy objective to exclude previously identified sectors.
References
- Penalty methods for variational quantum eigensolver
Kohdai Kuroiwa, Yuya O. Nakagawa · 2020
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
Compile a circuit to a specific device
- NISQ transpilation (retargetable pass pipeline) — open · opened: what was inside is drawn in its place
- Satisfy the hardware connectivity constraint — opens into 3 · a way across — click it to open it here
- Fault-tolerant compilation (Clifford+T pipeline) — opens into 2 · 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