HarmonyFidelisHarmonyFidelis
Iniciar sesión
ActualidadGrandes proyectosActoresAcademia

Hamming, 1950: tres bits de control para reparar un error

Un bit alterado no tiene por qué arruinar un mensaje. La construcción de Hamming añade tres controles a cuatro bits de datos para localizar y reparar cualquier inversión única. Su límite es esencial: el código de siete bits no distingue con seguridad un error de dos.

Source: R. W. Hamming — Bell System Technical Journal

Hamming, 1950: tres bits de control para reparar un error

Artículo redactado y traducido por un sistema de IA a partir de las fuentes citadas, con controles automatizados según el método editorial News.

Cubierta conceptual generada por IA: controles estructurados ordenan un flujo perturbado; no es un circuito literal ni prueba de corrección ilimitada.

1. Fiabilidad mediante redundancia estructurada

En abril de 1950, Richard W. Hamming publicó «Error Detecting and Error Correcting Codes» en el Bell System Technical Journal. El problema era práctico: detectar un fallo en un cálculo sin supervisión podía detenerlo; localizarlo y corregirlo podía permitir continuar. El artículo ofrece construcciones binarias explícitas, no una promesa de reparar cualquier daño. [1,2]

La innovación consiste en hacer informativa la redundancia. Repetir tres veces cada uno de cuatro bits requiere doce bits transmitidos. Un código de Hamming utiliza siete para proteger los mismos cuatro datos frente a cualquier inversión única dentro del bloque. Son distintas organizaciones de la redundancia, no una prueba de optimalidad para todos los canales. La compresión elimina redundancia; la corrección añade una forma controlada.

2. Siete posiciones, tres preguntas

Numeremos las posiciones de 1 a 7. Las posiciones 1, 2 y 4 contienen controles; 3, 5, 6 y 7 contienen d₁, d₂, d₃ y d₄. El símbolo ⊕ representa XOR, suma módulo 2: 1 ⊕ 1 = 0. Las ecuaciones imponen paridad par. Los subíndices de p indican posiciones, no el orden de los controles. [1, §3]

p1=d1⊕d2⊕d4p_1=d_1\oplus d_2\oplus d_4p1​=d1​⊕d2​⊕d4​

p2=d1⊕d3⊕d4p_2=d_1\oplus d_3\oplus d_4p2​=d1​⊕d3​⊕d4​

p4=d2⊕d3⊕d4p_4=d_2\oplus d_3\oplus d_4p4​=d2​⊕d3​⊕d4​

El receptor comprueba {1,3,5,7}, {2,3,6,7} y {4,5,6,7}. Un control fallido produce un bit de síndrome 1; uno satisfecho produce 0. Sean s₁, s₂ y s₄. Si hay como máximo una inversión, su posición j es:

j=s1+2s2+4s4j=s_1+2s_2+4s_4j=s1​+2s2​+4s4​

Un síndrome cero indica ausencia de error solo bajo ese supuesto; no certifica universalmente la integridad.

3. Una corrección reproducible

Tomemos los datos 1010. Resultan p₁ = 1, p₂ = 0 y p₄ = 1. La palabra transmitida, leída de izquierda a derecha por posición, es 1011010. Si se invierte el bit 6, se recibe 1011000. El primer control es par y los otros dos son impares. Así, (s₁,s₂,s₄) = (0,1,1) y j = 0 + 2 + 4 = 6. Se vuelve a invertir el bit 6 y se leen las posiciones 3,5,6,7: se recupera 1010.

Una inversión localizada con tres controlesEnviado11203141506170Recibido: bit 6 invertido11203141506070Reparar el bit 611203141506170Síndrome(0,1,1) → 6Datos recuperados1010

Esquema científico generado mediante código; secuencias exactas, no datos experimentales.

Es un cálculo editorial, no una medición experimental. El procedimiento también corrige un bit de control invertido. Supone límites de bloque y posiciones conocidos; insertar o eliminar bits pertenece a otro modelo de error.

4. Por qué funciona

Tres controles binarios tienen ocho resultados: justo los necesarios para distinguir siete posiciones de error único y la ausencia de error. En general, un código binario con r controles y n bits necesita al menos n + 1 síndromes distintos para corregir una inversión:

2r≥n+12^r\ge n+12r≥n+1

La construcción alcanza ese número con n = 2ʳ − 1 y k = n − r datos. Para r = 3, n = 7 y k = 4. La distancia mínima de Hamming, el menor número de posiciones diferentes entre dos palabras válidas, es 3. Una palabra recibida no puede estar a una inversión de dos palabras válidas: estas distarían como máximo 2.

