Introducción a la Teoría de la Información y Codificación

19
Pensamiento matemático, historia de las matemáticas y resolución de problemas Introducción a la Teoría de la Información y Codificación Antonio Jiménez Fernández ABRIL 2015

description

Introducción a la Teoría de la Información y Codificación

Transcript of Introducción a la Teoría de la Información y Codificación

Pensamiento matemático, historia de las matemáticas yresolución de problemas

Introducción a la Teoría de laInformación y Codificación

Antonio Jiménez Fernández

ABRIL 2015

Índice general

Resumen ii

Introducción iii

1. Conceptos y resultados básicos 11.1. Primeras definiciones . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2. Códigos sin prefijos . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.3. Representación en árbol de Códigos . . . . . . . . . . . . . . . . . . 5

2. Condiciones necesarias y suficientes para la condición UD 72.1. El número de Kraft-McMillan . . . . . . . . . . . . . . . . . . . . . 72.2. Condiciones equivalentes a la condición UD . . . . . . . . . . . . . . 10

3. Notas finales 13

Bibliografía 14

i

Resumen

En el presente trabajo realizaremos una introducción a la Teoría de la Informa-ción y de la Codificación.

A lo largo del capítulo 1, veremos una serie de definiciones y resultados básicosy necesarios para cualquiera que quiera indagar en estas teorías. También se daráuna posible representación gráfica de los códigos.

En el capítulo 2, veremos condiciones necesarias para la conocida como condi-ción UD y culminaremos con un resultado en el que daremos equivalencias paraesta última condición.

Finalmente, en el capítulo 3, daremos unas última notas para terminar de ubicaral lector y mostrarle qué posibles caminos de estudio se pueden tomar una vezfinalizada la lectura de este trabajo.

Como aviso antes de iniciar la lectura, cabe decir que las fuentes usadas pararealizar este trabajo han sido otros escritos en inglés, por tanto, los términos usadosse han traducido según mi propio criterio, buscando que se mantuviese la mayorcoherencia posible con la lengua castellana.

ii

Introducción

La Teoría de la Información y la Teoría de la Codificación nacieron de la manode Claude Shannon, en particular, de su escrito "A Mathematical Theory of Com-munication", de 1948. El objetivo básico era conseguir transmitir un mensaje deforma segura, fiable y eficiente, teniendo que ser transmitido en ocasiones a travésde un medio inseguro y hostil.

El estudio matemático de estas cuestiones fue precisamente lo que dio lugar ala aparición de estas dos áreas:

La Teoría de la Información se encarga ante todo del estudio de los límitesque se pueden alcanzar, relativos a la comunicación, y tiene una naturalezaprobabilística y analítica.

La Teoría de la Codificación busca una manera eficiente de "codificar" infor-mación y corregir, en la medida de lo posible, los errores a los que pueda versesometida a lo largo de su transmisión. Tiene un enfoque más algebraico.

Si bien Shannon estaba principalmente interesado en la Teoría de la Información,su compañero Richard Hamming sí se enfocó más en la Teoría de la Codificación,estudiando problemas de correción de errores en la transmisión de mensajes, antesincluso de que Shanon publicase su famoso escrito, y obteniendo grandes avancesen esta teoría.

Curiosamente, tanto Shannon como Hamming trabajaban en los LaboratoriosTelefónicos Bell y estaban interesados precisamente en estudiar y tratar con loserrores que aparecían en las comunicaciones cuando se usaban largas líneas telefó-nicas, en llamadas cruzadas, etc. Estos estudios de los que hablamos tienen granrelevancia en nuestros días: por ejemplo, los modems mejoran su recepción y emi-sión de datos mediante un sistema de corrección de errores incluído como parte desu hardware; las comunicaciones en el espacio se ven sometidas a muchos proble-mas como son condiciones atmosféricas distintas a las nuestras, llamaradas solaresy demás situaciones que producen errores en las transmisiones; etc.

Cabe también mencionar lo intrínsecamente que se encuentran relacionadasestas dos disciplinas con la criptografía, la cual ante todo se enfoca en la confiden-cialidad, privacidad y seguridad a la hora de transmitir mensajes. La criptografía

iii

Índice general

