En teoría de codificación , el límite Singleton , llamado así por Richard Collom Singleton, es un límite superior relativamente crudo del tamaño de un código de bloque arbitrario con longitud de bloque , tamaño y distancia mínima . También se lo conoce como límite Joshi [1] , demostrado por Joshi (1958) e incluso antes por Komamiya (1953).
La distancia mínima de un conjunto de palabras de código de longitud se define como donde es la distancia de Hamming entre y . La expresión representa el número máximo de palabras de código posibles en un código de bloque -ario de longitud y distancia mínima .
Entonces el límite Singleton establece que
Primero observe que el número de palabras -arias de longitud es , ya que cada letra en dicha palabra puede tomar uno de diferentes valores, independientemente de las letras restantes.
Sea ahora un código de bloque -ario arbitrario de distancia mínima . Claramente, todas las palabras de código son distintas. Si perforamos el código eliminando las primeras letras de cada palabra de código, entonces todas las palabras de código resultantes deben seguir siendo diferentes por pares, ya que todas las palabras de código originales en tienen una distancia de Hamming al menos entre sí. Por lo tanto, el tamaño del código alterado es el mismo que el código original.
Las palabras de código recién obtenidas tienen longitud y, por lo tanto, puede haber como máximo una de ellas. Como es arbitrario, este límite debe cumplirse para el código más grande posible con estos parámetros, por lo tanto: [2]
Si es un código lineal con longitud de bloque , dimensión y distancia mínima sobre el campo finito con elementos, entonces el número máximo de palabras de código es y el límite Singleton implica: de modo que lo que usualmente se escribe como [3]
En el caso del código lineal, se puede obtener una prueba diferente del límite Singleton observando que el rango de la matriz de verificación de paridad es . [4] Otra prueba simple se deduce de la observación de que las filas de cualquier matriz generadora en forma estándar tienen un peso como máximo de .
La referencia habitual para este resultado es Singleton (1964), pero Joshi (1958) lo demostró antes. Joshi señala que Komamiya (1953) había obtenido el mismo resultado utilizando una prueba más compleja. Welsh (1988, p. 72) también señala lo mismo con respecto a Komamiya (1953).
Los códigos de bloque lineales que logran la igualdad en el límite Singleton se denominan códigos MDS (distancia máxima separable) . Algunos ejemplos de estos códigos incluyen códigos que solo tienen palabras de código (la palabra completa para , que tiene, por lo tanto, una distancia mínima ), códigos que utilizan la totalidad de (distancia mínima 1), códigos con un solo símbolo de paridad (distancia mínima 2) y sus códigos duales . Estos a menudo se denominan códigos MDS triviales .
En el caso de los alfabetos binarios, sólo existen códigos MDS triviales. [5] [6]
Entre los ejemplos de códigos MDS no triviales se incluyen los códigos Reed-Solomon y sus versiones extendidas. [7] [8]
Los códigos MDS son una clase importante de códigos de bloque ya que, para un número fijo y , tienen las mayores capacidades de detección y corrección de errores. Existen varias formas de caracterizar los códigos MDS: [9]
Teorema — Sea un código lineal [ ] sobre . Los siguientes son equivalentes:
La última de estas caracterizaciones permite, mediante el uso de las identidades de MacWilliams , una fórmula explícita para la distribución de peso completa de un código MDS. [10]
Teorema : Sea un código MDS lineal [ ] sobre . Si denota la cantidad de palabras de código en de peso , entonces
La independencia lineal de las columnas de una matriz generadora de un código MDS permite la construcción de códigos MDS a partir de objetos en geometría proyectiva finita . Sea el espacio proyectivo finito de dimensión (geométrica) sobre el cuerpo finito . Sea un conjunto de puntos en este espacio proyectivo representados con coordenadas homogéneas . Forme la matriz cuyas columnas sean las coordenadas homogéneas de estos puntos. Luego, [11]