p10node/qcpa

Quantum Computing: Practical Applications — 38 laptop-scale experiments with honest classical baselines, reproducible runs, and IBM hardware results.

Python

2

2 commits

updated Oct 5, 2026

See the code

See what people are saying

README

qcpa — Quantum Computing: Practical Applications

A research monorepo: one small provider-agnostic quantum library, and a set of independent, publishable experiments that each probe a concrete application of quantum or quantum-inspired computing, with honest classical baselines.

Everything runs on a laptop. Every experiment is its own uv environment, its own paper-shaped README, its own reproducible run.py, its own tests, its own committed results/.

Layout

docs/          research surveys (applications, libraries, novel-idea catalog) + the experiment contract
qcore/         provider-agnostic circuit IR + backend registry (the only shared code)
experiments/   NN-slug/ — independent units, each publishable on its own
scripts/       run_all_tests.sh, seed_spread.py

Start here

DocumentWhat it answers
docs/01-quantum-applications-survey.mdWhat quantum computing is actually good for, by industry and algorithm family, with a Proven / Contested / Promising / Hype rating per claim (Sept 2026)
docs/02-simulator-libraries-survey.mdWhich simulator libraries are alive, versions, Python 3.12–3.14 and Apple Silicon wheel status, and what we picked
docs/03-novel-ideas-catalog.md31 under-explored application ideas, each laptop-simulable and paper-sized — all 31 now implemented (status table at the top)
docs/EXPERIMENT_CONTRACT.mdThe rules every experiment folder follows
docs/04-cross-experiment-findings.mdWhat the experiments showed together: the scoreboard (one row per experiment), twelve artefacts that would have looked like quantum wins, where quantum-inspired methods were actually useful, and a 10-point checklist
docs/05-hardware-runs.mdWhere to get QPU time (IBM Open Plan, Braket, Azure, IQM), how to point any experiment at it with --backend ibm, and which three runs to spend a free month on

qcore

One tiny IR, many backends. Swap simulators (or real hardware) with one string.

from qcore import Circuit, Hamiltonian, get_backend

c = Circuit(3).h(0).cx(0, 1).rzz(0.4, 1, 2).measure_all()
be = get_backend()          # best installed: aer > cirq > pennylane > qulacs > numpy
be.run(c, shots=1000).counts
be.expval(c, Hamiltonian([(1.0, "ZZI"), (0.5, "IXX")]))

Backends: numpy (reference), aer, cirq (+qsim), pennylane (+lightning, autodiff), qulacs, stim (Clifford/QEC, 10^5 qubits), quimb (tensor network), density (density matrix: noise channels, reset, mid-circuit measurement), ibm (real hardware via qiskit-ibm-runtime). Also Hamiltonian (Pauli sums, Ising/QUBO/MaxCut constructors), QUBO (brute force, SA via dwave-neal), NoiseModel (depolarising, amplitude/phase damping, thermal relaxation, readout error), optimisers (COBYLA, SPSA, Adam, parameter-shift), bootstrap statistics. Conventions and a cross-backend benchmark are in qcore/README.md.

cd qcore && uv sync --extra all --group dev && uv run pytest -q     # 37 tests

Experiments

Each folder is self-contained: cd experiments/<folder> && uv sync && uv run pytest -q && uv run python run.py. One-line verdicts below are copied from each README's abstract; full tables with confidence intervals are inside.

