Run 001: what an honest quantum benchmark looks like (and why classical won)
What we ran
One instance of constrained portfolio optimization — pick 5 of 12 assets, balancing expected return against risk — encoded as a QUBO and handed to both contenders at once:
- Classical side: Google’s OR-Tools CP-SAT, the kind of industrial solver a bank actually runs.
- Quantum side: QAOA (depth p=2), simulated on CPU with PennyLane — 12 assets = 12 qubits.
- The referee: the exact optimum, computed by brute force (2¹² = 4,096 candidates). At this size we can afford perfect truth, so nobody grades their own homework.
Same instance. Same 120-second budget. Seed 42 on everything. Library versions frozen and recorded.
The result
CP-SAT found the provably optimal portfolio in a tenth of a second. QAOA, after 120 optimization steps and 2,000 measurement shots, delivered a portfolio 42.8% worse than the optimum — and took 400× longer doing it.
Why this was the expected result
Nobody serious predicts quantum advantage on a 12-variable problem, and we didn’t either — the archive records our hypothesis verbatim: “at 12 assets NO quantum advantage is expected; this run fixes the protocol’s baseline.” Three reasons the classical side dominates here:
- The problem is tiny. 4,096 candidate portfolios is nothing; CP-SAT proves optimality almost instantly.
- QAOA at depth p=2 is a shallow heuristic. Its approximation quality grows with circuit depth — and depth is exactly what’s scarce on both simulators and real hardware.
- The baseline is strong on purpose. Beating a weakened classical solver is the most common sin in quantum benchmarking. A win against a weak baseline is not a win.
Then why run it at all?
Because a verification ledger earns trust with its no’s before its yes’s. This run establishes three assets:
- The protocol, live. Same instance, same budget, exact-optimum referee, fixed seeds, frozen versions — now demonstrated end to end, not described.
- The baseline of the crossover curve. Every future run — 16 assets, 20, deeper circuits, real QPUs — gets compared against this point. Where (and whether) the gap closes is the product.
- Radical reproducibility. The archive records seed, instance parameters and library versions. Run the published harness with those values and you should land on our numbers. If you can’t, tell us — publicly.
Integrity of this entry
The full run lives in a JSON archive sealed with sha256:d0a207d6…bce6c, stored simultaneously in three places (GitHub, Codeberg, and our database) that reference each other. If any copy’s hash differs, that copy is invalid. The archive answers six questions — what, how, when, where, why, who — so this entry can be audited without trusting this post.
What we don’t know
Whether, and where, QAOA-family recipes cross over CP-SAT on portfolio problems as instances grow — that is precisely what the coming runs measure. We also don’t yet know how these CPU-simulator results transfer to noisy hardware. We will publish both, whichever way they land.
Measured content from sealed archive EXP-0012-001. Rosetta Quantum publishes verdicts with reproducible raw data — including the ones quantum loses.