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
Batched ADAPT-VQE ansatz
Keep ADAPT's habit of growing the ansatz from measured gradients, and stop adding exactly one operator per round. Every operator whose gradient is close to the largest goes in together, so the ansatz reaches the same size in far fewer rounds — and it is the rounds, not the operators, that cost measurements.
A narrower version of: ADAPT-VQE adaptive ansatz
Open the full recordFills the slot: Choose a parameterised trial state
Sapova and Fedorov introduce the variant by name — "we introduce batched ADAPT-VQE that adds multiple operators with the largest gradients simultaneously. This approach allows reducing the number of gradient computations while building a compact ansatz" — and state the selection rule as a ratio rather than a fixed count: "At each ADAPT-VQE iteration, we pick all the gradients that differ from the largest by a ratio less than r". What it buys is stated without a number: "Since batched ADAPT-VQE adds multiple operators at each step, it requires sizably fewer iterations to build an ansatz, which considerably reduces the cost of computing gradients". The saving is in iterations, not in the per-iteration measurement — the whole operator pool is still scanned each round, which is why this method carries the same `observable-estimation` step its parent does.
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 familybatch-append operators near the top gradient
At iteration every pool operator is screened by the same gradient used in plain ADAPT-VQE, , the Hamiltonian-operator commutator evaluated on the current ansatz state. approximation: rather than adding only the single largest-gradient operator and re-measuring before the next pick, batched ADAPT-VQE orders the pool by gradient magnitude and appends, in one step, every operator whose gradient falls within a ratio of the largest — so operators later in that ordering are chosen from a gradient snapshot taken before any operator ahead of them in the same batch has actually been added or its coefficient optimized. assumption: is a fixed hyperparameter set once per problem rather than derived from the gradient distribution (the paper uses throughout). The resulting batch is appended to the ansatz in that gradient order, then the full parameter set is re-optimized.
approximationassumption
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.
- Estimate an observable
Given the ability to prepare and a description of an observable , return a classical scalar within of at confidence . The state is never returned; only the number is.
This method asks the estimator for two kinds of gradient, never an energy: the screen that ranks the pool operators, and the parameter gradients the gradient-based SLSQP optimiser consumes when the appended batch is re-optimised — "gradients in the VQE procedure and gradients with respect to the operators in the same way". Batching changes how many operators one screen yields, not what the screen asks for. The route depends on the pool: qubit operators take the parameter-shift rule directly, while "fermionic operators do not allow direct application" of it and go through fermionic-shift gradients, 4 circuit evaluations per gradient approximation: the cheaper fermionic-shift variant, 2 evaluations rather than 4, is bought by "introducing approximations" the paper does not spell out. assumption: the reported fermionic runs use neither, reading the gradient out numerically in one sweep over all circuit parameters — exact against analytic gradients only because these are noiseless statevector simulations, numerical ones being "less robust in the presence of noise".
approximationassumption
given Hamiltonian H (Jordan-Wigner mapped, qubit-tapered), reference state |psi_ref>
(e.g. the UHF state for an open-shell molecule such as O2, Sec. II C 2),
fixed operator pool {A_1, ..., A_M} -- either fermionic UCCSD excitations
or individual qubit Pauli strings, per which ADAPT-VQE variant is run
requires r > 0, a fixed ratio hyperparameter, not re-derived from the gradient
distribution or re-tuned across rounds (the paper sets r = 2 for every
molecule it simulates, Sec. II A)
k = 0, psi_0 = psi_ref, ansatz = identity, theta = []
loop
# --- pool screening, via observable-estimation ---------------------------
for every A_i in the pool:
g_i = <psi_k| [H, A_i] |psi_k>
# the same commutator-gradient screen as plain ADAPT-VQE (Fig. 1,
# Sec. II A); costed through observable-estimation -- parameter-shift
# for qubit-pool operators; the paper's own statevector runs cost
# fermionic-pool operators with numerical gradients (k+1 evaluations),
# not the fermionic-shift analytic alternative it describes and sets
# aside as too slow for the large fermionic gate counts (Sec. IV D)
g_max = max_i |g_i|
# --- batch selection & append ----------------------------------------------
batch_k = { i : g_max / |g_i| < r }
# "we pick all the gradients that differ from the largest by a ratio less
# than r" -- prose rule only, the paper gives no closed-form equation
# for it (Sec. II A, Fig. 1 caption)
# every g_i above was read off the SAME state psi_k: an operator ranked later
# within batch_k is screened before any operator ranked ahead of it in the
# same batch has actually been appended to the ansatz or had its coefficient
# optimized
ansatz <- ansatz composed with exp(theta_i A_i), i in batch_k,
appended in gradient order
# "we add the operators to the ansatz following the order of computed
# gradients" (Sec. II A) -- direction unstated; largest-first is the
# natural reading, since batch_k is already ranked by |g_i| and
# original ADAPT-VQE always adds the single largest-gradient operator,
# but the paper never writes "decreasing" or "descending"
theta <- [ theta unchanged; new entries for batch_k ]
# "we set initial parameters to optimal values obtained at the previous
# iteration, as was done in the original work" (Sec. IV D) -- only the
# carry-over of the EXISTING entries is stated; the paper does not say
# what the newly appended entries are initialized to
# --- re-optimize the whole ansatz, via observable-estimation ----------------
theta = argmin_theta <psi(theta)| H |psi(theta)> via SLSQP
# gradients for this optimization are the same observable-estimation
# call used for screening, not a separate estimator: "we calculate
# gradients in the VQE procedure and gradients with respect to the
# operators in the same way" (Sec. IV D)
psi_{k+1} = psi(theta)
k = k + 1
if E_k has converged: break
# this paper's own reported runs stop "until the energy convergence"
# (Sec. IV E) -- no numeric criterion is given for it. Sec. IV E goes on
# to describe eps_m = 10^-m (Eq. 8) as what the original ADAPT-VQE work
# [27] applies to the gradient-vector norm, and recommends applying it to
# the max gradient component instead as "preferable ... in practical
# simulation" -- a 10^-2 max-component threshold gave energies close to
# VQE-UCCSD with fewer gates. Neither eps_m form is stated to be what
# produced the results reported here.
return U(theta) |psi_ref>, built from batch_0 (union) batch_1 (union) ... (union) batch_{k-1}
# k rounds in place of one operator per round -- each round still screens the
# full pool (see cost)Sapova and Fedorov: batching cuts rounds, not the per-round measurement. "The number of computed energy derivatives at each step equals the operator pool size", and the rule picking every gradient within ratio of the largest (selected from ) needs all of them. Pool size is for spin-orbitals and electrons (fermionic UCCSD), or in system size — a different — for Pauli-string pools, carrying an measurement overhead they attribute to Shkolnikov et al. and Liu et al. rather than derive. Parameter-shift costs 2 circuit evaluations per derivative (their qubit runs); their fermionic runs used numerical gradients, evaluations for a whole -parameter gradient. Each round's inner VQE is capped at 200 SLSQP iterations; nothing bounds the rounds, which stop on a tuned gradient threshold. Savings are measured on STO-3G statevector simulations: "up to an order reduction" in total 1-parameter derivatives, for fermionic and qubit polynomial pools — CO about 3,500 against 30,100, and 75,000 against 555,000 past UCCSD energy — while with a linear pool on H2O at Å batching computed about 10% more.
None found yet.
None found yet.
Batched ADAPT-VQE · Qiskit
From the repository — run, not written up from a paper · unsupported
About
Several high-gradient operators are appended per adaptive iteration to reduce optimization and measurement rounds.
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.
- Batched ADAPT-VQE
Several high-gradient operators are appended per adaptive iteration to reduce optimization and measurement rounds.
References
- Variational quantum eigensolver techniques for simulating carbon monoxide oxidation
M. D. Sapova, A. K. Fedorov · 2021
Where the routes meet
Every circle is drawn once. This step has no smaller object recorded inside it, so the strands between its two circles are the recorded ways of taking it — one strand per method.
13 recorded ways of doing Choose a parameterised trial state; 11 are drawn — the other 2 are refinements with the same internals, folded into their parents' cards. Nothing smaller is recorded inside it, so there is no object in the middle to draw.
Everything on this figure that opens is open.
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
- Unitary coupled-cluster singles and doubles
- Hardware-efficient ansatz
- ADAPT-VQE adaptive ansatz
- qubit-ADAPT-VQE ansatz, a narrower version of ADAPT-VQE adaptive ansatz
- Batched ADAPT-VQE ansatz, a narrower version of ADAPT-VQE adaptive ansatz
- k-UpCCGSD ansatz
- Qubit coupled-cluster ansatz
- Particle-hole coupled-cluster circuits
- Orbital-optimized coupled-cluster circuits
- Symmetry-preserving state-preparation circuits
- Generalized singles and doubles ansatz
- Every line on this figure is one a recorded source takes.
Open the cardRead the full write-up
Where you are
Path
- Estimate an excited-state energy
- Choose a parameterised trial state
Ways through: 13
- Unitary coupled-cluster singles and doubles
- Hardware-efficient ansatz
- ADAPT-VQE adaptive ansatz
- qubit-ADAPT-VQE ansatz
- k-UpCCGSD ansatz
- Qubit coupled-cluster ansatz
- Particle-hole coupled-cluster circuits
- Orbital-optimized coupled-cluster circuits
- Symmetry-preserving state-preparation circuits
- TETRIS-ADAPT-VQE ansatz
- Iterative qubit coupled cluster
- Generalized singles and doubles ansatz
- Batched ADAPT-VQE ansatz
Routes that skip it
No recorded route avoids this step.
Narrower kinds
Nothing recorded is a narrower kind of this.
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