#ExperimentPrimitiveVerdict (honest)
01QAOA MaxCut scalingQAOA, warm start, GW SDPAngle transfer works (Δ ≤ 0.02); P(optimal) decays ≈ 0.87^n; GW/greedy/SA are exact at n ≤ 20; WS-QAOA inherits its 0.97 from the classical warm start; QP-relaxation warm start is degenerate; P(optimal) is 10⁴× uniform sampling at n = 20 but uniform best-of-2 000 shots already reaches 0.92
02Flakiness-aware test selectionQUBO, QAOA, SAThe standard squared coverage penalty makes the QUBO optimum infeasible on 19/20 suites; after repair, greedy set cover (≤ 1 ms) beats every QUBO method; 2 000 uniformly random selections are feasible more often than QAOA samples at every depth and land within 0.1 of QAOA's repaired ratio; flakiness term only matters on redundant suites (−23 % spurious failures)
03Join ordering as a QUBOQUBO encodings, QAOA warm start, DP/GAThe encoding decides everything: the TSP-like adjacency QUBO tracks C_out with ρ ≈ 0.4 and its exact minimiser is 25–50 % off (catastrophic on star joins); a prefix-log QUBO reaches ρ ≈ 0.9–0.97 and 96–99 % of optimal; QAOA samples a valid permutation ≤ 0.4 % of the time unless warm-started, and then returns the greedy plan; random bit-vectors through the same repair match uniform-init QAOA and n! random permutations match the warm-started rows at zero circuit cost; at cardinality noise σ = 1 exact DP is tied with GA and SA
04CI/CD DAG scheduling on heterogeneous runnerstime-indexed QUBO (sink / makespan encodings), SA, warm-started QAOA vs FIFO, HEFT, exact MILPHEFT is optimal on 94 % of pipelines (0.933 on wide random DAGs) in 0.2 ms and the exact MILP takes ≤ 4 s; FIFO-by-label (what a CI server does) is 35–41 % above optimal; the QUBO's own time discretisation costs 6 % (2-min slots) to 22 % (5-min) before any solver runs, the HEFT horizon prunes 61–90 % of the variables, SA's repaired quality (0.97 / 0.85–0.89) comes from the list-scheduling repair (raw 0.75–0.92); the makespan-variable encoding beats the sink proxy on multi-sink DAGs by 2–4 points; warm-started QAOA returns HEFT; paired reruns with other solver seeds move the stochastic solvers' mean ratios by ≤ 0.003; 50 jobs at 1-min resolution = 9 900–16 600 qubits
05Grover on dependency-resolution SATGrover, resource countsOracle verified to 1e-15; Grover is 1.5–3.3× more expensive than a 60-line DPLL in clause evaluations at n = 6–12; 200-variable instance needs 739 logical qubits and 3.2e34 T gates
06VQE on H2 and LiHVQE, UCCSD, barren plateausUCCSD reaches chemical accuracy at every geometry (H2 1.7e-9 mHa, LiH 3.7e-6 mHa); hardware-efficient ansätze fail on LiH (HEA-L1 ≡ Hartree–Fock, 0.18 % correlation) unless trained with L-BFGS on exact gradients; barren-plateau decay Var ∝ b^n measured with b = 0.86 → 0.50 as depth/observable locality change; 925 k energy evaluations to reproduce what eigvalsh gives exactly
07Projected quantum kernels for anomaly detectionquantum kernels, spectrum diagnosticsThe qubit budget (top-k + PCA) is the bottleneck: kNN on raw bigrams gets AUC 1.00, nothing inside the budget exceeds 0.84; median-bandwidth RBF scores below chance; projected ZZ kernel is best inside the budget (0.77–0.84)
08Quantum reservoir computing for DevOps telemetryQRC, density-matrix simQRC ties an equal-feature-count classical random-feature map (paired bootstrap) and loses on NARMA-10 / Mackey–Glass; AR(10) is the best 1-step forecaster; reservoir state is near-maximally mixed
09IQAE for VaR and CVaRamplitude estimationQuery-scaling slopes −0.50 (MC) vs −0.98 (IQAE) vs −0.91 (MLAE) confirmed; small-amplitude bias up to +15× at a = 0.002, Jeffreys correction removes 84 %; at equal query budget classical MC is still 2–5× more accurate for CVaR
10Grover second-preimage on a toy hashGrover, in-place reversible oracle, resource extrapolationSuccess probability matches sin²((2k+1)θ) to 1e-15 at 14–26 qubits; counted T-count/depth per iteration equals a closed-form model; extrapolated 128-bit-truncated hash needs 2^80 T gates and 510 logical qubits (4×10⁷ years at 10⁹ T/s), 2^96 gates under NIST MAXDEPTH 2^64 — only 2^32 cheaper than classical
11QEC decoding as a tabular ML benchmarkStim, PyMatching, sklearnGeneric classifiers reach 1.1–2.5× MWPM's LER at d = 3 but get worse at d = 5 (never see the threshold); a hybrid given the MWPM bit copies it exactly; learning curve flat after 5k samples
12Tensor-network #SAT for product linestensor networks (quantum-inspired)Exact counts and feature probabilities on 42 feature models, 33/33 agreement with DPLL/brute force; feature-model CNFs have tiny treewidth (width 3–10 up to 120 features, 0.8–4.6 ms to contract) but a 200-line DPLL is faster and the 5 s path search dominates; width explodes (27–32) once cross-tree constraints exceed ~1 per feature
13MPO compression of NN weightsMPO / tensor train (quantum-inspired)Un-healed MPO is the worst structured method at equal parameters; after healing it beats SVD at tight budgets but not magnitude pruning; int4 matches the uncompressed model for free; random-MPO control stays at chance
14Simulated bifurcation for community detectionSB (quantum-inspired), QAOA, LouvainaSB/bSB/dSB reach the brute-force bipartition optimum and beat spectral/SA; none beats Louvain once k > 2; QAOA p ≤ 2 falls well short of a 32-trajectory dSB run; dSB time scales as n^0.98 and an implicit-coupling dSB bisects 10⁵-node planted graphs in 16 s with higher modularity than networkx Louvain (328 s)
15Szegedy quantum PageRank at scalequantum walk (sparse simulation)"Hub suppression" is false at α = 0.85 (hub share grows with N); the real effect is degeneracy lifting (76–89 % of classical ties resolved); quantum ranks are less stable under edge removal; O(
16Clifford QCA as texture/terrain generatorstabilizer QCA (Stim)Stabilizer automata on up to 4096 cells / 64×64 tori in milliseconds; per-cell marginals are exactly quantised to {0, ½, 1} and pairwise mutual information to {0, 1} bit (a single T-gate layer breaks this), so a Clifford QCA is a generator of binary masks with locally-constrained randomness controlled by one knob (fraction of cells in superposition), not a continuous noise field; classical PCG primitive by Gottesman–Knill; real ibm_fez run on 129 qubits (2026-10-05): deterministic cells 94 % → 67 % correct over T = 1 → 8, Stim checks it in 39 ms
17Born machines for rhythm generationQCBM / IQP Born machine, MMD trainingOver 3 training seeds the 16-qubit QCBM's held-out MMD² win over a position-conditioned Markov chain is robust (0.012 vs 0.033, paired CI excludes 0) but its single-seed NLL win does not survive (diff CI includes 0); QCBM trades novelty (0.42 vs 0.76) for fit; an untrained circuit (MMD² 0.094) and a random search with as many evaluations as training steps (0.088) are far worse than both, so the fit comes from training, not the ansatz; exactly classically simulable, no advantage claimed
18Quantum-inspired SimHashrandom-Pauli sign hashes of a feature map, LSHA measurably worse-conditioned SimHash: collision curve flatter than Charikar's exact 1 − θ/π, lower recall per candidate at K = 32, 1 400–11 200× slower to encode; its one different property (RBF-like implied kernel) is a classically computable projected-feature artefact; real-gate maps make ⟨Y⟩ ≡ 0 so a third of weight-1 hashes are constant
19HP lattice protein folding: penalty vs penalty-free QAOAQAOA with diagonal objectives, exhaustive landscape auditFeasible fraction of the turn encoding falls to 8 % at N = 10 (15 qubits); the literature-default penalty λ = 2 has an infeasible/wrong minimiser on half the N ≥ 9 sequences while the penalty-free objective is right on 83–100 % untuned; QAOA p = 3 reaches P(optimal) 1.1–1.5 % at N = 10 (7–9× uniform) and mostly learns feasibility, not ranking; DFS solves all in ≤ 3.6 ms
20Quantum-walk kernels for code-clone detectionCTQW / QJSD graph kernels (classical simulation)Label-aware classical kernels (WL, shortest-path, even bag-of-node-types) reach AUC 1.000 on held-out families with size-matched negatives; the best quantum-walk kernel 0.970 and 0.91 on Type-3 clones, at 10–500× the cost; structure-only spectra are the wrong invariant for clones; corpus is too easy to rank strong kernels
21Quantum Betti numbers for dependency cyclesLGZ / QPE on the simplex register, clique complexesQPE accuracy is set by the spectral gap, not samples (m = 3 ancillas floor at 0.23 error); sizing QPE needs λ_min from the same classical diagonalisation; a Chebyshev-filter classical estimator is more accurate at 6× fewer operator applications; β₁ of dependency graphs at n ≤ 10 is mostly a degree-sequence statistic (7/8 inside the rewiring null)
22VQLS for the pressure-Poisson step of a CFD loopvariational quantum linear solver, LCU LaplacianNothing accumulates over 50 projection steps (VQLS error stays at 1e-11–1e-9 like the direct solve) but 50 steps cost 1.1×10⁵ cost evaluations ≈ 9.4×10⁷ Hadamard tests vs 167 CG matvecs; the periodic Laplacian LCU has 3N/2 − 1 Pauli terms so one cost evaluation is Θ(unknowns); only L-BFGS on exact gradients trains the 6-qubit system; a random RHS of equal norm raises the best cost from 1e-14 to 0.3–0.4 — it works because the pressure field is smooth
23MPS anomaly detection on log featuresmatrix-product-state density model (quantum-inspired)Bonds matter (χ = 1 → 2: +0.08 AUC) but bond dimension does not (χ = 2…16 flat; effective bond dimension 1.96); a BIC-selected Gaussian mixture beats every MPS (0.894 vs 0.826 AUC) at 12× cheaper scoring; per-site entanglement entropy does not rank feature importance (Spearman 0.05); the MPS-from-data sketch is provably a product-cosine Parzen KDE
24Gradient-inversion attacks on quantum federated learningVQC client, DLG / cosine inversion, Jacobian identifiability"Inherent privacy" decomposes into two classical facts: the readout light cone makes only min(d, 2L − 1) features identifiable, and at full rank a single example is inverted exactly (MSE 0) like the MLP; at B ≥ 4 the VQC resists only because the attack landscape is non-convex; 1 000-shot gradients change nothing, DP σ = 0.1 blocks the VQC but not the MLP
25Quantum shift-search for barcode demultiplexingGrover over alignment offsets, barrel-shifter oracle, decision-diagram simulationOracle A (classical-data) is a compiled lookup table; oracle B (quantum-data, Fredkin barrel shifter + comparator) verified to 1e-15 on statevectors and to shot noise on MQT DDSIM up to 79 qubits in ≤ 32 ms; per-read quantum cost 0.4–4.6 ms at 10⁶ T/s vs 37–67 ns for str.find; N ≤ 16 offsets so √N is irrelevant — DDs are the right validator, not a speedup
26Register allocation as graph colouringone-hot QUBO (equality penalties), QAOA, SA, qudit-inspired mean-fieldAll 45 real (bytecode-liveness) interference graphs are chordal and dense (ω ≈ 7.5); exact spill B&B takes ≤ 0.5 ms; Chaitin–Briggs 97–99 % of optimal, mean-field 97–99 %, SA-QUBO 89–99 % at 100–600× the cost; the equality-constrained QUBO passes the feasibility audit exp02's encoding failed; QAOA needs a warm start to sample any valid allocation, and 2 000 random bitstrings through the same repair are level with QAOA on two of its three instances; solver-seed reruns move the SA / mean-field means by ≤ 0.008 but the 3-instance QAOA ratio by −0.14
27Fuzzing seed-corpus minimisation as set coverexactly-one vs slack QUBO, simulated bifurcation, SA, QAOA vs afl-cmin, greedy, exact ILP on real edge coverageThe set-cover reductions solve half of 18 corpora outright and force 74 % of every minimum corpus; the ILP takes 0.12 s (1 s at 10 000 seeds, 16–26 s at 100 000); afl-cmin is 1.30× the minimum count (3× on html.parser, 5× at 100 000 seeds) but within 4 % on bytes; the exactly-one encoding's minimiser is not a cover when an edge must be covered twice; slack encoding 4 679 → 70 qubits after reduction; SB/SA reach 0.86–0.94 after repair and never the optimum on the html.parser cores; minimum corpora differ by ≤ 0.01 Jaccard, so fair sampling has nothing to choose between
28LLVM phase ordering as a permutation QUBOprecedence / position surrogates, one-hot permutation QUBO (SA), warm-started QAOA vs exhaustive opt tables, random search, GA, hill climbingOn 12 C kernels × 720 orders of 6 LLVM 23 passes the worst order is 1.20× the best and 15 % of orders are optimal; the -O2-relative default is 0.88 and never optimal, adjacent-swap hill climbing never leaves it; a pairwise-precedence surrogate explains only R² = 0.69 of the landscape yet its argmin is optimal on 12/12 programs, and the 36-qubit QUBO reproduces it — but random search with 20 evaluations already reaches 0.991 and a GA 1.000 at 120; one fixed consensus order is within 1 % of per-program optimal (leave-one-out 0.984); QAOA at 16 qubits needs the warm start to return a permutation at all (P = 0.01 vs 0.56)
29OCC commit ordering as a QUBOlinear-ordering proxy vs Lucas FVS encoding (SA, QAOA) vs FIFO, writers-last, greedy FVS, exact, strict 2PL wait-dieMinimum aborts = minimum feedback vertex set of the write→read digraph; FIFO aborts 2–5 more transactions per 16-batch than needed, greedy FVS is within 0.4 of optimal in µs; the FVS QUBO is exact and SA solves it on 100 % of batches to 144 qubits, the linear-ordering proxy (edge count, Spearman 0.31–0.95 with aborts) only 20–100 %; optimal ordering saves 25–35 % of re-executions; QAOA needs the greedy warm start (P(valid) 0.002–0.10 vs 0.41–0.91)
30Wi-Fi bonded-channel assignmentspectrum-assignment one-hot QUBO (SA, QAOA at 18 qubits) vs first-fit, DSATUR, local search, exact ILPThe optical RSA QUBO ports exactly (audited) but SA on it reaches 0.52–0.80 of optimal while SA over assignments on the same objective reaches 0.97–1.02 in ≤ 0.2 s; ILP exact to 20 APs (≤ 6 s), times out at 40 where local search beats its incumbent; DSATUR 0.71–0.97; first-fit 6–9× optimal interference; QAOA returns the DSATUR warm start
31Cold-start seed-item selection as a QUBO2nd-order inclusion–exclusion surrogate QUBO (SA, SB, QAOA) vs greedy, popularity, local search, exact ILP; extreme-value estimationGreedy is optimal on 12/12 (ILP ≤ 0.13 s), popularity within 3 %; the QUBO is a truncated inclusion–exclusion whose argmax covers 0.81–0.89 of optimal at ≥ 40 items and whose rank correlation with coverage falls to 0.50 near the optimum; SA/SB reach 0.69–0.85 with 2–4 % of trajectories feasible; Dannenbring / Weibull estimates of the QUBO optimum from 8–21 valid restarts miss by up to 0.22 either way; QAOA returns the greedy warm start
32Platformer level generation with a quantum reservoir8-qubit QRC readout vs Markov 1–3, ESN, WFC; playability filterAn order-2 Markov table is the best next-column model (NLL 1.263 vs 1.296 for the best QRC, 30 000× slower per column); unfiltered the reservoirs are 15–39 % playable vs 58 % Markov-2 and 77 % WFC-3, their extra "novelty" being illegal transitions; under the playability filter all models tie on fidelity (JS ≤ 0.002) and the reservoirs keep 8–20 % novel legal 3-grams vs 1–6 %
33DisCoCat readers on commit messagesspider / stairs / cups quantum readers (parameter-shift + Adam) vs TF-IDF LR, embedding MLPs, 3-d linear control on 3 053 real conventional commitsTF-IDF + LR 0.749 accuracy (0.716 on the readers' 900 messages); only the cups reader generalises (0.664, level with a 3-d linear embedding of equal parameter count), spider/stairs overfit below the majority rate; cups is the only model whose accuracy collapses when words are shuffled (0.664 → 0.495): it encodes adjacency the task does not reward; masking label words changes nothing; 37–61 s per reader vs 0.1 s
34Noise budget for warm-started QAOAWS-QAOA and standard QAOA under depolarising + readout noise on the density backend; ZNE by unitary folding; readout inversion; warm start and uniform sampling as referencesWS-QAOA's P(optimal) edge over its own warm-start product state (1.5–2.5× noiseless) is gone at p1 ≈ 0.006 (p = 1) / 0.004 (p = 2), i.e. after ≈ 1 expected depolarising event per circuit; mitigation moves that crossing 1.6–2.2× but improves estimates, not the samples the device returns; the GW warm start alone is optimal on 9/9 MaxCut instances and beats every quantum arm at every noise level; real ibm_fez run (2026-10-05): the edge over the warm start survives at 9–36 % of its noiseless size and shrinks with Λ_hw
35Simulated quantum annealing on penalty QUBOspath-integral Monte Carlo SQA (own numpy) vs dwave-neal SA, own SA, dSB, uniform null, random-restart local search on the real objective, exact (brute force / HiGHS) on one-hot assignment, slack set cover, linear ordering and a MaxCut controlEncodings are exact on all 12 audited instances; best SQA setting vs SA after repair +0.018 [−0.040, +0.073] (no difference), and SQA loses to its own temperature-annealed control (−0.032) and to random-restart local search at equal wall-clock (−0.038, optimal 36/36); on raw QUBO energy SQA is worse than SA (−0.196) because a fixed transverse-field temperature cannot resolve set-cover's tiny objective coefficients; MaxCut control: every sampler optimal 9/9
36Random-circuit sampling and XEB at laptop scaleHaar-SU(2) + CZ brickwork circuits (1-D chain, 2-D grid, n ≤ 24, ≤ 24 cycles): statevector vs quimb/cotengra amplitude contraction, MPS bond dimension, exact noisy XEB (density backend + Pauli-trajectory MC) vs the global-depolarising model, classical spoofers (marginals, depth truncation, patch sampling, MPS)In contraction cost 1 000 TN amplitudes undercut one statevector by 10^0.5–10^4 up to depth 12–16, but in wall-clock the statevector wins everywhere up to n = 24 and TNs only pay off past the 16 GB memory wall; MPS needs χ > 64 on the grid from depth 8; shallow circuits are not Porter–Thomas (noiseless XEB 7–66) and a post-selected patch sampler beats the noiseless device there; only deep grid circuits (depth 12) make XEB meaningful, where the noisy device beats a χ = 64 MPS only for p1 < 1.2·10⁻³ and the cheap spoofers for p1 < 2.7·10⁻³; the global-depolarising XEB model underestimates the exact value by up to 10⁴×; real ibm_fez run (2026-10-05): f = 0.963 per cycle on a 20-qubit chain, below MPS χ = 64 at every depth
37QEC decoder benchmarkPyMatching MWPM (plain + correlated), BP (min-sum, product-sum), BP+OSD-0 / OSD-CS (ldpc), exact minimum-weight ILP (HiGHS) on stim rotated-surface-code and repetition-code memory experiments and on the bivariate-bicycle [[72,12,6]], [[108,8,10]], [[144,12,12]] codes, paired McNemar tests on identical shotsOn the surface code at d ≥ 5 correlated MWPM and BP+OSD-CS are statistically tied while BP+OSD costs 690–2 900× more per shot (3.9–50 ms vs 6–17 µs); BP alone has no threshold (LER grows with d) and BP+OSD with the default min-sum scaling is 3.5× worse than MWPM at d = 3, p = 10⁻³ (BP converges to heavy corrections so OSD never runs); on the BB codes, where matching does not apply, BP+OSD-CS is 2–6.5× better than OSD-0; the exact ILP beats BP+OSD only at low p and costs 10⁴–10⁵× more; thresholds 0.63–0.88 %; real ibm_fez run (2026-10-05): one-round repetition code below threshold, Λ = 4.0 [3.1, 5.3] at p = 0.028
38Hamiltonian simulation: Trotter, entanglement, MPS / sparse Pauli dynamics, noisy deviceTFIM Trotter (orders 1–2) vs expm_multiply on chains n ≤ 16; S_half and the exact MPS bound χ_ε on n ≤ 20; the kicked-Ising utility circuit on a 21-qubit heavy-hex patch vs quimb MPS (χ ≤ 128), own sparse Pauli dynamics (δ ≥ 10⁻⁴), exact density-matrix noise at n = 8 and Pauli-trajectory noise at n = 21 with ZNE by foldingFirst-order Trotter's error on Z-basis observables is O(dt²) (slope 2.00) and 2× below second order's at equal RZZ count, by time-reversal symmetry, while infidelity scales dt² vs dt⁴; a noisy device's optimal step count is set by ≈ 1 expected error event (k* 32 → 4 for p1 0 → 10⁻²) and Richardson ZNE helps only there; on the 21-qubit heavy-hex patch after 20 kicks at θ_h = 0.8 (S_half 5.5 bits, χ₉₉ > 128) a device with p2 = 10⁻² misses ⟨Z_b⟩ by 0.13 ± 0.02 (ZNE 0.08 ± 0.03), better than MPS χ = 64 (0.16) but 4× worse than sparse Pauli dynamics with 643 terms in 30 ms (0.03); only p2 = 10⁻³ (0.017 ± 0.009) edges the cheap approximations, by 1.5 σ; the exact statevector costs 2 s; real ibm_fez run (11 QPU s, 2026-10-04): raw ⟨Z_b⟩ error 0.037 ± 0.016 at step 20 (ZNE 0.016 ± 0.024), level with SPD, but the magnetisation decays at the calibrated CZ error rate (≈ 2–3 × 10⁻³ per CZ) and is level with MPS χ = 64 — the single-site number is the flattering one; DD made it worse and ibm_marrakesh reproduced ibm_fez within 1–2 σ (2026-10-05)

Every idea in docs/03 now has a folder; 01 and 06 are baseline experiments outside the catalog, 04 was filled last (the number was reserved), 34–37 were added after the catalog on 2026-09-25 (noise budget, quantum-inspired annealing, random-circuit sampling, QEC decoders), and 38 on 2026-10-04 (Hamiltonian simulation: Trotter error, entanglement, MPS / sparse Pauli dynamics cost and a noisy device on the kicked-Ising utility circuit).

By theme

ThemeExperiments
Software-engineering pipelines (compilers, CI, testing, fuzzing, dependencies, code analysis)02, 04, 05, 20, 21, 26, 27, 28, 33
Databases and systems (join ordering, transactions, scheduling, networking)03, 04, 29, 30
Security and privacy (hashes, anomaly detection, federated learning, QEC data)07, 10, 11, 18, 23, 24, 37
Optimisation encodings under audit (QUBO / Ising / permutation)01, 02, 03, 04, 19, 26, 27, 28, 29, 30, 31, 35
Quantum-inspired classical methods that scale (tensor networks, simulated bifurcation, MPS)12, 13, 14, 23, 36
Machine learning and generative models (kernels, reservoirs, Born machines, QNLP)07, 08, 17, 24, 31, 32, 33
Games, media, science and bio (procedural content, PageRank, TDA, CFD, chemistry, alignment, folding)06, 09, 15, 16, 19, 21, 22, 25
Noise, mitigation and quantum-native benchmarks (noisy QAOA, annealing dynamics, RCS / XEB, QEC decoders)34, 35, 36, 37

Ground rules

  • Every experiment reports at least one strong classical baseline and, where it exists, the exact optimum.
  • Findings are reported as measured. Most experiments here show the classical method winning at laptop scale; that is the point. Claims of quantum advantage require scaling evidence, not a small instance (Fraunhofer IAF, Aug 2026).
  • Twelve artefacts that would otherwise have looked like quantum wins are catalogued in docs/04 §2 (a degenerate warm start in 01, an infeasible QUBO encoding in 02 and 27, a mis-specified RBF baseline and a lossy qubit-budget pipeline in 07). See each README §6.

Reproduce everything

scripts/run_all_tests.sh          # qcore + every experiment: uv sync + pytest -q + run.py --quick

Full runs are 20 s – 22 min each on an Apple Silicon laptop (median ≈ 4 min); wall-clocks are in each README §4. Experiment 28 needs Homebrew LLVM's opt only for new pass sets; its evaluation cache is committed.

Requirements

Python 3.13 (3.12–3.14 supported), uv. No GPU. Tested on macOS arm64. Optional: an IBM Quantum account for the ibm backend (uv add qiskit-ibm-runtime inside an experiment; see docs/05 for the free Open Plan and the other providers).

License

Code: Apache License 2.0. Write-ups, docs and figures: CC BY 4.0 (see NOTICE). Please cite the repository if you build on it (CITATION.cff).

Research code; every experiment README states its own limitations.

benchmarks
qaoa
qiskit
quantum-computing
quantum-simulation
qubo
reproducible-research

p10node/qcpa

Quantum Computing: Practical Applications — 38 laptop-scale experiments with honest classical baselines, reproducible runs, and IBM hardware results.

Python

2

2 commits

updated Oct 5, 2026

See the code

See what people are saying

README

qcpa — Quantum Computing: Practical Applications

A research monorepo: one small provider-agnostic quantum library, and a set of independent, publishable experiments that each probe a concrete application of quantum or quantum-inspired computing, with honest classical baselines.

Everything runs on a laptop. Every experiment is its own uv environment, its own paper-shaped README, its own reproducible run.py, its own tests, its own committed results/.

Layout

docs/          research surveys (applications, libraries, novel-idea catalog) + the experiment contract
qcore/         provider-agnostic circuit IR + backend registry (the only shared code)
experiments/   NN-slug/ — independent units, each publishable on its own
scripts/       run_all_tests.sh, seed_spread.py

Start here

DocumentWhat it answers
docs/01-quantum-applications-survey.mdWhat quantum computing is actually good for, by industry and algorithm family, with a Proven / Contested / Promising / Hype rating per claim (Sept 2026)
docs/02-simulator-libraries-survey.mdWhich simulator libraries are alive, versions, Python 3.12–3.14 and Apple Silicon wheel status, and what we picked
docs/03-novel-ideas-catalog.md31 under-explored application ideas, each laptop-simulable and paper-sized — all 31 now implemented (status table at the top)
docs/EXPERIMENT_CONTRACT.mdThe rules every experiment folder follows
docs/04-cross-experiment-findings.mdWhat the experiments showed together: the scoreboard (one row per experiment), twelve artefacts that would have looked like quantum wins, where quantum-inspired methods were actually useful, and a 10-point checklist
docs/05-hardware-runs.mdWhere to get QPU time (IBM Open Plan, Braket, Azure, IQM), how to point any experiment at it with --backend ibm, and which three runs to spend a free month on

qcore

One tiny IR, many backends. Swap simulators (or real hardware) with one string.

from qcore import Circuit, Hamiltonian, get_backend

c = Circuit(3).h(0).cx(0, 1).rzz(0.4, 1, 2).measure_all()
be = get_backend()          # best installed: aer > cirq > pennylane > qulacs > numpy
be.run(c, shots=1000).counts
be.expval(c, Hamiltonian([(1.0, "ZZI"), (0.5, "IXX")]))

Backends: numpy (reference), aer, cirq (+qsim), pennylane (+lightning, autodiff), qulacs, stim (Clifford/QEC, 10^5 qubits), quimb (tensor network), density (density matrix: noise channels, reset, mid-circuit measurement), ibm (real hardware via qiskit-ibm-runtime). Also Hamiltonian (Pauli sums, Ising/QUBO/MaxCut constructors), QUBO (brute force, SA via dwave-neal), NoiseModel (depolarising, amplitude/phase damping, thermal relaxation, readout error), optimisers (COBYLA, SPSA, Adam, parameter-shift), bootstrap statistics. Conventions and a cross-backend benchmark are in qcore/README.md.

cd qcore && uv sync --extra all --group dev && uv run pytest -q     # 37 tests

Experiments

Each folder is self-contained: cd experiments/<folder> && uv sync && uv run pytest -q && uv run python run.py. One-line verdicts below are copied from each README's abstract; full tables with confidence intervals are inside.

#ExperimentPrimitiveVerdict (honest)
01QAOA MaxCut scalingQAOA, warm start, GW SDPAngle transfer works (Δ ≤ 0.02); P(optimal) decays ≈ 0.87^n; GW/greedy/SA are exact at n ≤ 20; WS-QAOA inherits its 0.97 from the classical warm start; QP-relaxation warm start is degenerate; P(optimal) is 10⁴× uniform sampling at n = 20 but uniform best-of-2 000 shots already reaches 0.92
02Flakiness-aware test selectionQUBO, QAOA, SAThe standard squared coverage penalty makes the QUBO optimum infeasible on 19/20 suites; after repair, greedy set cover (≤ 1 ms) beats every QUBO method; 2 000 uniformly random selections are feasible more often than QAOA samples at every depth and land within 0.1 of QAOA's repaired ratio; flakiness term only matters on redundant suites (−23 % spurious failures)
03Join ordering as a QUBOQUBO encodings, QAOA warm start, DP/GAThe encoding decides everything: the TSP-like adjacency QUBO tracks C_out with ρ ≈ 0.4 and its exact minimiser is 25–50 % off (catastrophic on star joins); a prefix-log QUBO reaches ρ ≈ 0.9–0.97 and 96–99 % of optimal; QAOA samples a valid permutation ≤ 0.4 % of the time unless warm-started, and then returns the greedy plan; random bit-vectors through the same repair match uniform-init QAOA and n! random permutations match the warm-started rows at zero circuit cost; at cardinality noise σ = 1 exact DP is tied with GA and SA
04CI/CD DAG scheduling on heterogeneous runnerstime-indexed QUBO (sink / makespan encodings), SA, warm-started QAOA vs FIFO, HEFT, exact MILPHEFT is optimal on 94 % of pipelines (0.933 on wide random DAGs) in 0.2 ms and the exact MILP takes ≤ 4 s; FIFO-by-label (what a CI server does) is 35–41 % above optimal; the QUBO's own time discretisation costs 6 % (2-min slots) to 22 % (5-min) before any solver runs, the HEFT horizon prunes 61–90 % of the variables, SA's repaired quality (0.97 / 0.85–0.89) comes from the list-scheduling repair (raw 0.75–0.92); the makespan-variable encoding beats the sink proxy on multi-sink DAGs by 2–4 points; warm-started QAOA returns HEFT; paired reruns with other solver seeds move the stochastic solvers' mean ratios by ≤ 0.003; 50 jobs at 1-min resolution = 9 900–16 600 qubits
05Grover on dependency-resolution SATGrover, resource countsOracle verified to 1e-15; Grover is 1.5–3.3× more expensive than a 60-line DPLL in clause evaluations at n = 6–12; 200-variable instance needs 739 logical qubits and 3.2e34 T gates
06VQE on H2 and LiHVQE, UCCSD, barren plateausUCCSD reaches chemical accuracy at every geometry (H2 1.7e-9 mHa, LiH 3.7e-6 mHa); hardware-efficient ansätze fail on LiH (HEA-L1 ≡ Hartree–Fock, 0.18 % correlation) unless trained with L-BFGS on exact gradients; barren-plateau decay Var ∝ b^n measured with b = 0.86 → 0.50 as depth/observable locality change; 925 k energy evaluations to reproduce what eigvalsh gives exactly
07Projected quantum kernels for anomaly detectionquantum kernels, spectrum diagnosticsThe qubit budget (top-k + PCA) is the bottleneck: kNN on raw bigrams gets AUC 1.00, nothing inside the budget exceeds 0.84; median-bandwidth RBF scores below chance; projected ZZ kernel is best inside the budget (0.77–0.84)
08Quantum reservoir computing for DevOps telemetryQRC, density-matrix simQRC ties an equal-feature-count classical random-feature map (paired bootstrap) and loses on NARMA-10 / Mackey–Glass; AR(10) is the best 1-step forecaster; reservoir state is near-maximally mixed
09IQAE for VaR and CVaRamplitude estimationQuery-scaling slopes −0.50 (MC) vs −0.98 (IQAE) vs −0.91 (MLAE) confirmed; small-amplitude bias up to +15× at a = 0.002, Jeffreys correction removes 84 %; at equal query budget classical MC is still 2–5× more accurate for CVaR
10Grover second-preimage on a toy hashGrover, in-place reversible oracle, resource extrapolationSuccess probability matches sin²((2k+1)θ) to 1e-15 at 14–26 qubits; counted T-count/depth per iteration equals a closed-form model; extrapolated 128-bit-truncated hash needs 2^80 T gates and 510 logical qubits (4×10⁷ years at 10⁹ T/s), 2^96 gates under NIST MAXDEPTH 2^64 — only 2^32 cheaper than classical
11QEC decoding as a tabular ML benchmarkStim, PyMatching, sklearnGeneric classifiers reach 1.1–2.5× MWPM's LER at d = 3 but get worse at d = 5 (never see the threshold); a hybrid given the MWPM bit copies it exactly; learning curve flat after 5k samples
12Tensor-network #SAT for product linestensor networks (quantum-inspired)Exact counts and feature probabilities on 42 feature models, 33/33 agreement with DPLL/brute force; feature-model CNFs have tiny treewidth (width 3–10 up to 120 features, 0.8–4.6 ms to contract) but a 200-line DPLL is faster and the 5 s path search dominates; width explodes (27–32) once cross-tree constraints exceed ~1 per feature
13MPO compression of NN weightsMPO / tensor train (quantum-inspired)Un-healed MPO is the worst structured method at equal parameters; after healing it beats SVD at tight budgets but not magnitude pruning; int4 matches the uncompressed model for free; random-MPO control stays at chance
14Simulated bifurcation for community detectionSB (quantum-inspired), QAOA, LouvainaSB/bSB/dSB reach the brute-force bipartition optimum and beat spectral/SA; none beats Louvain once k > 2; QAOA p ≤ 2 falls well short of a 32-trajectory dSB run; dSB time scales as n^0.98 and an implicit-coupling dSB bisects 10⁵-node planted graphs in 16 s with higher modularity than networkx Louvain (328 s)
15Szegedy quantum PageRank at scalequantum walk (sparse simulation)"Hub suppression" is false at α = 0.85 (hub share grows with N); the real effect is degeneracy lifting (76–89 % of classical ties resolved); quantum ranks are less stable under edge removal; O(
16Clifford QCA as texture/terrain generatorstabilizer QCA (Stim)Stabilizer automata on up to 4096 cells / 64×64 tori in milliseconds; per-cell marginals are exactly quantised to {0, ½, 1} and pairwise mutual information to {0, 1} bit (a single T-gate layer breaks this), so a Clifford QCA is a generator of binary masks with locally-constrained randomness controlled by one knob (fraction of cells in superposition), not a continuous noise field; classical PCG primitive by Gottesman–Knill; real ibm_fez run on 129 qubits (2026-10-05): deterministic cells 94 % → 67 % correct over T = 1 → 8, Stim checks it in 39 ms
17Born machines for rhythm generationQCBM / IQP Born machine, MMD trainingOver 3 training seeds the 16-qubit QCBM's held-out MMD² win over a position-conditioned Markov chain is robust (0.012 vs 0.033, paired CI excludes 0) but its single-seed NLL win does not survive (diff CI includes 0); QCBM trades novelty (0.42 vs 0.76) for fit; an untrained circuit (MMD² 0.094) and a random search with as many evaluations as training steps (0.088) are far worse than both, so the fit comes from training, not the ansatz; exactly classically simulable, no advantage claimed
18Quantum-inspired SimHashrandom-Pauli sign hashes of a feature map, LSHA measurably worse-conditioned SimHash: collision curve flatter than Charikar's exact 1 − θ/π, lower recall per candidate at K = 32, 1 400–11 200× slower to encode; its one different property (RBF-like implied kernel) is a classically computable projected-feature artefact; real-gate maps make ⟨Y⟩ ≡ 0 so a third of weight-1 hashes are constant
19HP lattice protein folding: penalty vs penalty-free QAOAQAOA with diagonal objectives, exhaustive landscape auditFeasible fraction of the turn encoding falls to 8 % at N = 10 (15 qubits); the literature-default penalty λ = 2 has an infeasible/wrong minimiser on half the N ≥ 9 sequences while the penalty-free objective is right on 83–100 % untuned; QAOA p = 3 reaches P(optimal) 1.1–1.5 % at N = 10 (7–9× uniform) and mostly learns feasibility, not ranking; DFS solves all in ≤ 3.6 ms
20Quantum-walk kernels for code-clone detectionCTQW / QJSD graph kernels (classical simulation)Label-aware classical kernels (WL, shortest-path, even bag-of-node-types) reach AUC 1.000 on held-out families with size-matched negatives; the best quantum-walk kernel 0.970 and 0.91 on Type-3 clones, at 10–500× the cost; structure-only spectra are the wrong invariant for clones; corpus is too easy to rank strong kernels
21Quantum Betti numbers for dependency cyclesLGZ / QPE on the simplex register, clique complexesQPE accuracy is set by the spectral gap, not samples (m = 3 ancillas floor at 0.23 error); sizing QPE needs λ_min from the same classical diagonalisation; a Chebyshev-filter classical estimator is more accurate at 6× fewer operator applications; β₁ of dependency graphs at n ≤ 10 is mostly a degree-sequence statistic (7/8 inside the rewiring null)
22VQLS for the pressure-Poisson step of a CFD loopvariational quantum linear solver, LCU LaplacianNothing accumulates over 50 projection steps (VQLS error stays at 1e-11–1e-9 like the direct solve) but 50 steps cost 1.1×10⁵ cost evaluations ≈ 9.4×10⁷ Hadamard tests vs 167 CG matvecs; the periodic Laplacian LCU has 3N/2 − 1 Pauli terms so one cost evaluation is Θ(unknowns); only L-BFGS on exact gradients trains the 6-qubit system; a random RHS of equal norm raises the best cost from 1e-14 to 0.3–0.4 — it works because the pressure field is smooth
23MPS anomaly detection on log featuresmatrix-product-state density model (quantum-inspired)Bonds matter (χ = 1 → 2: +0.08 AUC) but bond dimension does not (χ = 2…16 flat; effective bond dimension 1.96); a BIC-selected Gaussian mixture beats every MPS (0.894 vs 0.826 AUC) at 12× cheaper scoring; per-site entanglement entropy does not rank feature importance (Spearman 0.05); the MPS-from-data sketch is provably a product-cosine Parzen KDE
24Gradient-inversion attacks on quantum federated learningVQC client, DLG / cosine inversion, Jacobian identifiability"Inherent privacy" decomposes into two classical facts: the readout light cone makes only min(d, 2L − 1) features identifiable, and at full rank a single example is inverted exactly (MSE 0) like the MLP; at B ≥ 4 the VQC resists only because the attack landscape is non-convex; 1 000-shot gradients change nothing, DP σ = 0.1 blocks the VQC but not the MLP
25Quantum shift-search for barcode demultiplexingGrover over alignment offsets, barrel-shifter oracle, decision-diagram simulationOracle A (classical-data) is a compiled lookup table; oracle B (quantum-data, Fredkin barrel shifter + comparator) verified to 1e-15 on statevectors and to shot noise on MQT DDSIM up to 79 qubits in ≤ 32 ms; per-read quantum cost 0.4–4.6 ms at 10⁶ T/s vs 37–67 ns for str.find; N ≤ 16 offsets so √N is irrelevant — DDs are the right validator, not a speedup
26Register allocation as graph colouringone-hot QUBO (equality penalties), QAOA, SA, qudit-inspired mean-fieldAll 45 real (bytecode-liveness) interference graphs are chordal and dense (ω ≈ 7.5); exact spill B&B takes ≤ 0.5 ms; Chaitin–Briggs 97–99 % of optimal, mean-field 97–99 %, SA-QUBO 89–99 % at 100–600× the cost; the equality-constrained QUBO passes the feasibility audit exp02's encoding failed; QAOA needs a warm start to sample any valid allocation, and 2 000 random bitstrings through the same repair are level with QAOA on two of its three instances; solver-seed reruns move the SA / mean-field means by ≤ 0.008 but the 3-instance QAOA ratio by −0.14
27Fuzzing seed-corpus minimisation as set coverexactly-one vs slack QUBO, simulated bifurcation, SA, QAOA vs afl-cmin, greedy, exact ILP on real edge coverageThe set-cover reductions solve half of 18 corpora outright and force 74 % of every minimum corpus; the ILP takes 0.12 s (1 s at 10 000 seeds, 16–26 s at 100 000); afl-cmin is 1.30× the minimum count (3× on html.parser, 5× at 100 000 seeds) but within 4 % on bytes; the exactly-one encoding's minimiser is not a cover when an edge must be covered twice; slack encoding 4 679 → 70 qubits after reduction; SB/SA reach 0.86–0.94 after repair and never the optimum on the html.parser cores; minimum corpora differ by ≤ 0.01 Jaccard, so fair sampling has nothing to choose between
28LLVM phase ordering as a permutation QUBOprecedence / position surrogates, one-hot permutation QUBO (SA), warm-started QAOA vs exhaustive opt tables, random search, GA, hill climbingOn 12 C kernels × 720 orders of 6 LLVM 23 passes the worst order is 1.20× the best and 15 % of orders are optimal; the -O2-relative default is 0.88 and never optimal, adjacent-swap hill climbing never leaves it; a pairwise-precedence surrogate explains only R² = 0.69 of the landscape yet its argmin is optimal on 12/12 programs, and the 36-qubit QUBO reproduces it — but random search with 20 evaluations already reaches 0.991 and a GA 1.000 at 120; one fixed consensus order is within 1 % of per-program optimal (leave-one-out 0.984); QAOA at 16 qubits needs the warm start to return a permutation at all (P = 0.01 vs 0.56)
29OCC commit ordering as a QUBOlinear-ordering proxy vs Lucas FVS encoding (SA, QAOA) vs FIFO, writers-last, greedy FVS, exact, strict 2PL wait-dieMinimum aborts = minimum feedback vertex set of the write→read digraph; FIFO aborts 2–5 more transactions per 16-batch than needed, greedy FVS is within 0.4 of optimal in µs; the FVS QUBO is exact and SA solves it on 100 % of batches to 144 qubits, the linear-ordering proxy (edge count, Spearman 0.31–0.95 with aborts) only 20–100 %; optimal ordering saves 25–35 % of re-executions; QAOA needs the greedy warm start (P(valid) 0.002–0.10 vs 0.41–0.91)
30Wi-Fi bonded-channel assignmentspectrum-assignment one-hot QUBO (SA, QAOA at 18 qubits) vs first-fit, DSATUR, local search, exact ILPThe optical RSA QUBO ports exactly (audited) but SA on it reaches 0.52–0.80 of optimal while SA over assignments on the same objective reaches 0.97–1.02 in ≤ 0.2 s; ILP exact to 20 APs (≤ 6 s), times out at 40 where local search beats its incumbent; DSATUR 0.71–0.97; first-fit 6–9× optimal interference; QAOA returns the DSATUR warm start
31Cold-start seed-item selection as a QUBO2nd-order inclusion–exclusion surrogate QUBO (SA, SB, QAOA) vs greedy, popularity, local search, exact ILP; extreme-value estimationGreedy is optimal on 12/12 (ILP ≤ 0.13 s), popularity within 3 %; the QUBO is a truncated inclusion–exclusion whose argmax covers 0.81–0.89 of optimal at ≥ 40 items and whose rank correlation with coverage falls to 0.50 near the optimum; SA/SB reach 0.69–0.85 with 2–4 % of trajectories feasible; Dannenbring / Weibull estimates of the QUBO optimum from 8–21 valid restarts miss by up to 0.22 either way; QAOA returns the greedy warm start
32Platformer level generation with a quantum reservoir8-qubit QRC readout vs Markov 1–3, ESN, WFC; playability filterAn order-2 Markov table is the best next-column model (NLL 1.263 vs 1.296 for the best QRC, 30 000× slower per column); unfiltered the reservoirs are 15–39 % playable vs 58 % Markov-2 and 77 % WFC-3, their extra "novelty" being illegal transitions; under the playability filter all models tie on fidelity (JS ≤ 0.002) and the reservoirs keep 8–20 % novel legal 3-grams vs 1–6 %
33DisCoCat readers on commit messagesspider / stairs / cups quantum readers (parameter-shift + Adam) vs TF-IDF LR, embedding MLPs, 3-d linear control on 3 053 real conventional commitsTF-IDF + LR 0.749 accuracy (0.716 on the readers' 900 messages); only the cups reader generalises (0.664, level with a 3-d linear embedding of equal parameter count), spider/stairs overfit below the majority rate; cups is the only model whose accuracy collapses when words are shuffled (0.664 → 0.495): it encodes adjacency the task does not reward; masking label words changes nothing; 37–61 s per reader vs 0.1 s
34Noise budget for warm-started QAOAWS-QAOA and standard QAOA under depolarising + readout noise on the density backend; ZNE by unitary folding; readout inversion; warm start and uniform sampling as referencesWS-QAOA's P(optimal) edge over its own warm-start product state (1.5–2.5× noiseless) is gone at p1 ≈ 0.006 (p = 1) / 0.004 (p = 2), i.e. after ≈ 1 expected depolarising event per circuit; mitigation moves that crossing 1.6–2.2× but improves estimates, not the samples the device returns; the GW warm start alone is optimal on 9/9 MaxCut instances and beats every quantum arm at every noise level; real ibm_fez run (2026-10-05): the edge over the warm start survives at 9–36 % of its noiseless size and shrinks with Λ_hw
35Simulated quantum annealing on penalty QUBOspath-integral Monte Carlo SQA (own numpy) vs dwave-neal SA, own SA, dSB, uniform null, random-restart local search on the real objective, exact (brute force / HiGHS) on one-hot assignment, slack set cover, linear ordering and a MaxCut controlEncodings are exact on all 12 audited instances; best SQA setting vs SA after repair +0.018 [−0.040, +0.073] (no difference), and SQA loses to its own temperature-annealed control (−0.032) and to random-restart local search at equal wall-clock (−0.038, optimal 36/36); on raw QUBO energy SQA is worse than SA (−0.196) because a fixed transverse-field temperature cannot resolve set-cover's tiny objective coefficients; MaxCut control: every sampler optimal 9/9
36Random-circuit sampling and XEB at laptop scaleHaar-SU(2) + CZ brickwork circuits (1-D chain, 2-D grid, n ≤ 24, ≤ 24 cycles): statevector vs quimb/cotengra amplitude contraction, MPS bond dimension, exact noisy XEB (density backend + Pauli-trajectory MC) vs the global-depolarising model, classical spoofers (marginals, depth truncation, patch sampling, MPS)In contraction cost 1 000 TN amplitudes undercut one statevector by 10^0.5–10^4 up to depth 12–16, but in wall-clock the statevector wins everywhere up to n = 24 and TNs only pay off past the 16 GB memory wall; MPS needs χ > 64 on the grid from depth 8; shallow circuits are not Porter–Thomas (noiseless XEB 7–66) and a post-selected patch sampler beats the noiseless device there; only deep grid circuits (depth 12) make XEB meaningful, where the noisy device beats a χ = 64 MPS only for p1 < 1.2·10⁻³ and the cheap spoofers for p1 < 2.7·10⁻³; the global-depolarising XEB model underestimates the exact value by up to 10⁴×; real ibm_fez run (2026-10-05): f = 0.963 per cycle on a 20-qubit chain, below MPS χ = 64 at every depth
37QEC decoder benchmarkPyMatching MWPM (plain + correlated), BP (min-sum, product-sum), BP+OSD-0 / OSD-CS (ldpc), exact minimum-weight ILP (HiGHS) on stim rotated-surface-code and repetition-code memory experiments and on the bivariate-bicycle [[72,12,6]], [[108,8,10]], [[144,12,12]] codes, paired McNemar tests on identical shotsOn the surface code at d ≥ 5 correlated MWPM and BP+OSD-CS are statistically tied while BP+OSD costs 690–2 900× more per shot (3.9–50 ms vs 6–17 µs); BP alone has no threshold (LER grows with d) and BP+OSD with the default min-sum scaling is 3.5× worse than MWPM at d = 3, p = 10⁻³ (BP converges to heavy corrections so OSD never runs); on the BB codes, where matching does not apply, BP+OSD-CS is 2–6.5× better than OSD-0; the exact ILP beats BP+OSD only at low p and costs 10⁴–10⁵× more; thresholds 0.63–0.88 %; real ibm_fez run (2026-10-05): one-round repetition code below threshold, Λ = 4.0 [3.1, 5.3] at p = 0.028
38Hamiltonian simulation: Trotter, entanglement, MPS / sparse Pauli dynamics, noisy deviceTFIM Trotter (orders 1–2) vs expm_multiply on chains n ≤ 16; S_half and the exact MPS bound χ_ε on n ≤ 20; the kicked-Ising utility circuit on a 21-qubit heavy-hex patch vs quimb MPS (χ ≤ 128), own sparse Pauli dynamics (δ ≥ 10⁻⁴), exact density-matrix noise at n = 8 and Pauli-trajectory noise at n = 21 with ZNE by foldingFirst-order Trotter's error on Z-basis observables is O(dt²) (slope 2.00) and 2× below second order's at equal RZZ count, by time-reversal symmetry, while infidelity scales dt² vs dt⁴; a noisy device's optimal step count is set by ≈ 1 expected error event (k* 32 → 4 for p1 0 → 10⁻²) and Richardson ZNE helps only there; on the 21-qubit heavy-hex patch after 20 kicks at θ_h = 0.8 (S_half 5.5 bits, χ₉₉ > 128) a device with p2 = 10⁻² misses ⟨Z_b⟩ by 0.13 ± 0.02 (ZNE 0.08 ± 0.03), better than MPS χ = 64 (0.16) but 4× worse than sparse Pauli dynamics with 643 terms in 30 ms (0.03); only p2 = 10⁻³ (0.017 ± 0.009) edges the cheap approximations, by 1.5 σ; the exact statevector costs 2 s; real ibm_fez run (11 QPU s, 2026-10-04): raw ⟨Z_b⟩ error 0.037 ± 0.016 at step 20 (ZNE 0.016 ± 0.024), level with SPD, but the magnetisation decays at the calibrated CZ error rate (≈ 2–3 × 10⁻³ per CZ) and is level with MPS χ = 64 — the single-site number is the flattering one; DD made it worse and ibm_marrakesh reproduced ibm_fez within 1–2 σ (2026-10-05)

Every idea in docs/03 now has a folder; 01 and 06 are baseline experiments outside the catalog, 04 was filled last (the number was reserved), 34–37 were added after the catalog on 2026-09-25 (noise budget, quantum-inspired annealing, random-circuit sampling, QEC decoders), and 38 on 2026-10-04 (Hamiltonian simulation: Trotter error, entanglement, MPS / sparse Pauli dynamics cost and a noisy device on the kicked-Ising utility circuit).

By theme

ThemeExperiments
Software-engineering pipelines (compilers, CI, testing, fuzzing, dependencies, code analysis)02, 04, 05, 20, 21, 26, 27, 28, 33
Databases and systems (join ordering, transactions, scheduling, networking)03, 04, 29, 30
Security and privacy (hashes, anomaly detection, federated learning, QEC data)07, 10, 11, 18, 23, 24, 37
Optimisation encodings under audit (QUBO / Ising / permutation)01, 02, 03, 04, 19, 26, 27, 28, 29, 30, 31, 35
Quantum-inspired classical methods that scale (tensor networks, simulated bifurcation, MPS)12, 13, 14, 23, 36
Machine learning and generative models (kernels, reservoirs, Born machines, QNLP)07, 08, 17, 24, 31, 32, 33
Games, media, science and bio (procedural content, PageRank, TDA, CFD, chemistry, alignment, folding)06, 09, 15, 16, 19, 21, 22, 25
Noise, mitigation and quantum-native benchmarks (noisy QAOA, annealing dynamics, RCS / XEB, QEC decoders)34, 35, 36, 37

Ground rules

  • Every experiment reports at least one strong classical baseline and, where it exists, the exact optimum.
  • Findings are reported as measured. Most experiments here show the classical method winning at laptop scale; that is the point. Claims of quantum advantage require scaling evidence, not a small instance (Fraunhofer IAF, Aug 2026).
  • Twelve artefacts that would otherwise have looked like quantum wins are catalogued in docs/04 §2 (a degenerate warm start in 01, an infeasible QUBO encoding in 02 and 27, a mis-specified RBF baseline and a lossy qubit-budget pipeline in 07). See each README §6.

Reproduce everything

scripts/run_all_tests.sh          # qcore + every experiment: uv sync + pytest -q + run.py --quick

Full runs are 20 s – 22 min each on an Apple Silicon laptop (median ≈ 4 min); wall-clocks are in each README §4. Experiment 28 needs Homebrew LLVM's opt only for new pass sets; its evaluation cache is committed.

Requirements

Python 3.13 (3.12–3.14 supported), uv. No GPU. Tested on macOS arm64. Optional: an IBM Quantum account for the ibm backend (uv add qiskit-ibm-runtime inside an experiment; see docs/05 for the free Open Plan and the other providers).

License

Code: Apache License 2.0. Write-ups, docs and figures: CC BY 4.0 (see NOTICE). Please cite the repository if you build on it (CITATION.cff).

Research code; every experiment README states its own limitations.

benchmarks
qaoa
qiskit
quantum-computing
quantum-simulation
qubo
reproducible-research