apareció poco después del nacimiento de la escritura, y nos ha acompañado a lolargo de nuestra historia. Esto se constata en hechos tales como el uso, en el sigloI a.C., del cifrado por sustitución conocido como código César; la creación de lamáquina Enigma para desentrañar los mensajes que los alemanes se transmitíanentre ellos durante la II Guerra Mundial; etc.

Estas distintas disciplinas tan relacionadas tienen aun mayor juego en esta eradigital, donde la transmisión y codificación de datos es algo que está a la orden deldía y que es primordial para la sociedad que hemos construido.

iv

Capítulo 1

Conceptos y resultados básicos

1.1. Primeras definicionesHablando de una forma no muy precisa, codificar es usar una serie de "reglas"

para transformar un mensaje en otro, no teniendo por qué mantener el mismoalfabeto (o símbolos en general) para el segundo mensaje. Se busca transmitirla información del emisor al receptor, y para hacerlo de forma existosa, amboshabrán de conocer y usar los mismos símbolos. Estas ideas dan pie a las siguientesdefiniciones básicas.

Definición 1.1. Llamaremos alfabeto a un conjunto finito S. A los elementos deS los llamaremos símbolos.

Ejemplo 1.2. Veamos un par de alfabetos muy usados:

Denotamos por A al alfabeto con las 27 letras del abecedario que usamos en lalengua castellana (A,B,C, ..., Z) junto con el símbolo "espacio", que para ma-yor comodidad aquí denotaremos por "-". Para mayor exactitud, habríamosde incluir los signos de puntuación, distinguir entre mayúsculas y minúscu-las, etc., pero lo omitiremos para no hacer tedioso el presente trabajo, cuyosresultados podrán extenderse sin problemas a este alfabeto "completo".Por ejemplo, el texto "Me llamo Antonio.", con el alfabeto A sería

ME − LLAMO − ANTONIO

Denotaremos por B al alfabeto formado por los dos simbolos 0 y 1, a los quellamaremos dígitos binarios o bits.

Definición 1.3. Dado un alfabeto S, definimos un mensaje como una secuenciafinita y ordenada de símbolos de S:

s1s2s3...sn, con si ∈ S ∀1 ≤ i ≤ n.

1

1.1. Primeras definiciones

También nos referiremos a un mensaje mediante los términos "palabra" de S o"cadena de caracteres" de S.

Al conjunto de todas las cadenas de caracteres de S de longitud n lo denotaremospor Sn.

Veamos un par de ejemplos.

Ejemplo 1.4. Una regla sencilla para codificar mensajes en A es añadir el símboloY tras cada símbolo del mensaje original. Por ejemplo, el mensaje "TE-VEO-LUEGO" pasaría a ser "TYEY-YVYEYOY-YLYUYEYGYOY".

Ejemplo 1.5. Consideremos el alfabeto B. Se tiene que

B2 = {00, 01, 10, 11} .

Definición 1.6. Dado un alfabeto S, denotamos por S∗ a la unión de todos losconjuntos Sn con n ∈ N; esto es:

S∗ = ∪n∈NSn.

Observación 1.7. Por convenio consideraremos que el conjunto S0 no es vacío,sino que posee un único elemento, una cadena de caracteres de longitud 0, esto es,una cadena sin ningún símbolo.

Pasemos ahora a ver las definiciones formales de código y de palabra clave:

Definición 1.8. Consideremos dos alfabetos S y T . Diremos que una funciónc : S −→ T ∗ es un código si es una función inyectiva.

Cuando |T | = 2, diremos que el código es binario, cuando |T | = 3, diremos quees ternario, etc. Generalizando, cuando |T | = p, diremos que el código es p-ario.

Definición 1.9. Dado s ∈ S, a c(s) lo llamaremos palabra clave de s (nótese quec(s) ∈ T ∗, esto es, que es una cadena de caracteres de T ). Al conjunto de todas laspalabras clave lo denotaremos por C(c) o simplemente C, esto es,

C(c) = {c(s) : s ∈ S} .

Veamos un ejemplo:

Ejemplo 1.10. Consideremos el alfabeto S = {a, b, d}, y definamos c : S −→ B∗de la forma

c(a) = 0,

c(b) = 11,

c(d) = 1.

Tenemos que c es un código, pues es una función inyectiva; es binario, ya que|B| = 2; y además, el conjunto de todas las palabras claves es C = {0, 1, 11}.

