stringtranslate.com

Desigualdad de Kraft-McMillan

En teoría de codificación , la desigualdad de Kraft-McMillan proporciona una condición necesaria y suficiente para la existencia de un código de prefijo [1] (en la versión de Leon G. Kraft) o un código decodificable de forma única (en la versión de Brockway McMillan ) para un conjunto dado de longitudes de palabras de código . Sus aplicaciones a los códigos de prefijo y árboles a menudo encuentran uso en la ciencia de la computación y la teoría de la información . El código de prefijo puede contener un número finito o infinito de palabras de código.

La desigualdad de Kraft fue publicada en Kraft (1949). Sin embargo, el artículo de Kraft solo analiza los códigos de prefijo y atribuye el análisis que conduce a la desigualdad a Raymond Redheffer . El resultado fue descubierto de forma independiente en McMillan (1956). McMillan demuestra el resultado para el caso general de códigos decodificables de forma única y atribuye la versión para los códigos de prefijo a una observación oral realizada en 1955 por Joseph Leo Doob .

Aplicaciones e intuiciones

La desigualdad de Kraft limita la longitud de las palabras clave en un código de prefijo : si se toma una exponencial de la longitud de cada palabra clave válida, el conjunto de valores resultante debe parecerse a una función de masa de probabilidad , es decir, debe tener una medida total menor o igual a uno. La desigualdad de Kraft puede considerarse en términos de un presupuesto limitado que se gastará en palabras clave, siendo más caras las palabras clave más cortas. Entre las propiedades útiles que se desprenden de la desigualdad se encuentran las siguientes afirmaciones:

Declaración formal

Deje que cada símbolo fuente del alfabeto

codificarse en un código decodificable de forma única sobre un alfabeto de tamaño con longitudes de palabras de código

Entonces

Por el contrario, para un conjunto dado de números naturales que satisfacen la desigualdad anterior, existe un código decodificable de forma única sobre un alfabeto de tamaño con esas longitudes de palabras de código.

Ejemplo: árboles binarios

9, 14, 19, 67 y 76 son nodos de hojas a profundidades de 3, 3, 3, 3 y 2, respectivamente.

Cualquier árbol binario puede considerarse como la definición de un código de prefijo para las hojas del árbol. La desigualdad de Kraft establece que

Aquí la suma se toma de las hojas del árbol, es decir, los nodos sin hijos. La profundidad es la distancia al nodo raíz. En el árbol de la derecha, esta suma es

Prueba

Prueba de códigos de prefijo

Ejemplo de árbol binario. Los nodos rojos representan un árbol de prefijos. Se muestra el método para calcular la cantidad de nodos de hojas descendientes en el árbol completo.

Primero, demostremos que la desigualdad de Kraft se cumple siempre que el código sea un código de prefijo.

Supóngase que . Sea el árbol -ario completo de profundidad (por lo tanto, cada nodo de en el nivel tiene hijos, mientras que los nodos en el nivel son hojas). Cada palabra de longitud sobre un alfabeto -ario corresponde a un nodo en este árbol en la profundidad . La palabra n en el código de prefijo corresponde a un nodo ; sea el conjunto de todos los nodos de hoja (es decir, de nodos en la profundidad ) en el subárbol de enraizado en . Como ese subárbol tiene altura , tenemos

Dado que el código es un código de prefijo, esos subárboles no pueden compartir ninguna hoja, lo que significa que

Por lo tanto, dado que el número total de nodos en profundidad es , tenemos

de donde se sigue el resultado.

Por el contrario, dada cualquier secuencia ordenada de números naturales,

Al satisfacer la desigualdad de Kraft, se puede construir un código de prefijo con longitudes de palabras de código iguales a cada una eligiendo una palabra de longitud arbitrariamente, y luego descartando todas las palabras de mayor longitud que la tengan como prefijo. Nuevamente, interpretaremos esto en términos de nodos de hoja de un árbol -ario de profundidad . Primero elija cualquier nodo del árbol completo en profundidad ; corresponde a la primera palabra de nuestro nuevo código. Dado que estamos construyendo un código de prefijo, todos los descendientes de este nodo (es decir, todas las palabras que tienen esta primera palabra como prefijo) se vuelven inadecuados para su inclusión en el código. Consideramos los descendientes en profundidad (es decir, los nodos de hoja entre los descendientes); hay tales nodos descendientes que se eliminan de la consideración. La siguiente iteración elige un nodo (sobreviviente) en profundidad y elimina más nodos de hoja, y así sucesivamente. Después de las iteraciones, hemos eliminado un total de

nodos. La pregunta es si necesitamos eliminar más nodos de hoja de los que realmente tenemos disponibles ( en total) en el proceso de creación del código. Dado que la desigualdad de Kraft se cumple, de hecho tenemos

y así se puede construir un código de prefijo. Nótese que, como la elección de nodos en cada paso es en gran medida arbitraria, se pueden construir muchos códigos de prefijo adecuados diferentes, en general.

