¿Cómo se relaciona el apilamiento de naranjas en 24 dimensiones con la recepción y decodificación de señales de las Voyagers?

Estaba escuchando Sphere Packing Solved in Higher Dimensions; Un matemático ucraniano ha resuelto el problema centenario del empaquetamiento de esferas en las dimensiones ocho y 24 y leyendo la transcripción allí.

Los matemáticos han estado estudiando los empaques de esferas desde al menos 1611, cuando Johannes Kepler conjeturó que la forma más densa de empaquetar esferas de igual tamaño en el espacio es la conocida pila piramidal de naranjas que se ve en las tiendas de comestibles. A pesar de la aparente simplicidad del problema, no se resolvió hasta 1998, cuando Thomas Hales , ahora de la Universidad de Pittsburgh, finalmente demostró la conjetura de Kepler en 250 páginas de argumentos matemáticos combinados con gigantescos cálculos informáticos .

más tarde:

Los empaques de esferas de dimensiones superiores son difíciles de visualizar, pero son objetos eminentemente prácticos: los empaques de esferas densas están íntimamente relacionados con los códigos de corrección de errores que utilizan los teléfonos móviles, las sondas espaciales e Internet para enviar señales a través de canales ruidosos . Una esfera de alta dimensión es fácil de definir: es simplemente el conjunto de puntos en el espacio de alta dimensión que están a una distancia fija de un punto central dado.

y después

La red Leech se construye de manera similar al agregar esferas a un empaque menos denso, y se descubrió casi como una ocurrencia tardía. En la década de 1960, el matemático británico John Leech estaba estudiando un empaque de 24 dimensiones que se puede construir a partir del código "Golay", un código de corrección de errores que luego se usó para transmitir las fotos históricas de Júpiter y Saturno tomadas por las sondas Voyager. . Poco después de que el artículo de Leech sobre este empaquetamiento fuera a la imprenta, notó que había espacio para colocar esferas adicionales en los orificios del empaquetamiento y que, al hacerlo, se duplicaría la densidad del empaquetamiento.

Pregunta: ¿Cómo se relaciona el apilamiento de naranjas en 24 dimensiones con la recepción y decodificación de señales de las Voyagers? ¿Es posible explicar de una manera relativamente simple a la comunidad de Space SE, o encontrar una fuente que explique la conexión adecuada para este sitio?


Thomas Hales, fotografiado en 1998, usó una computadora para probar una famosa conjetura sobre la forma más densa de apilar esferas.

Thomas Hales, fotografiado en 1998, usó una computadora para probar una famosa conjetura sobre la forma más densa de apilar esferas.

Más adecuado para las matemáticas SE. La pregunta se simplifica a "¿cuál es la conexión entre el empaquetamiento de esferas de 24 dimensiones y el código Golay ?"
Estoy de acuerdo en que esto debería ir a Math SE o Signal Processing SE; existen expertos para esto.
@asdfex los expertos allí escribirán respuestas que no puedo entender. He preguntado aquí para obtener una explicación desde el punto de vista del hardware y los algoritmos de la Voyager. Esas personas no volverán atrás y mirarán la tecnología de la NASA de 1970 y escribirán desde esa perspectiva. En el futuro, una vez que entienda mejor, podría (o no) aventurar una pregunta más profunda sobre el siglo XXI. Es por eso que escribí "¿Es posible explicar de una manera relativamente simple a la comunidad de Space SE, o encontrar una fuente que explique la conexión adecuada para este sitio?" Para tu información, publiqué un enlace en la sala de chat de DSP SE.
@RussellBorogove mira mi comentario anterior. Esta pregunta , tal como está escrita, se adapta mejor aquí, por las razones explicadas. En la sala de chat de DSP SE, publiqué esta pregunta y agregué Asked in Space SE, buscando una respuesta adecuada para esa audiencia.
No hay nada en esto que sea específico de las sondas espaciales. Son solo un buen ejemplo de dispositivos que usan códigos de corrección de errores en las comunicaciones (las comunicaciones terrestres a menudo no se molestan con esto, porque es más simple detectar errores y retransmitir). Pero las comunicaciones con sondas distantes tienen un ancho de banda tan bajo que sería prohibitivo.
@Barmar, su tercera oración explica precisamente por qué su primera oración no es correcta.
@uhoh Pero como dice la cita, esta tecnología también se usa en teléfonos celulares e Internet, aunque no tan comúnmente.
@Barmar, pero ¿las palabras de 24 bits (relacionadas con 24 dimensiones) que usan los Voyagers aparecen muy a menudo en otros contextos? Actualmente transmiten del orden de 20 bits por segundo , no hay demasiados ejemplos para ese tipo de velocidad de datos baja, excepto LoRa.
@uhoh, creo que solo están hablando de la teoría matemática general del empaquetamiento de esferas densas, no específicamente de 24 dimensiones.
Ya veo, estás hablando específicamente del código Golay, no de las matemáticas más generales.
@uhoh (&Barmar), lo alucinante es cómo estos hombres y mujeres hicieron las conexiones entre campos tan distantes (que todavía no puedo comprender). Estos códigos de error, tan "perfectos" como son (en su rendimiento de empaquetamiento de esferas) son bastante débiles según el estándar actual (consulte la encuesta de Costello El camino hacia la capacidad del canal ). Gracias a uhoh, descubrí otra faceta de la brillantez de Kepler. Aprendí que hizo conjeturas y calculó el límite de empaquetamiento de esferas (para la dimensión 3) mientras intentaba explicar la forma de los copos de nieve. ¡Exquisito!