2

1.1. Primeras definiciones

Observación 1.11. Si consideramos un código c : S −→ T ∗, podemos extenderlo aS∗ de la siguiente forma: dada una cadena de caracteres s1s2...sn ∈ S∗, definimosc(s1s2...sn) como la cadena de caracteres c(s1)c(s2)...c(sn) ∈ T ∗. Este proceso esconocido como concatenación. A la función ampliada la seguiremos denotando porc salvo que se especifique en algún caso puntual, y además diremos que un códigoc : S −→ T ∗ reemplaza a una cadena de caracteres de S por una cadena de carac-teres codificada del alfabeto T .

Ejemplo 1.12. Retomando el ejemplo anterior, tendríamos que

c(adb) = c(a)c(d)c(b) = 0111.

Nótese que no es posible recuperar la cadena de caracteres original de la cadenacodificada, pues tenemos que

0111 = c(adb) = c(abd) = c(addd).

De esta situación surge la siguiente definición:

Definición 1.13. Dado un código c : S −→ T ∗, se dirá que es unívocamentedecodificable, o que satisface la condición UD, si la función extendida a S∗,c : S∗ −→ T ∗, es inyectiva.

Luego en el ejemplo anterior, c no es unívocamente decodificable. Una condiciónsuficiente para asegurar la condición UD es la siguiente:

Proposición 1.14. Sea c : S −→ T ∗ un código. Si para todo par de símboloss, s′∈ S, la longitud de c(s) y c(s′) es la misma, entonces el código c es unívocamentedecodificable.

Demostración. Sean c un código, tal que c(s) tiene la misma longitud para todos ∈ S, y l la longitud de c(s), para cualquier s ∈ S. Para evitar alguna posibleconfusión en esta prueba, llamemos d a la funcion c extendida a S∗. Veamos que des inyectiva.

Consideremos dos cadenas de caracteres de S, s1s2...sn, r1r2...rm ∈ S∗, cond(s1s2...sn) = d(r1r2...rm). Entonces c(s1)c(s2)...c(sn) = c(r1)c(r2)...c(rm). En par-ticular, como los primeros l símbolos de las cadenas c(s1)c(s2)...c(sn) y c(r1)c(r2)...c(rm)son iguales, y c(si), c(rj) ∈ T l para todo i ∈ {1, 2, ..., n} y todo j ∈ {1, 2, ...,m}, hade ocurrir que c(s1) = c(r1). Pero como c es inyectiva en S, s1 = r1.

Esto último implica que d(s2s3...sn) = c(s2)c(s3)...c(sn) = c(r2)c(r3)...c(rm) =d(r2r3...rm). Razonando de forma análoga a la anterior, se acaba obteniendo quen = m y que si = ri para todo i ∈ {1, 2, ..., n}, y por tanto s1s2...sn = r1r2...rm.Luego d es inyectiva, como queríamos demostrar.

3

1.2. Códigos sin prefijos

1.2. Códigos sin prefijosPor lo ya visto, si queremos que un código sea útil, es razonable pedirle que sea

unívocamente decodificable.Pero en ocasiones, también será razonable pedirle el poder empezar a descifrar

o decodificar la cadena codificada sin tener que esperar a tener el mensaje comple-to, trabajando de forma secuencial a medida que lo recibamos. Veámoslo con unejemplo:

Ejemplo 1.15. Sea S = {a, b, d} y consideremos el código c : S −→ B∗ definidopor

c(a) = 0, c(b) = 10, c(d) = 11.

Si nos diesen la cadena codificada 11010 podríamos decodificarla paso a paso:El primer símbolo es un 1, que no corresponde a la palabra clave de ningún

símbolo de S. El segundo es otro 1 que junto con el primero forman el 11, el cuales la palabra clave de a, luego el primer elemento de la cadena decodificada esa. Seguimos trabajando de forma análoga con el resto de símbolos de la cadenacodificada.

La forma descrita en el ejemplo anterior es una forma de decodificar una cadenacodificada, suponiendo que se conozca el código usado. Pero no siempre es válida,en particular, si tenemos s, s′ ∈ S cumpliendo que c(s′) = c(s)r, con r ∈ T ∗. Estasituación da lugar a problemas a la hora de decodificar, como se ha visto en elejemplo 1.12, y motiva las siguientes definiciones.

