En 1947, Richard Hamming, el hombre de Bell Labs que enseñaba a sus colegas a usar computadoras, llegó esperando resultados de una gran máquina de relés que había funcionado sin supervisión durante el fin de semana. Había fallado al principio y no había nada que entregar. Formuló la pregunta que lo inició todo: si una máquina puede descubrir que hay un error, ¿por qué no puede localizar dónde está y corregirlo?
Las máquinas con las que trabajaba usaban una comprobación de paridad que podía detectar un error pero no corregirlo, de modo que cualquier bit invertido hacía que el trabajo se detuviera y tuviera que rehacerse. Hamming añadió bits de paridad superpuestos para que cada bit de datos quedara cubierto por varias comprobaciones, haciendo que un bit invertido produjera un patrón distintivo que señalara su propia ubicación.
Eso permitió a la computadora corregir un único error e incluso detectar dos errores y corregir uno, sin detenerse. El método llegó a la imprenta en su artículo de 1950 en el Bell System Technical Journal y se convirtió en la familia de códigos que llevan su nombre, usados en computadoras, conmutación telefónica y más tarde en todo, desde la telemetría de sondas espaciales hasta los discos de audio.
Añadir bits que localizan el error, no solo que lo señalan
Las comprobaciones superpuestas hacen que el patrón de fallo de cada bit sea único, de modo que el error puede localizarse.
Una máquina que se autocorrige evita detenerse y volver a ejecutar un trabajo largo.
La sobrecarga de redundancia disminuye a medida que crece el bloque de datos, por lo que la corrección resulta más barata.
Convirtió la protección contra errores de una herramienta de detección en una herramienta de corrección.
Detectar un error es barato, pero corregirlo es lo que elimina el desperdicio; estructurar los bits de comprobación para señalar al culpable consigue la corrección gratis.
Los códigos Hamming se convirtieron en el inicio de la teoría de códigos y en el modelo para códigos posteriores más potentes que hoy protegen la RAM, el almacenamiento magnético y óptico, y las líneas de datos. Hamming recibió el Pioneer Award de la IEEE Computer Society en 1980, y el IEEE nombró en su honor su medalla para las ciencias de la información.
CONSULTA LAS PRUEBAS
Las fuentes
- Richard Wesley Hamming — Computer Pioneers IEEE Computer Society · history.computer.org
- Algebraic Coding Theory / Error Detection and Correction University of Puget Sound · math.pugetsound.edu