Nine quantum-inspired operators that make molecular search measurably faster
Our search layer generates 22.9% more usable products per reaction evaluation than the engine it replaced, with a 95% confidence interval of +16.2% to +33.1%, winning in all 24 paired runs. The component behind that predicts whether a reaction will actually fire, and it scores 0.946 AUC on reactant pairs it has never seen, against 0.637 for the hand-written rule table it replaced.
Nine operators are live in that layer. This post covers what each one contributes, how the winning result was measured, and, because the tally matters when you are deciding whether to believe us, the three operators we deleted after they failed controls we had written down in advance.
What quantum-inspired honestly means here
No quantum computer runs anywhere in our stack. Nothing is executed on quantum hardware, nothing is simulated on a GPU, and no result on this site depends on a qubit. What we borrow is the mathematics: state vectors, density matrices, kernels derived from amplitude encoding. Those are linear algebra objects. They run on a CPU.
The distinction matters because the field is full of language that blurs it. A method whose derivation mentions quantum mechanics is not a quantum method, and a paper reporting a quantum kernel is usually reporting a classical computation of a quantum-derived formula. We are in exactly that category, so we say so in those words.
The kernel that works is a radial basis function
Our lifespan model uses a projected quantum kernel. It beat plain Tanimoto similarity by a clear margin, which is why it shipped. In August we sat down to check what it was mathematically, rather than what its derivation said it was.
The answer: it computes exp(-gamma times the squared distance) between L1-normalised count fingerprints. That is a radial basis function, one of the oldest kernels in machine learning. We compared our implementation against the scikit-learn version on our shipped 775 by 2048 reference set.
That is floating-point noise. The two are the same function. The improvement over Tanimoto is real and it stays, but its cause is count-weighting plus a nonlinearity, and both of those are classical ideas that predate quantum machine learning by decades.
The tell had been in our own code comments for months and nobody read it. The genuinely quantum objects we tried, the plain fidelity kernel and the Ochiai kernel, gave no improvement at all. Only the projected form, the one that reduces to an RBF, worked. That pattern is documented elsewhere too: Flórez-Ablan, Roth and Schnabel showed in 2025 that a bandwidth-tuned quantum kernel collapses to an RBF and then to a low-order polynomial.
The one piece that is not reducible
There is an exception, and it is small and specific. Our kernel carries a second term built from two-body co-occurrence statistics, the pairwise version of the one-body marginals that the RBF part uses. Feature co-occurrence is invisible to any function of single-feature values, so this term cannot be reproduced by the RBF no matter how it is tuned.
It moves a ranking metric by a small, measurable amount: +0.0112, with a 95% confidence interval of +0.0083 to +0.0145. The interval excludes zero. It costs two matrix multiplications, using an identity that avoids ever building the full 2048 by 2048 density matrix. If anything in our stack earns the quantum-derived label, it is that term, and it is worth roughly one percent.
The search layer, and what it is searching over
Most molecular generators search over structures. Ours searches over a state that describes ageing: ten tissues crossed with twelve biological hallmarks, twenty-two components in total. The object being designed is a transition between two of those states, from an aged profile toward a younger one, and the molecule is the thing that causes the transition rather than the thing being scored directly.
Nine operators are live in that layer. Every one of them is off by default and has to be switched on deliberately, because an operator that has not been measured on your target is a liability rather than a feature.
The operator that earned a steering role
Exactly one operator is allowed to influence how molecules get built, and it took a large paired experiment to get there. It predicts which reaction template will actually fire on a given reactant, learned from a corpus of past decode attempts including the failures.
On held-out reactant pairs the model had never seen during training, 9,173 of them, it ranks feasibility far better than the hand-written rule table it replaced.
The thing to understand about this operator is what it does not do. It changes which reaction is tried first. It does not remove any reaction from consideration, so the set of molecules the engine can reach is identical with it on or off. It is a scheduling improvement, not a chemistry change.
Measured across 8 targets and 3 seeds, 24 paired runs with a separate process per arm and full state isolation:
- Products generated per reaction evaluation: +22.9%, 95% confidence interval +16.2% to +33.1%, winning in 24 of 24 pairs.
- Reaction calls saved: about 4,675 per run, interval 3,887 to 5,479.
- Molecules delivered: unchanged in 23 of 24 pairs.
Three operators we deleted, and how each one died
The useful part of a research programme is usually the part that did not work. Three operators failed controls we had specified before running them, and the slot each occupied is empty rather than filled with a third variant of the same idea.
The one that only worked at a convenient resolution
The first operator measured how many distinct states a population occupied. It beat its permutation control, but only at grid resolutions coarse enough to collapse 25 molecules into as few as 2 bins. Wherever the molecules stayed distinguishable, it scored exactly 1.000, which is the value that means no effect at all.
Choosing the resolution that produces your result is not analysis. We removed it, built a grid-free replacement with its bandwidth read directly off the data, and that scored below its control too. Removing the arbitrary parameter removed the arbitrariness, not the emptiness.
The one that was memorising
The second cached reaction outcomes keyed on reactant identity. Held out properly, it improved predictions on pairs it had already seen by +0.045 and improved predictions on pairs it had never seen by exactly zero. All of its apparent skill was recall. It survives as a cache, which is an honest description of what it was doing.
The one that was a sparsity artifact
The third is the most instructive. The idea was sound: model which scaffold works with which reaction, the pairwise structure that per-slot models cannot represent by construction. The raw signal looked enormous, up to 2.32 nats of mutual information, hitting the ceiling on every target.
Then we ran the control. Shuffle each slot independently across survivors, preserving the marginal frequencies and the table sparsity exactly while destroying any genuine coupling. The shuffled data scored the same as the real data on 21 targets out of 21.
The structure is not absent from the chemistry. It is not estimable from a few hundred surviving molecules spread across millions of table cells. A mutual-information number on a sparse contingency table will look like strong signal every single time, and without a permutation control you have no way to tell.
What we take from this
Four things, and none of them are about quantum mechanics.
- Write the control before you run the experiment. Every operator we killed was killed by a control specified in advance, and at least two of them would have shipped on the strength of a plausible mechanism and a big-looking number.
- A new mechanism earns its place by adding information the objective did not already contain, not by pushing harder on what it had. The operators that failed were re-weighting existing choices. The one that succeeded supplied feasibility data that was previously being thrown away.
- Check what your method is mathematically, not what its derivation says it is. Ours was an RBF for months before anyone tested that.
- Publish the count that is true. Nine operators are live, three are recorded failures, and writing "twelve quantum algorithms" would be defensible arithmetic and a dishonest sentence.
The same discipline applies to our efficacy claims, which are weaker than we would like and published with their intervals on the benchmarks page. If you want the design pipeline these operators sit inside, that is written up in Methods, and the related problem of knowing when a model is out of its depth is covered in the applicability domain post.
Every figure here comes from a run on our own engine, and the measurement scripts sit in the repository beside the code they measure. Where a result is null, weak, or inconclusive we say so and publish the interval. Full detail is on the benchmarks page, and the design pipeline is written up in Methods. Source is available for audit on request.