Definición 1.16. Dadas dos cadenas de caracteres s1s2...sm y r1r2...rn, con m < n,diremos que s1s2...sm es prefijo de r1r2...rn si si = ri para todo 1 ≤ i ≤ m.

Definición 1.17. Diremos que un código c : S −→ T ∗ no tiene prefijos, o quesatisface la condición PF, si no hay un par de palabras claves q = c(s), q′ = c(s′),con s, s′ ∈ S, tales que q sea prefijo de q′, es decir, que q′ = qr para algún r ∈ T i

con i ≥ 1.

Los códigos sin prefijos son de gran importancia, como podemos deducir delsiguiente teorema:

Teorema 1.18. Si un código c : S −→ T ∗ no tiene prefijos, entonces es unívoca-mente decodificable.

Demostración. Sean a1a2...an, b1b2...bm ∈ S∗ dos cadenas de caracteres tales quesus imágenes por un código c son iguales, esto es,

c(a1a2...an) = c(b1b2...bm).

4

1.3. Representación en árbol de Códigos

Tenemos entonces que c(a1)c(a2)...c(an) = c(b1)c(b2)...c(bm). Por tanto, se tendríaque c(a1) 6= c(b1) si y sólo si la longitud de c(a1) fuese distinta a la de c(b1). Peroesto implicaría que uno sería prefijo de otro y c no tenía prefijos. Luego ha de serc(a1) = c(b1). Pero como c es inyectiva en S, se tiene que a1=b1.

De esto se deduce que c(a2)c(a3)...c(an) = c(b2)c(b3)...c(bm), y trabajando deforma análoga obtenemos que n = m y ai = bi para todo 1 ≤ i ≤ n.

Nótese que la Proposición 1.14 se podría haber deducido también del ante-rior Teorema 1.18, pues si todas las palabras clave tienen la misma longitud, enparticular estaríamos tratando con un código sin prefjios.

1.3. Representación en árbol de CódigosPara representar códigos de manera gráfica, una forma posible es usar un dia-

grama de árbol, el cual "crecerá" hacia abajo, es decir, tendrá la raíz arriba, siendoesta la cadena de caracteres de longitud 0. Un nodo a tendrá tantos "hijos" comoelementos haya en T , y estos serán at con t ∈ T .

Para mayor comodidad, ilustraremos esta idea con el alfabeto binario B, pero setrabaja de forma análoga con cualquier otro alfabeto. Nótese que si consideramosel diagrama de árbol infinito (Figura 1.1), este puede verse como la representaciónde B∗.

Figura 1.1

Ahora, para representar un código hacemos lo siguiente: los nodos de ese dia-grama que sean palabras clave se ponen como puntos "rellenos", y los que no,como "vacíos". Si llegamos a un nodo tal que ni él ni ninguno de sus sucesivos"descendientes" es una palabra clave, no lo representamos en el diagrama final.

5

1.3. Representación en árbol de Códigos

Ejemplo 1.19. Sea S un alfabeto y consideremos un código c : S −→ B∗ conC = {0, 10, 11, 110}. Entonces la representación en forma de diagrama de árbolsería la Figura 1.2.

Figura 1.2

Observación 1.20. Nótese que una palabra clave c(s) será prefijo de otra, c(s′),si en el único camino que hay de la raíz a c(s′) se pasa por c(s).

6

Capítulo 2

Condiciones necesarias y suficientespara la condición UD

Ya vimos en el Teorema 1.18 una condición suficiente para asegurar la condiciónUD de un código. Pasaremos ahora a estudiar condiciones necesarias y culminare-mos el capítulo dando condiciones equivalentes a la UD.

2.1. El número de Kraft-McMillanDefinición 2.1. Dado un código c : S −→ T ∗, para cada i ∈ N denotaremos porni al cardinal del conjunto

Ni ={s ∈ S : c(s) ∈ T i

};

es decir, es el número de símbolos de S cuyas palabras clave tienen longitud i.Si M es el máximo de las longitudes de las palabras clave (nótese que este

máximo se alcanza pues, al ser S finito, el conjunto de las palabras claves tambiénlo es), a los números n1, n2, ..., nM los llamaremos parámetros de c.