Respuestas (1)

Todas las diferentes palabras de datos que un transmisor puede enviar y un receptor puede detectar pueden imaginarse como puntos dispuestos en un gran espacio.

La selección de una codificación de datos para la detección y corrección de errores se trata de mantener palabras de código válidas a cierta distancia entre sí. Como resultado, un ligero cambio ("movimiento") de una palabra válida no hace que parezca otra palabra válida.

Como no voy a hacer ningún dibujo de esferas e hipercubos de 24 dimensiones, voy a restringir esta respuesta a tres dimensiones.

ejemplo de 3 bits

Imagine una palabra de datos que consta de tres dígitos binarios. Podemos organizarlos en forma de cubo tratando cada dígito como la coordenada en una dimensión:

Cada error de transmisión, es decir un bit que es un '0' confundido con un '1' o viceversa, corresponde a avanzar un paso por una de las aristas de este cubo.

En la comunicación diaria normal con tasas de error lo suficientemente bajas, podemos tratar todos los puntos de código como válidos:

Pero, cada bit invertido conduce a otra palabra válida. Entonces, si eliminamos cada segunda palabra válida, obtenemos esto:

Ahora, todas las palabras válidas están separadas por dos bordes. Un bit invertido nos lleva a una palabra no válida y sabemos que hubo un error, pero no podemos corregirlo porque hay tres posibles bits que podrían haber invertido. Esto se denomina código de "0 errores de corrección, 1 error de detección".

Para mejorar la solidez, elimine otras dos palabras de código válidas:

Ahora, todas las palabras válidas están separadas por tres bordes. Si un bit cambia, obtenemos una palabra no válida, pero aún podemos decir de dónde venimos. Si se voltearon dos bits, no podemos corregir la palabra, porque otra palabra válida está más cerca del código incorrecto que de la palabra correcta. Por lo tanto, este código se llama "1 error de corrección, 2 bits de detección"[*]. Esto es lo mejor que podemos obtener con nuestras sencillas palabras de código de 3 bits.

extensión de código de 4 bits

Si agrega otro bit para tener palabras de código de 4 bits, puede aumentar la distancia entre los puntos válidos a tres bordes del cubo entonces de 4 dimensiones. Esto brinda otro nivel de mitigación de errores: si se invierten dos bits, llega a una palabra no válida justo "en el medio" de varias palabras válidas. No puede decidir cuál podría ser el correcto, pero al menos sabe que se voltearon dos bits. Este tipo de código se llama "1 corrección de errores, 3 detección de errores".

Viajero

En el caso de la Voyager, esto no sería suficiente, así que optaron por una palabra clave de 24 bits. Del total de 16 millones de palabras clave, solo definieron 4096 como válidas. Es decir, 12 bits transportan información real y otros 12 se utilizan para la corrección de errores. Esto resultó en un código de "3 errores de corrección, 7 errores de detección". Es decir, si en alguna palabra se recibiesen incorrectamente 3 bits, aún podría corregirse adecuadamente y si se voltearan hasta 7 bits; al menos se sabría que algo anda mal. Este código podría representarse de la misma manera que lo hice anteriormente como las esquinas de un hipercubo de 24 dimensiones.

Ahora, ¿cómo se relaciona esto con el empaquetamiento de esferas? De hecho, las tres imágenes muestran el empaquetamiento más denso posible de esferas con diámetros de 1 , 2 y 3 , respectivamente, bajo la restricción de que sus centros deben estar ubicados en las esquinas del cubo.[**]

Obviamente, esto no parece demasiado espectacular, pero se vuelve mucho más desafiante si no estamos mirando datos binarios digitales, sino que usamos un transmisor que también admita valores intermedios, por ejemplo, usando no un simple encendido/apagado. modulación, pero agregue modulación de amplitud en la parte superior. Al agregar un paso más (por ejemplo, apagado/bajo/alto) para cada uno de los tres dígitos de nuestro ejemplo, no tenemos ocho palabras de código válidas, pero en realidad 3 3 = 27 - ¡comienza a empaquetar tus esferas en esa cuadrícula!