Prueba del caso general

Ahora demostraremos que la desigualdad de Kraft se cumple siempre que sea un código decodificable de forma única. (No es necesario demostrar la inversa, ya que ya la hemos demostrado para códigos de prefijo, lo que es una afirmación más sólida). La prueba es de Jack I. Karush. [3] [4]

Solo necesitamos demostrarlo cuando hay un número finito de palabras clave. Si hay un número infinito de palabras clave, entonces cualquier subconjunto finito de ellas también es decodificable de manera única, por lo que satisface la desigualdad de Kraft-McMillan. Si tomamos el límite, tenemos la desigualdad para el código completo.

Denote . La idea de la prueba es obtener un límite superior para y demostrar que solo puede cumplirse para todos si . Reescríbalo como

Consideremos todas las m -potencias , en forma de palabras , donde son índices entre 1 y . Nótese que, dado que se supuso que S era decodificable de forma única, implica . Esto significa que cada sumando corresponde exactamente a una palabra en . Esto nos permite reescribir la ecuación a

donde es el número de palabras de código en de longitud y es la longitud de la palabra de código más larga en . Para un alfabeto de -letras solo hay palabras posibles de longitud , por lo que . Usando esto, establecemos el límite superior :

Tomando la raíz -ésima, obtenemos

Este límite se cumple para cualquier . El lado derecho es 1 asintóticamente, por lo que debe cumplirse (de lo contrario, la desigualdad se rompería para un suficientemente grande ).

Construcción alternativa para el recíproco

Dada una secuencia de números naturales,

Al satisfacer la desigualdad de Kraft, podemos construir un código de prefijo como sigue. Defina la i- ésima palabra de código, C i , como los primeros dígitos después del punto decimal en la representación base r de

Nótese que, por la desigualdad de Kraft, esta suma nunca es mayor que 1. Por lo tanto, las palabras clave capturan el valor completo de la suma. Por lo tanto, para j > i , los primeros dígitos de C j forman un número mayor que C i , por lo que el código no tiene prefijo.

Generalizaciones

La siguiente generalización se encuentra en [5] .

Teorema  :  Si son decodificables de forma única y cada palabra de código en es una concatenación de palabras de código en , entonces

El teorema anterior es el caso especial cuando .

Prueba

Sea la función generadora del código, es decir,

Mediante un argumento de conteo, el coeficiente -ésimo de es el número de cadenas de longitud con longitud de código . Es decir, de manera similar,

Dado que el código es decodificable de forma única, cualquier potencia de está absolutamente limitada por , por lo que cada uno de y es analítico en el disco .

Afirmamos que para todos ,

El lado izquierdo es y el lado derecho es

Ahora bien, dado que cada palabra de código en es una concatenación de palabras de código en , y es decodificable de forma única, cada cadena de longitud con -código de longitud corresponde a una cadena única cuyo -código es . La cadena tiene una longitud de al menos .

Por lo tanto, los coeficientes de la izquierda son menores o iguales que los coeficientes de la derecha.

Así, para todos , y todos , tenemos Tomando límite, tenemos para todos .

Como y ambos convergen, tenemos tomando el límite y aplicando el teorema de Abel .

Existe una generalización para el código cuántico . [6]

Notas

  1. ^ Portada, Thomas M.; Thomas, Joy A. (2006), "Compresión de datos", Elementos de la teoría de la información (2.ª ed.), John Wiley & Sons, Inc, págs. 108-109, doi :10.1002/047174882X.ch5, ISBN 978-0-471-24195-9
  2. ^ De Rooij, Steven; Grünwald, Peter D. (2011), "SUERTE Y ARREPENTIMIENTO EN LA INFERENCIA DE LONGITUD MÍNIMA DE DESCRIPCIÓN", Filosofía de la estadística (1.ª ed.), Elsevier, pág. 875, ISBN 978-0-080-93096-1
  3. ^ Karush, J. (abril de 1961). "Una prueba simple de una desigualdad de McMillan (Corresp.)". IEEE Transactions on Information Theory . 7 (2): 118. doi :10.1109/TIT.1961.1057625. ISSN  0018-9448.
  4. ^ Portada, Thomas M.; Thomas, Joy A. (2006). Elementos de la teoría de la información (2.ª ed.). Hoboken, Nueva Jersey: Wiley-Interscience. ISBN 978-0-471-24195-9.
  5. ^ Foldes, Stephan (21 de junio de 2008). "Sobre el teorema de McMillan sobre códigos descifrables de forma única". arXiv : 0806.3277 [math.CO].
  6. ^ Schumacher, Benjamin; Westmoreland, Michael D. (10 de septiembre de 2001). "Codificación cuántica de longitud indeterminada". Physical Review A . 64 (4): 042304. arXiv : quant-ph/0011014 . Código Bibliográfico :2001PhRvA..64d2304S. doi :10.1103/PhysRevA.64.042304. S2CID  53488312.

Referencias

Véase también