Observación 2.2. Obsérvese que si |T | = p, entonces |T i| = pi y ni ≤ pi paratodo 1 ≤ i < ∞. Luego ni

piindica la proporción de palabras de T de longitud i que

son usadas como palabras clave.

Definición 2.3. Consideremos dos alfabetos S y T , con |T | = p, un códigoc : S −→ T ∗ y n1, ..., nM los parámetros de c. Se define el número de Kraft-McMillan asociado a los parámetros n1, ..., nM y a la "base" p como

K =M∑i=1

ni

pi=

n1

p+

n2

p2+ ... +

nM

pM.

7

2.1. El número de Kraft-McMillan

Este número es de gran importancia pues se tienen los siguientes resultados,que probaremos a continuación:

Si K ≤ 1 para un conjunto de parámetros n1, ..., nM y base p, entonces existeun código p-ario sin prefijo con parámetros asociados los anteriores.

Los parámetros de un código p-ario unívocamente decodificable deben satis-facer la condición K ≤ 1.

Pero antes de probarlos, veamos un ejemplo.

Ejemplo 2.4. Supongamos que queremos construir un código binario, que vayahasta B, sin prefijos y con parámetros asociados los siguientes:

n1 = 0, n2 = 2, n3 = 3, n4 = 1.

En primer lugar, nótese que

K =0

2+

2

4+

3

8+

1

16=

15

16≤ 1.

Construyamos tal código determinando sus palabras clave:

Como n2 = 2, cogemos como palabras clave dos elementos de B2, por ejemplo,00 y 10.

Ahora, como n3 = 3, hemos de escoger 3 palabras claves de B3, pero para quese tenga la condición PF, ninguna de estas puede ser de la forma 00a ó 10a,con a ∈ {0, 1}. Escogemos pues 010, 011 y 110.

Finalmente, como n4 = 1 hemos de escoger una palabra clave de B4. Razo-nando igual que antes, para que se cumpla la condición PF, escogemos 1111.

Hemos construido por tanto un código p-ario c, con C = {00, 10, 010, 011, 110, 1111},que tiene por parámetros asociados a n1 = 0, n2 = 2, n3 = 3, n4 = 1, y que notiene prefijos.

Enunciemos y probemos ahora uno de los resultados previamente anunciados:

Teorema 2.5. Dados p, n1, ..., nM ∈ N, si K =∑M

i=1ni

pi≤ 1, entonces existe un

código p-ario sin prefijos que tiene por parámetros a n1, ..., nM .

Demostración. Sean p, n1, ..., nM ∈ N con K = n1

p+ n2

p2+ ... + nM

pM≤ 1. Entonces

tenemos la siguientes desigualdades:

0 ≤ n1

p≤ 1, 0 ≤ n1

p+

n2

p2≤ 1, 0 ≤ n1

p+

n2

p2+

n3

p3≤ 1, ...

8

2.1. El número de Kraft-McMillan

De estas desigualdades se obtienen las siguientes:

n1 ≤ p, n2 ≤ p(p− n1), n3 ≤ p(p2 − pn1 − n2), ...

y de forma general,

ni ≤ p(pi−1 − n1pi−2 − ...− ni−1), para todo i ∈ {1, 2, ...,M} .

Trabájese el razonamiento expuesto a continuación sobre la Figura 2.1.

Figura 2.1

Construiremos un código determinando sus palabras clave (luego estas se pue-den asignar arbitrariamente a cada símbolo de S). Como n1 ≤ p, es posible elegirn1 palabras clave diferentes de longitud 1 entre los elementos de T 1. Quedan puesp − n1 palabras sin "usar" en T 1, las cuales dan lugar (usándolas como prefijosjunto con otro símbolo de T para obtener elementos de T 2) a (p − n1)p pala-bras de T 2. La condición PF, que queremos asegurar, implicaría que sólo estas(p − n1)p palabras de T 2 son candidatas a palabras clave de longitud 2. Ahora,como n2 ≤ (p− n1)p, podemos elegir n2 palabras distintas de entre esas (p− n1)p.Razonando igual que antes, el imponer de nuevo la condición PF implicaría quesolo hay p(p2−n1p−n2) palabras de T 3 candidatas a ser palabras clave de longitud3, y como n3 ≤ p(p2−n1p−n2), podemos escoger entre estas palabras n3 palabrasclaves distintas.

