Cómo comprobamos Syndrome
Una herramienta educativa también puede equivocarse. Antes de publicar una cifra, comparamos lo que calcula Syndrome con lo que calcula el software de referencia que usan los investigadores, con un criterio fijado de antemano.
Qué se compara
El núcleo de Syndrome, el mismo código TypeScript que corre en tu navegador, se ejecuta en Node
sobre una malla de puntos: distancias d = 3, 5 y 7 y ocho valores de p por modelo de ruido. La
misma malla se simula con una referencia independiente en Python que decodifica con PyMatching,
el decodificador de emparejamiento de peso mínimo de referencia, y usa Stim para comprobar que
el modelo de ruido con fallos de medición es el que dice ser.
Las dos partes usan la misma geometría, el mismo modelo de ruido y los mismos pesos enteros en el grafo de emparejamiento, para que comparen exactamente el mismo decodificador. Cada punto se simula hasta acumular al menos 100 fallos lógicos y 10⁵ tiradas, con un tope de 10⁶.
El criterio, fijado antes de mirar
Para cada punto se calcula z, la diferencia entre las dos estimaciones dividida por su error
combinado. La validación pasa si:
- ningún punto tiene
|z| > 3, y - la suma
Σz²sobre los 24 puntos de la malla es menor que 43 (chi-cuadrado con 24 grados de libertad,p > 0,01).
Uno o dos puntos entre 2σ y 3σ son lo esperable entre dos simulaciones correctas; exigir que todos caigan dentro de 2σ haría fallar a dos simulaciones correctas dos de cada tres veces. Cada punto se publica con su intervalo de confianza de Wilson al 95 %.
Con ruido independiente y d = 3 hay además un valor exacto: la tasa de error lógico se calcula
enumerando los 2¹⁸ patrones de error posibles. La simulación de referencia se contrasta con él con
la misma prueba, en los 8 valores de p: |z| ≤ 3 en cada uno y Σz² menor que 20,1
(chi-cuadrado con 8 grados de libertad). El núcleo de Syndrome tiene su propio test contra ese
valor exacto.
Lo que se compara sin estadística
- Pesos mínimos: para 10 000 síndromes por modelo, el peso del emparejamiento que encuentra Syndrome tiene que ser exactamente igual al de PyMatching.
- Veredictos con fallos de medición: para 10 000 síndromes, el mismo peso y el mismo efecto lógico de la corrección (se admiten como mucho 5 discrepancias, listadas una a una).
Resultado de la validación
Validación del 17 de octubre de 2026, según el informe de validación de Syndrome: pasa con los dos modelos.
- Ruido independiente X/Z:
max |z|= 1,55 yΣz²= 18,51; pesos mínimos iguales en 10 000 de 10 000. - Ruido fenomenológico:
max |z|= 2,17 yΣz²= 20,34; pesos mínimos iguales en 10 000 de 10 000 y el mismo efecto lógico en 10 000 de 10 000.
Si algún día la comparación falla, se corrige la simulación, nunca los números: el comparador no ajusta, excluye ni repondera ningún punto. La validación se repite cada vez que cambia el núcleo de Syndrome.
El código
El código de Syndrome, con la referencia y el comparador, tiene licencia AGPL-3.0. El repositorio no es público por ahora.
Fuente de todo lo anterior: el informe de validación de Syndrome, generado el 17 de octubre de 2026, y las convenciones físicas y estadísticas fijadas en el repositorio de Syndrome (geometría del código, pesos del decodificador, modelos de ruido y criterio de validación). Lo que dice la gráfica con esas cifras: Qué dice la gráfica de Syndrome.