[*] Tenga en cuenta que "detectar" no significa que podrá saber cuántos errores de bits hay exactamente. Se refiere a la cantidad de errores de bits que pueden ocurrir antes de que termine con otra palabra de código válida.

[**] Estrictamente hablando, aquí no tratamos con esferas en un espacio euclidiano regular, sino con esferas de Hamming: se definen por el conjunto de esquinas que están a un número determinado de aristas de distancia de su centro. Esto explica el hecho de que en un mundo binario solo las esquinas del cubo representan puntos válidos, mientras que cualquier otro punto tendría coordenadas fraccionarias y simplemente no existe. Prácticamente, no hay diferencia entre los dos en los ejemplos dados aquí.

En el ejemplo del cubo, ¿cómo se puede corregir el error? No sabes si se invirtió un bit o dos bits. Es decir, recibir 101 podría ser 100 con un bit invertido, pero también podría ser 011 con dos bits invertidos. Incluso si el primero es más probable, sigue siendo ambiguo. No puedo ver cómo se puede realizar una corrección de errores aquí, solo detectarse.
@Innovine Creo que puede corregir cualquier error de un bit en este ejemplo, pero no puede detectar errores de dos bits. Todos los errores de dos bits son indistinguibles de un error de un bit de la palabra opuesta. Entonces, un error de dos bits se "corregirá" a la palabra opuesta a lo que se envió.
Al tener todos ceros y todos unos como un código no válido (como se muestra arriba), este enfoque también detecta ese gran error.
La respuesta ilustra un código Hamming 3,1, que es capaz de detectar hasta 2 bits de error o corregir 1 bit de error, pero no ambos . Agregar un bit de paridad adicional le permite corregir errores de 1 bit y detectar errores de 2 bits, pero a costa de un bit adicional. es.wikipedia.org/wiki/…
@LawnmowerMan Sí. De manera similar, el código binario de Golay puede corregir 3 errores o detectar hasta 6 errores, pero no ambos. (Este es un código con palabras de 23 bits). El código Golay binario extendido (con palabras de 24 bits) puede corregir 3 errores y detectar 4 errores. Si solo desea detección de errores, el código extendido puede detectar hasta 7 errores.
En muchos sistemas reales, el transmisor transmitiría limpios 0 y 1, pero el receptor leería un valor analógico. Entonces, por ejemplo, (0.9, 0.3, 0.6) sería más probable 100 que 011.
Para hacer la conexión con el "apilamiento naranja", deberá introducir el concepto geométrico de "distancia de Hamming". Así es como se puede demostrar que los códigos de Hamming (y los códigos de Golay) son soluciones "perfectas" del problema matemático del "empaquetamiento de esferas".
@NgPh La respuesta hace eso al dibujar los puntos válidos en los códigos. Supongo que podría agregar naranjas a los dibujos. Quiero decir, ¿esferas verdes? ¿Qué tiene eso que ver con las naranjas? (Bromeo)
@OrganicMarble Bueno, use image.spreadshirtmedia.com/image-server/v1/mp/compositions/… pero reemplace 1 con 24.
@Yakk, dichos dibujos pueden ser confusos. Algunos lectores pueden pasar por alto que la "distancia" entre los puntos de código es el número de aristas (NO la distancia euclidiana habitual). Por ejemplo, en el último dibujo, una esfera de "tamaño 2" centrada en (100) cubre (111), pero no (011). Puede intentar dibujar "naranjas" (esferas) en esta geometría de Hamming y veamos qué puede lograr.
@asdfex, ha advertido que su respuesta anterior es solo un comienzo (felicitaciones, de todos modos). Sin embargo, fue suficiente para mostrar cuán desafiante es la pregunta de uhoh. Y este tipo de desafío se explica aquí mismo .
@NgPh En realidad, no importa si hablamos aquí de distancia euclidiana o de Hamming; siempre que sigamos siendo binarios, solo tiene que reemplazar la distancia N por norte .
@asdfex, no realmente, si está trabajando en la corrección de errores binarios (errores "duros"). Está restringido a moverse de un punto a otro en su "espacio" solo en pasos enteros. Cuando el decodificador recibe un mensaje, elige la palabra clave más cercana a ese mensaje (en términos de distancia de Hamming). Una distancia de 1,5 bits de error no tiene ningún significado para este decodificador. Importa mucho precisar qué métrica de distancia está utilizando en el problema general de "empaquetamiento de esferas".
@NgPh Uno debe tener claro que el problema de empaquetamiento de esferas que resuelve la red Leech es la versión euclidiana, no la de Hamming. Es cierto que la unión de esferas de Hamming de radio 3 que rodean las palabras clave de Golay cubre por completo el conjunto de palabras de longitud 23 sobre un alfabeto binario, haciendo que el código sea perfecto. Es igualmente cierto que el código extendido (de 24 dimensiones) se puede utilizar para construir la red Leech y, por lo tanto, el empaque euclidiano óptimo. Hay dos problemas distintos de empaquetamiento de esferas, resueltos por dos objetos distintos pero relacionados (el código de Golay y la red Leech).
Excelente respuesta Sugeriría agregar: la palabra de código de 24 bits de longitud tiene 12 bits de datos y 12 bits ECC.
@Will Orrick, puedo agregar que la demostración de Marina Viazoska para la dimensión 8 parece estar inspirada igualmente por la similitud entre el código de Hamming (8,4,4) y la red E8 (aunque no mencionó a Hamming). Ambos objetos matemáticos alcanzan su límite de empaquetamiento de esferas en sus respectivas geometrías (Hamming vs Euclidian). ¿Esa es quizás la conexión?
@asdfex, mantén la perseverancia. ¡Nadie ha demostrado aún el problema del empaquetamiento de esferas en geometrías euclidianas para dimensiones N=4,5,6,7,9 a 23 y >24!
@NgPh ¿Es eso mayor que 24 o mayor que 24 factorial?
@Matt Dunn, bien visto. Mayor que 24.
Si un código corrige 3 errores y no más, eso implica que hay al menos un par de puntos de código a una distancia de exactamente 6 o 7, ¿verdad? De lo contrario, el código corregiría más o menos errores. Al menos, así es como yo entiendo esta respuesta. Pero mientras que dicho código podría detectar 3 o 4 errores, no veo cómo podría detectar 7 errores. Voltear más de 4 bits podría producir una mala interpretación no detectada de un elemento del par mencionado como el otro.
@JohnBollinger Su comprensión parece correcta. Tenga en cuenta que la "detección de 7 errores" no significa que pueda saber que se voltearon 7 bits; solo significa que no obtiene otro código válido por casualidad si se voltearon 7 bits. Bien puede ser que una palabra con 7 bits invertidos se corrija a otra palabra de código incorrecta y válida.
Si entiendo. El punto es que esta respuesta dice: " Esto resultó en un código de "3 errores de corrección, 7 errores de detección". al menos se sabría que algo anda mal ”, pero eso parece incoherente.
@JohnBollinger Si tiene una mejor manera de escribir eso ... hasta 3 errores -> corregir a la palabra correcta, 4 errores -> error, no corregible, 5-7 errores: corregido a la palabra incorrecta, 8 errores: palabra válida, ningún error detectado
¿No sería la terminología un "código de 3 errores de corrección, 4 de detección de errores"? Considero que tiene poca relevancia para la nomenclatura que la lógica de corrección de errores se activará en errores de 5, 6 y 7 bits (produciendo un error de palabra general), ya que estos no se pueden distinguir de 3, 2 bits. y errores de 1 bit sin comparar con la fuente. De lo contrario, ¿por qué su código de cuatro bits no sería "1 corrección de errores, 3 detección de errores"?
@JohnBollinger El número de "detección" cuenta todos los casos, incluidos los que se pueden corregir. En el caso de los cuatro bits me equivoqué.
GRACIAS esta es la explicación más elegante de detección/corrección de errores y códigos hamming que he visto. Nunca lo entendí antes de ahora. Asombroso
@John Bollinger, interprételo de la siguiente manera. Si utiliza Golay como código de CORRECCIÓN, se garantiza la corrección de hasta 3 errores (y también se indica el número de errores). ALTERNATIVAMENTE, puede usarlo como un código de DETECCIÓN. La detección está garantizada hasta 7 errores (aunque no le dirá cuántos). Si lo usa para corregir, con 4 errores devolverá (sistemáticamente) una palabra clave incorrecta. Lo mismo para 5,6,7 errores. Si lo usa para la detección, con 8 errores, felizmente "certificará" la palabra clave como válida (lo que, por supuesto, es incorrecto).
Una ligera corrección: para la extensión de código de 4 bits, debe decir que "puede aumentar la distancia entre puntos válidos a cuatro bordes".
@JohnBollinger Con respecto a la terminología, Wikipedia es solo un punto de datos, pero el artículo Código de bloque dice que un código con distancia mínima d puede detectar d 1 errores y que puede corregir ( d 1 ) / 2 errores Creo que surge la confusión al decir que el código Hamming extendido [8,4] es "1 error de corrección, 3 errores de detección". La coma sugiere que el código puede hacer ambas cosas simultáneamente, lo cual no puede: solo puede hacer una o la otra. Creo que es mejor reemplazar la coma con la palabra "o".