Para el caso i-ésimo, nos apoyaremos en la Figura 2.2, y consiste en realizar unrazonamiento análogo. El número de palabras clave sin usar de longitud i− 1 sería

fi−1 = pi−1 − n1pi−2 − ...− ni−1,

y como ni ≤ pfi−1, podemos elegir ni palabras de T i como palabras clave, sincontradecir la condición PF.

9

2.2. Condiciones equivalentes a la condición UD

Figura 2.2

Este es un proceso finito, de hecho tendrá M pasos. Hemos visto pues que lacondición K ≤ 1 asegura la existencia de suficientes candidatos a palabras claveen cada paso. Se ha construido así un código p-ario con parámetros asociados losdados, y cumpliendo la condición PF.

2.2. Condiciones equivalentes a la condición UDComenzaremos esta sección presentando nuevos conceptos para posteriormente

probar que si consideramos un código unívocamente decodificable se ha de tenerque K ≤ 1.

De nuevo, consideremos un código c : S −→ T ∗, con parámetros n1, ..., nM .Obsérvese que para una cadena de caracteres s1s2...sr formada por r símbolos deS, con r ≥ 1, se tendrá que la longitud de c(s1s2...sr) será a lo sumo rM .

Denotemos por qr(i) al número de cadenas de caracteres de S con longitud rtales que la longitud de la cadena de caracteres codificada es i. Es decir,

qr(i) =∣∣{s1s2...sr ∈ Sr : c(s1s2...sr) ∈ T i

}∣∣ ,tomando i tal que 1 ≤ i ≤ rM . Además, se tiene que q1(i) = ni.

Definición 2.6. Definimos la función generadora para la secuencia qr(1), qr(2),..., qr(rM), siendo esta una funcion polinómica definida de R a R y denotada porQr, como

Qr(x) = qr(1)x + qr(2)x2 + ... + qr(rM)xrM .

Veamos ahora el conocido como Principio del Conteo, en cuya demostración sehará uso de combinatoria básica, y el cual será de utilidad para futuras demostra-ciones.

10

2.2. Condiciones equivalentes a la condición UD

Lema 2.7 (El Principio del Conteo). Sea c un código unívocamente decodificable.Entonces para todo r ≥ 1 se tiene que Qr(x) = Q1(x)r.

Demostración. Fijemos r ≥ 1. Sea N tal que 1 ≤ N ≤ rM . Recuérdese queq1(i) = ni. ¿Quién será el coeficiente de xN en el producto

Q1(x)r =(n1x + n2x

2 + ... + nMxM)r

?

Las contribuciones a este coeficiente se obtienen multiplicando un total de r térmi-nos, donde cada uno es de un factor distinto del producto.

Consideremos pues un término ni1xi1 del primer factor, un término ni2x

i2 delsegundo factor, etc., tal que i1 + i2 + ... + ir = N , es decir, que la suma de laspotencias de x sea N . Entonces se observa que el coeficiente que acompaña a xN esla suma de todos los productos ni1 ·ni2 ·...·nir donde i1+i2+...+ir = N y nijx

ij estáen el factor j-ésimo, para j ∈ {1, 2, ..., r}. Escrito de otra forma, si consideramosel conjunto A =

{{i1, ..., ir} : ij ∈ N,

∑rj=1 ij = N

}, el coeficiente que acompaña a

xN es ∑{i1,...,ir}∈A

r! · (ni1 · ni2 · ... · nir) .

Calculemos ahora qr(N), esto equivale a preguntarse cuántas cadenas de carac-teres de S, de longitud r, van a parar a cadenas de caracteres de T , de longitudN . Estas cadenas de caracteres son de la siguiente forma: el primer caracter de lacadena de S va a parar a una de las ni1 palabras clave de longitud i1; el segundocaracter de la cadena de S, a una de las ni2 palabras clave de longitud i2; etc., talque i1 + i2 + ...+ ir = N . ¿Cuántas cadenas de caracteres de S distintas hay de estaforma? Por cada elemento del conjunto A =

{{i1, ..., ir} : ij ∈ N,

∑rj=1 ij = N

}, se

tienen r! · (n1 · n2 · ... · nr) cadenas.Obtenemos entonces que este número qr(N) coincide con el coeficiente de xN

