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
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/.
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
| Document | What it answers |
|---|---|
| docs/01-quantum-applications-survey.md | What 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.md | Which simulator libraries are alive, versions, Python 3.12–3.14 and Apple Silicon wheel status, and what we picked |
| docs/03-novel-ideas-catalog.md | 31 under-explored application ideas, each laptop-simulable and paper-sized — all 31 now implemented (status table at the top) |
| docs/EXPERIMENT_CONTRACT.md | The rules every experiment folder follows |
| docs/04-cross-experiment-findings.md | What 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.md | Where 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 |
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
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.
| # | Experiment | Primitive | Verdict (honest) |
|---|---|---|---|
| 01 | QAOA MaxCut scaling | QAOA, warm start, GW SDP | Angle 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 |
| 02 | Flakiness-aware test selection | QUBO, QAOA, SA | The 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) |
| 03 | Join ordering as a QUBO | QUBO encodings, QAOA warm start, DP/GA | The 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 |
| 04 | CI/CD DAG scheduling on heterogeneous runners | time-indexed QUBO (sink / makespan encodings), SA, warm-started QAOA vs FIFO, HEFT, exact MILP | HEFT 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 |
| 05 | Grover on dependency-resolution SAT | Grover, resource counts | Oracle 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 |
| 06 | VQE on H2 and LiH | VQE, UCCSD, barren plateaus | UCCSD 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 |
| 07 | Projected quantum kernels for anomaly detection | quantum kernels, spectrum diagnostics | The 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) |
| 08 | Quantum reservoir computing for DevOps telemetry | QRC, density-matrix sim | QRC 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 |
| 09 | IQAE for VaR and CVaR | amplitude estimation | Query-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 |
| 10 | Grover second-preimage on a toy hash | Grover, in-place reversible oracle, resource extrapolation | Success 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 |
| 11 | QEC decoding as a tabular ML benchmark | Stim, PyMatching, sklearn | Generic 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 |
| 12 | Tensor-network #SAT for product lines | tensor 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 |
| 13 | MPO compression of NN weights | MPO / 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 |
| 14 | Simulated bifurcation for community detection | SB (quantum-inspired), QAOA, Louvain | aSB/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) |
| 15 | Szegedy quantum PageRank at scale | quantum 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( |
| 16 | Clifford QCA as texture/terrain generator | stabilizer 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 |
| 17 | Born machines for rhythm generation | QCBM / IQP Born machine, MMD training | Over 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 |
| 18 | Quantum-inspired SimHash | random-Pauli sign hashes of a feature map, LSH | A 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 |
| 19 | HP lattice protein folding: penalty vs penalty-free QAOA | QAOA with diagonal objectives, exhaustive landscape audit | Feasible 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 |
| 20 | Quantum-walk kernels for code-clone detection | CTQW / 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 |
| 21 | Quantum Betti numbers for dependency cycles | LGZ / QPE on the simplex register, clique complexes | QPE 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) |
| 22 | VQLS for the pressure-Poisson step of a CFD loop | variational quantum linear solver, LCU Laplacian | Nothing 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 |
| 23 | MPS anomaly detection on log features | matrix-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 |
| 24 | Gradient-inversion attacks on quantum federated learning | VQC 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 |
| 25 | Quantum shift-search for barcode demultiplexing | Grover over alignment offsets, barrel-shifter oracle, decision-diagram simulation | Oracle 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 |
| 26 | Register allocation as graph colouring | one-hot QUBO (equality penalties), QAOA, SA, qudit-inspired mean-field | All 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 |
| 27 | Fuzzing seed-corpus minimisation as set cover | exactly-one vs slack QUBO, simulated bifurcation, SA, QAOA vs afl-cmin, greedy, exact ILP on real edge coverage | The 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 |
| 28 | LLVM phase ordering as a permutation QUBO | precedence / position surrogates, one-hot permutation QUBO (SA), warm-started QAOA vs exhaustive opt tables, random search, GA, hill climbing | On 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) |
| 29 | OCC commit ordering as a QUBO | linear-ordering proxy vs Lucas FVS encoding (SA, QAOA) vs FIFO, writers-last, greedy FVS, exact, strict 2PL wait-die | Minimum 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) |
| 30 | Wi-Fi bonded-channel assignment | spectrum-assignment one-hot QUBO (SA, QAOA at 18 qubits) vs first-fit, DSATUR, local search, exact ILP | The 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 |
| 31 | Cold-start seed-item selection as a QUBO | 2nd-order inclusion–exclusion surrogate QUBO (SA, SB, QAOA) vs greedy, popularity, local search, exact ILP; extreme-value estimation | Greedy 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 |
| 32 | Platformer level generation with a quantum reservoir | 8-qubit QRC readout vs Markov 1–3, ESN, WFC; playability filter | An 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 % |
| 33 | DisCoCat readers on commit messages | spider / stairs / cups quantum readers (parameter-shift + Adam) vs TF-IDF LR, embedding MLPs, 3-d linear control on 3 053 real conventional commits | TF-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 |
| 34 | Noise budget for warm-started QAOA | WS-QAOA and standard QAOA under depolarising + readout noise on the density backend; ZNE by unitary folding; readout inversion; warm start and uniform sampling as references | WS-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 |
| 35 | Simulated quantum annealing on penalty QUBOs | path-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 control | Encodings 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 |
| 36 | Random-circuit sampling and XEB at laptop scale | Haar-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 |
| 37 | QEC decoder benchmark | PyMatching 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 shots | On 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 |
| 38 | Hamiltonian simulation: Trotter, entanglement, MPS / sparse Pauli dynamics, noisy device | TFIM 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 folding | First-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).
| Theme | Experiments |
|---|---|
| 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 |
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.
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).
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.
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
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/.
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
| Document | What it answers |
|---|---|
| docs/01-quantum-applications-survey.md | What 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.md | Which simulator libraries are alive, versions, Python 3.12–3.14 and Apple Silicon wheel status, and what we picked |
| docs/03-novel-ideas-catalog.md | 31 under-explored application ideas, each laptop-simulable and paper-sized — all 31 now implemented (status table at the top) |
| docs/EXPERIMENT_CONTRACT.md | The rules every experiment folder follows |
| docs/04-cross-experiment-findings.md | What 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.md | Where 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 |
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
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.
| # | Experiment | Primitive | Verdict (honest) |
|---|---|---|---|
| 01 | QAOA MaxCut scaling | QAOA, warm start, GW SDP | Angle 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 |
| 02 | Flakiness-aware test selection | QUBO, QAOA, SA | The 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) |
| 03 | Join ordering as a QUBO | QUBO encodings, QAOA warm start, DP/GA | The 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 |
| 04 | CI/CD DAG scheduling on heterogeneous runners | time-indexed QUBO (sink / makespan encodings), SA, warm-started QAOA vs FIFO, HEFT, exact MILP | HEFT 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 |
| 05 | Grover on dependency-resolution SAT | Grover, resource counts | Oracle 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 |
| 06 | VQE on H2 and LiH | VQE, UCCSD, barren plateaus | UCCSD 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 |
| 07 | Projected quantum kernels for anomaly detection | quantum kernels, spectrum diagnostics | The 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) |
| 08 | Quantum reservoir computing for DevOps telemetry | QRC, density-matrix sim | QRC 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 |
| 09 | IQAE for VaR and CVaR | amplitude estimation | Query-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 |
| 10 | Grover second-preimage on a toy hash | Grover, in-place reversible oracle, resource extrapolation | Success 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 |
| 11 | QEC decoding as a tabular ML benchmark | Stim, PyMatching, sklearn | Generic 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 |
| 12 | Tensor-network #SAT for product lines | tensor 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 |
| 13 | MPO compression of NN weights | MPO / 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 |
| 14 | Simulated bifurcation for community detection | SB (quantum-inspired), QAOA, Louvain | aSB/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) |
| 15 | Szegedy quantum PageRank at scale | quantum 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( |
| 16 | Clifford QCA as texture/terrain generator | stabilizer 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 |
| 17 | Born machines for rhythm generation | QCBM / IQP Born machine, MMD training | Over 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 |
| 18 | Quantum-inspired SimHash | random-Pauli sign hashes of a feature map, LSH | A 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 |
| 19 | HP lattice protein folding: penalty vs penalty-free QAOA | QAOA with diagonal objectives, exhaustive landscape audit | Feasible 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 |
| 20 | Quantum-walk kernels for code-clone detection | CTQW / 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 |
| 21 | Quantum Betti numbers for dependency cycles | LGZ / QPE on the simplex register, clique complexes | QPE 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) |
| 22 | VQLS for the pressure-Poisson step of a CFD loop | variational quantum linear solver, LCU Laplacian | Nothing 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 |
| 23 | MPS anomaly detection on log features | matrix-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 |
| 24 | Gradient-inversion attacks on quantum federated learning | VQC 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 |
| 25 | Quantum shift-search for barcode demultiplexing | Grover over alignment offsets, barrel-shifter oracle, decision-diagram simulation | Oracle 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 |
| 26 | Register allocation as graph colouring | one-hot QUBO (equality penalties), QAOA, SA, qudit-inspired mean-field | All 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 |
| 27 | Fuzzing seed-corpus minimisation as set cover | exactly-one vs slack QUBO, simulated bifurcation, SA, QAOA vs afl-cmin, greedy, exact ILP on real edge coverage | The 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 |
| 28 | LLVM phase ordering as a permutation QUBO | precedence / position surrogates, one-hot permutation QUBO (SA), warm-started QAOA vs exhaustive opt tables, random search, GA, hill climbing | On 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) |
| 29 | OCC commit ordering as a QUBO | linear-ordering proxy vs Lucas FVS encoding (SA, QAOA) vs FIFO, writers-last, greedy FVS, exact, strict 2PL wait-die | Minimum 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) |
| 30 | Wi-Fi bonded-channel assignment | spectrum-assignment one-hot QUBO (SA, QAOA at 18 qubits) vs first-fit, DSATUR, local search, exact ILP | The 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 |
| 31 | Cold-start seed-item selection as a QUBO | 2nd-order inclusion–exclusion surrogate QUBO (SA, SB, QAOA) vs greedy, popularity, local search, exact ILP; extreme-value estimation | Greedy 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 |
| 32 | Platformer level generation with a quantum reservoir | 8-qubit QRC readout vs Markov 1–3, ESN, WFC; playability filter | An 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 % |
| 33 | DisCoCat readers on commit messages | spider / stairs / cups quantum readers (parameter-shift + Adam) vs TF-IDF LR, embedding MLPs, 3-d linear control on 3 053 real conventional commits | TF-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 |
| 34 | Noise budget for warm-started QAOA | WS-QAOA and standard QAOA under depolarising + readout noise on the density backend; ZNE by unitary folding; readout inversion; warm start and uniform sampling as references | WS-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 |
| 35 | Simulated quantum annealing on penalty QUBOs | path-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 control | Encodings 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 |
| 36 | Random-circuit sampling and XEB at laptop scale | Haar-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 |
| 37 | QEC decoder benchmark | PyMatching 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 shots | On 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 |
| 38 | Hamiltonian simulation: Trotter, entanglement, MPS / sparse Pauli dynamics, noisy device | TFIM 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 folding | First-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).
| Theme | Experiments |
|---|---|
| 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 |
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.
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).
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.