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
Generalized singles and doubles ansatz
Drop the rule that an excitation has to move an electron from an occupied orbital into an empty one. Every pair of orbitals may be coupled, so the circuit stops depending on which reference determinant it was built around — a wider variational manifold, paid for in parameters.
Open the full recordFills the slot: Choose a parameterised trial state
Lee et al. define the ansatz by the distinction it removes: "Here the single and double 'excitation' terms do not distinguish between occupied and unoccupied orbitals and they are therefore called 'generalized' singles and doubles (GSD)", and name the result in the same section — "We shall term this ansatz UCCGSD". Its cost is stated beside its sibling's rather than alone: the paper's Table 1 puts UCCGSD at gates and depth against k-UpCCGSD's and . The two are separate ansätze in this paper, compared against each other and against UCCSD, which is why `k-upccgsd-ansatz` and this node are separate rather than one node drawn twice.
The Hamiltonian whose ground state is wanted, together with whatever structure is to be respected — particle number, spin, point-group symmetry, a reference determinant — and the connectivity and native gate set of the device the family has to run on.
Hamiltonian whose eigenvalues are wanted → Parameterised circuit familyexcite any orbital pair, not just occ to virt
The ansatz keeps UCC's exponential form , with the anti-Hermitian combination guaranteeing is unitary, but redefines the cluster operator itself: , where every index runs over the full set of spin-orbitals rather than being split into occupied indices and virtual indices as in UCCSD's . The energy is evaluated variationally, , rather than by the projective CC route. approximation: on real hardware is not applied exactly but Trotterized into a small number of steps, so the state actually prepared is not identical to the one the amplitudes were optimized for
approximation
A circuit family with a fixed structure and free real parameters, together with the number of those parameters — which is the size of the classical search problem handed to the next layer.
None found yet.
given Hamiltonian H on N spin-orbitals, eta electrons
reference state |phi_0> (an eta-electron Slater determinant, e.g. RHF;
a multi-determinantal reference is also usable)
requires a fermion-to-qubit encoding fixed ahead of time, one qubit per spin-orbital
# qubit count is linear in N by construction of the mapping (Sec. Quantum
# Resource Requirements)
# --- cluster operator, over ALL spin-orbital pairs, not just occ-to-virt -------------
T1 = (1/2) sum_pq t^q_p a_q^dag a_p
T2 = (1/4) sum_pqrs t^rs_pq a_r^dag a_s^dag a_q a_p (Eq. 11-12)
# p,q,r,s each range over all N spin-orbitals -- occupied and unoccupied are
# NOT distinguished, unlike UCCSD's T1 = sum(i occ, a virt) t^a_i a_a^dag a_i
# (Eq. 3-5): "the single and double 'excitation' terms do not distinguish
# between occupied and unoccupied orbitals" -- hence 'generalized' (GSD)
T = T1 + T2
# the free amplitudes {t^q_p, t^rs_pq} number as many as the parameters of the
# 2nd-quantized Hamiltonian itself (Sec. Generalized CC, same T as Eq. 11)
# --- anti-Hermitize and exponentiate --------------------------------------------------
generator = T - T^dag
# the anti-Hermitian combination is what makes exp(generator) unitary
U(theta) = exp(T - T^dag) (Eq. 13 -- the paper names this UCCGSD)
|psi(theta)> = U(theta) |phi_0>
# theta is the amplitude vector {t^q_p, t^rs_pq}
# --- what a device actually runs -------------------------------------------------------
U(theta) implemented as Trotter_m[ exp(T - T^dag) ], m a small FIXED step count
# "a practical implementation of UCC relies on approximating e^(T-T^dag) by a
# small number of Trotter steps" -- the circuit prepared is not exactly the
# |psi(theta)> above; it differs from the state the amplitudes were fit to
# (Sec. Quantum Resource Requirements)
# this paper does not derive how large m must be for UCCGSD; it reports that
# even m=1 has been shown elsewhere to reach high accuracy for UCC ansatze
# in general (cited to Ref. 64) -- an external result, not proved here
# --- how the resulting family is scored ------------------------------------------------
E(theta) = <phi_0| U(theta)^dag H U(theta) |phi_0> / <phi_0| U(theta)^dag U(theta) |phi_0>
# evaluated variationally (Eq. 9's form, carried over unchanged from the general
# UCC ansatz Eq. 8 to the UCCGSD ansatz Eq. 13, which only redefines T),
# NOT by the projective coupled-cluster equations (Eq. 6-7)
return the parameterized circuit U(theta) |phi_0>, theta ranging over {t^q_p, t^rs_pq}
# a circuit FAMILY, not yet a converged state -- theta is fit by an outer classical
# loop elsewhere in the pipelineLee, Huggins, Head-Gordon and Whaley cost UCCGSD in Table 1: gates and circuit depth in spin-orbitals, with no dependence on the electron number — against UCCSD's and . Conditions: state preparation only; a fixed number of Trotter steps of rather than the exact exponential; gate count taken as the two-qubit count; and a depth assuming maximum parallelization, no Jordan-Wigner overhead, and a linearly connected qubit array, the last resting on their Refs. 59 and 63, the latter unpublished. Qubits are linear in . Table 9 reports amplitudes per benchmark case, not as a formula: 27 at , 135 at , 434 at for both and ; their classical code stops near 16 spin-orbitals. Nothing bounds the optimization — each one was rerun thirty to two hundred times from random starting points — and the paper gives no absolute shot or measurement count, deferring measurement to McClean et al.
None found yet.
None found yet.
Generalized excitation VQE · Qiskit
From the repository — run, not written up from a paper · unsupported
About
Generalized singles and doubles relax occupied-to-virtual restrictions to enlarge the variational manifold.
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.
- Generalized excitation VQE
Generalized singles and doubles relax occupied-to-virtual restrictions to enlarge the variational manifold.
References
- Generalized Unitary Coupled Cluster Wavefunctions for Quantum Computation
Joonho Lee, William J. Huggins, Martin Head-Gordon, K. Birgitta Whaley · 2018
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.
15 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 — open · opened: what was inside is drawn in its place
- Choose a parameterised trial state — opens into 13 · a way across — click it to open it here
- Minimise the objective over the parameters — opens into 6 · a way across — click it to open it here
- Estimate an observable — opens into 4 · 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