calculado anteriormente, y al ser N arbitrario con 1 ≤ N ≤ rM , se obtiene queQr(x) = Q1(x)r.

Teorema 2.8. Si c es un código p-ario y unívocamente decodificable, con paráme-tros asociados n1, ..., nM , entonces el número de Kraft-McMillan asociado a estosparámetros satisface que K ≤ 1.

Demostración. Sea r ≥ 1. Supongamos por reducción al absurdo que K > 1.Tenemos que

Qr

(1

p

)=

qr(1)

p+

qr(2)

p2+ ... +

qr(rM)

prM.

11

2.2. Condiciones equivalentes a la condición UD

Obsérvese que unívocamente decodificable implica que qr(i) ≤ pi = |T i|, esto es,que el número de cadenas s1...sr pertenecientes a Sr, tales que c(s1...sr) ∈ T i, nopuede exceder a |T i| (en otro caso, habría dos elementos distintos de Sr con lamisma imagen, pero c es inyectiva en S∗ ⊃ Sr por ser unívocamente decodificable).

Esto implica que qr(i)pi≤ 1 para todo i ∈ {1, 2, ..., rM}; luego Qr

(1p

)≤ rM .

Ahora, recuérdese que el número de Kraft-McMillan es

K =n1

p+

n2

p2+ ... +

nM

pM= Q1

(1

p

).

Entonces, haciendo uso del Lema 2.7, obtenemos que Kr = Q1

(1p

)r= Qr

(1p

)≤

rM , lo cual implica que Kr

r≤M .

Recuérdese que M = max {longitud de c(s) : s ∈ S} no depende de r, única-mente del código c. Pero como por hipótesis K > 1, lımr→∞

Kr

r= ∞, lo que

contradice que Kr

r≤M para cualquier r ≥ 1.

Luego ha de ser K ≤ 1, como queríamos demostrar.

Aunando los Teoremas 2.5 y 2.8 se obtiene el siguiente corolario.

Corolario 2.9. Sea c un código p-ario, unívocamente decodificable y con parámetrosasociados n1, ..., nM . Entonces existe un código p-ario sin prefijos que tiene porparámetros a n1, ..., nM y además, K =

∑Mi=1

ni

pi≤ 1.

Y finalmente, llegamos a un Teorema de gran importancia.

Teorema 2.10. Sean n1, ..., nM , p ∈ N, S y T dos alfabetos. Entonces las siguientesaserciones son equivalentes:

1. Existe un código p-ario c : S −→ T ∗, unívocamente decodificable y con pará-metros n1, ..., nM ;

2. existe un código p-ario d : S −→ T ∗, sin prefijos y con parámetros n1, ..., nM ;

3. K =∑M

i=1ni

pi≤ 1.

Demostración. La demostración se obtiene trivialmente usando el Teorema 1.18,el Teorema 2.5 y el Corolario 2.9.

12

Capítulo 3

Notas finales

Una vez que se han estudiado condiciones necesarias y suficientes para que uncódigo sea unívocamente decodificable, cabe trabajar tres características distintasde un código, que por motivos de extensión no se desarrollarán en este trabajo.Estas tres características son:

Economía: Cuando se trata de transmitir constantemente mensajes de unalongitud considerable, la economía es esencial. Hemos de buscar un códigoque trabaje con un mínimo de caracteres a la hora de codificar un mensaje.

Fiabilidad: A veces el medio de transmisión del mensaje puede hacer que elreceptor lo reciba con fallos. Se busca pues que esto ocurra lo menos posibley que, en caso de ocurrir, afecte en menor medida a la decodificación delmensaje.

Seguridad: Buscamos usar códigos que hagan difíciles la decodificación a aque-llas personas no deseadas que intercepten el mensaje.

Para lecturas más avanzadas nos remitimos a los elementos [1] y [2] de la biblio-grafía, mientras que dejamos la recomendación del elemento [3] para aquellos quebusquen un acercamiento más histórico y profundo a la criptografía en particular.

13

Bibliografía

[1] Biggs, Norman L., "Codes: An Introduction to Information Communicationand Cryptography", Springer, 2008.

[2] Hall, J. I., "Notes on Coding Theory", Michigan State University, 2010.

[3] Urgellés, Joan Gómez, "Matemáticos, espías y piratas informáticos", RBA,2012.

14