Hay 16 palabras válidas; cada una, junto a sus siete vecinas de una inversión, forma un conjunto. Los conjuntos disjuntos cubren las 128 palabras: 16 × 8 = 128. «Perfecto» describe este empaquetamiento, no fiabilidad ilimitada frente al ruido. [1, §§5,7]

5. La trampa de los dos errores

Dos inversiones siempre dan un síndrome no nulo: un detector que solo señale palabras inválidas puede detectarlas. Sin embargo, interpretarlo siempre como error único puede provocar una corrección incorrecta. Invertir las posiciones 2 y 5 da el mismo síndrome que invertir la 7. Corregir el bit 7 deja tres bits incorrectos y otra palabra válida.

Un octavo bit que haga par la paridad total eleva la distancia mínima a 4. El código extendido permite corregir un error y detectar dos: SECDED. Las decisiones siguientes suponen como máximo dos inversiones; q es la paridad de los ocho bits recibidos. [1, §4]

Síndrome jParidad qAcción bajo el supuesto indicado
00Sin error
01Reparar el bit 8
no nulo1Reparar el bit j
no nulo0Señalar dos errores; no corregir

Tres errores o más quedan fuera de la garantía. Un decodificador SECDED puede corregir erróneamente algunos de ellos; detectar dos errores no equivale a diagnosticar todos los fallos mayores.

6. Una ventaja numérica, con supuestos explícitos

Supongamos inversiones independientes con probabilidad p = 0,01, igual para 0 y 1, codificación y decodificación perfectas y límites de bloque conocidos. Con el código de siete bits y este decodificador, el mensaje recuperado es incorrecto exactamente cuando hay al menos dos inversiones:

Pfail=1−(1−p)7−7p(1−p)6.\begin{aligned} P_{\rm fail}&=1-(1-p)^7\\ &\quad-7p(1-p)^6. \end{aligned}Pfail​​=1−(1−p)7−7p(1−p)6.​

El resultado es aproximadamente 0,002031, o 0,2031 % de los bloques. Sin codificar los cuatro datos, 1 − (1 − p)⁴ = 0,039404: un 3,9404 % de mensajes con error. Son probabilidades de error de mensaje, no tasas residuales por bit ni prestaciones medidas de un equipo.

Se pagan tres bits adicionales por cuatro datos: un 75 % más de bits transmitidos y una tasa de código 4/7 ≈ 0,5714 bits de datos por bit transmitido. La comparación fija p, pero no simultáneamente ancho de banda, tiempo y energía por mensaje.

7. Qué promete el resultado y qué no

La contribución duradera vincula álgebra y fiabilidad de forma constructiva: separar palabras válidas, calcular controles compactos y localizar un fallo limitado. El caso de siete bits permite verificación exhaustiva. Para este artículo se comprobaron los 16 mensajes y sus 128 casos sin error o con uno, además de los 448 casos con dos errores del código extendido.

No repara ráfagas arbitrarias, software corrupto, alteraciones maliciosas ni pérdida de sincronización. Un sistema real debe adaptar el código al modelo de fallos y proteger codificador, decodificador y lógica circundante. Hamming no aporta mediciones de equipos modernos; nuestro cálculo se separa de tales afirmaciones. Complementa los límites de comunicación de Shannon con una construcción finita explícita, no con una solución universal que alcance la capacidad.

Método News de este artículo

Revisión de referencia: HAMMING-EN-1. Se leyó íntegramente el artículo primario de 1950 en un facsímil archivado y su OCR; la construcción y los casos SECDED se cotejaron también con las páginas escaneadas. La ficha editorial confirma la fecha bibliográfica. Las notas del MIT permiten comparar notaciones modernas. Un script reproducible ejecutó los cálculos y comprobaciones finitas. La redacción y las siete traducciones son de IA, sin revisión experta independiente ni validación humana. El esquema localizado se generó mediante código. La cubierta es una ilustración conceptual generada por IA, no una fotografía, instrumento ni figura de datos.

Fuentes

[1] R. W. Hamming — Error Detecting and Error Correcting Codes — DOI: 10.1002/j.1538-7305.1950.tb00463.x.

[2] Nokia Bell Labs — Error Detecting and Error Correcting Codes.

[3] MIT 6.02 — Coping with Bit Errors using Error Correction Codes.