Emerging Systems

Lenses alone do not make a one-ring multiplexer survive noise

FINDINGS  ·  2026-10-10   ring-logicoscillatorslensnegative-result

A lens detunes one oscillator's natural frequency and reshapes the ring's basins without changing its wiring. The question: with the +1-only write, can lenses at one to three sites restore the late-selector multiplexer (b2 ? b1 : b0, selector last) as a noise-robust program on a single 16-oscillator ring?

searchconfigurationsraw multiplexer foundbest robustness
one lens, Δ from −0.65 to 1.2130—
two lenses, 0.1 grid, every offset2,9401 (a ±0.2 dipole)12 / 32
two lenses, 0.05 grid2,200the same dipole12 / 32
three lenses, random24,0001821 / 32
hill-climbs from the best, 0.05 and 0.01 steps8 climbs—21 / 32

"Robustness k / 32" is the largest k for which every table entry the multiplexer needs passed at least k of 32 trials with σ = 0.15 phase noise. Run kick by kick on the ring, the best programs are 100% correct without noise and 81–85% at σ = 0.15. The configurations that reach a multiplexer at all are isolated: the best three-lens setting has no multiplexer at any neighbour 0.01 away.

Why it stalls

Taking every map the instruction class can produce (shift up by one; contractions toward q = 0 that preserve sign) and enumerating abstractly: with five states and a +1-only write, no single erase map suffices. The multiplexer needs two:

On the ring, A is attainable — fully robust with a stronger kick of amplitude 2.6 — but B never appears, raw or robust, in any configuration measured, with kicks up to 3.4. The seven-state route avoids B but runs through q = ±3, the marginal state of a 16-oscillator ring, whose transitions do not survive the noise.

A methods caution found on the way

The fast build retires a lane early when every phase gap stays inside (−π + 0.1, π − 0.1) on two consecutive checks — exact for an undetuned ring. Under several lenses it is not: a three-lens setting showed a perfect 32 / 32 multiplexer in the table that ran at 62.5% with no noise at all, because one "locked" state was still drifting and slipped on the next instruction. Requiring the velocity lock as well removed every high-scoring three-lens result and changed no entry of the single-lens tables it was checked against.

Measured on an Intel Core 3 100U laptop CPU (8 threads, no GPU), gcc 15.3, -O3; the dipole was confirmed with the reference build. Instrument: fork_lens.c; the searches, their inputs and the abstract enumeration are in research/forks/a3.

← Back to the library