Cálculo de Palabras de Código Binarias
Cálculo de Palabras de Código Binarias
FOLLETO
“TEORÍA DE LA INFORMACIÓN Y CODIFICACIÓN”
INF 324
PROFESORA
OLGA ESTER BATISTA GONZÁLEZ.
SANTIAGO 2005.
i
ÍNDICE
ÍNDICE __________________________________________________________________ i
1. GENERALIDADES ___________________________________________________ 1
4.3. LONGITUD__________________________________________________________ 15
4.4. YUXTAPOSICIÓN____________________________________________________ 15
1. GENERALIDADES
Este folleto ha sido elaborado considerando el programa de la asignatura de Teoría de la Información y
Codificación (Inf. 324) de la Licenciatura en Ingeniería en Informática de la Universidad de Panamá.
El mismo resalta, brevemente la descripción e importancia de la Teoría de la Información y
Codificación, y presenta el desarrollo los contenidos: Nociones Básicas de Información, los códigos,
los códigos unívocamente decodificables, los códigos instantáneos y el teorema de Kraft, la
codificación eficiente, la información y sus fuentes y el problema fundamental de la codificación de
fuentes de información.
En esta descripción funcional de una computadora, en todos los puntos aparece la palabra
información, y por lo tanto debería existir un paso previo a todo lo indicado anteriormente, en
el que se estudiase cuidadosamente todo lo relativo a ello.
Así, habría que definir lo que se entiende por información, qué propiedades tiene, si es posible
medir la cantidad de información. También sería tremendamente interesante poder construir
modelos (abstractos en un principio) de sistemas que generen información, y a partir de ellos y
mediante las herramientas matemáticas adecuadas, poder deducir propiedades que de alguna
manera puedan ser útiles en el mundo real.
Llegado este punto, introducir el concepto de código es inmediato, ya que no es más que el
establecimiento de una correspondencia entre la información por representar y el conjunto de
símbolos que la representen, idea que coincide con el concepto matemático de
correspondencia.
Folleto-“Teoría de la información y Codificación” 3
El siguiente paso es unir los conceptos de fuente de información con el de código, con lo que
se obtendrá un modelo que proporciona a su salida información ya codificada, es decir, lista
para ser transformada y/o transferida por una computadora. En este punto entra en juego un
parámetro muy importante en el mundo real: el coste y la eficiencia económica. Así, se pueden
indicar las siguientes consideraciones:
Conviene utilizar códigos que sean eficientes en cuanto al coste de transmisión; para
transmitir un mensaje se debería utilizar su representación codificada de la manera más
breve, con lo que los gastos en equipos de transmisión sean lo más bajos posibles.
Conviene utilizar códigos que permitan almacenar la información utilizando el menor
espacio posible, ahorrándose por lo tanto en equipos como son unidades de disco o cinta,
etc.
También es muy importante la creación de códigos seguros, es decir, que mantengan la
información del mensaje original accesible sólo a aquellos usuarios autorizados, mientras
que para el resto de los usuarios resulte ininteligible. Este aspecto es tratado por la
criptografía.
Como se ha podido observar en los últimos puntos, el estudio de la representación de la
información (es decir, los códigos), conlleva una serie de aspectos de elevadísimo interés
económico, y cuya aplicación al mundo real es indiscutible.
Otro paso que se va a modelar en la teoría de la información es el hecho de la transmisión de la
información entre dos sistemas, el emisor y el receptor. Es bien conocido que durante el
transporte las señales que codifican o representan la información pueden sufrir, y de hecho
sufren, modificaciones aleatorias que provocan cambios en el mensaje transmitido. Estos
errores, tal y como se ha indicado, son de naturaleza aleatoria, y de nuevo las matemáticas
permiten establecer modelos para su estudio y, a través de estos modelos, se determinan y
descubren las propiedades que les son inherentes. Al modelo que describe las posibles
transformaciones en el mensaje codificado durante su transmisión (aunque dichas
transformaciones pueden darse también durante el tratamiento o el almacenamiento del
mensaje codificado) se le denomina canal de información.
Estudiando los canales de información, al igual que ocurría con las fuentes de información,
pueden extraerse una serie de conclusiones muy interesantes y de aplicación inmediatas al
mundo real, como son buscar maneras de representar la información (códigos) para ser
Folleto-“Teoría de la información y Codificación” 4
enviada a través de un sistema de transmisión que posee ruido, de tal manera que la presencia
de los errores debidos a ruido afecte lo menos posible al contenido del mensaje enviado. Es
decir, se buscan códigos que minimicen el efecto del ruido y permitan reconstruir el mensaje
original sin ningún error, a pesar de que el medio de transmisión tenga ruido.
La sociedad actual está agobiada por montañas de información, esto es, datos, noticias y
conocimientos que, para ser útiles, exigen, cuando menos, una rápida clasificación. Aquellos
que son capaces de clasificar, sintetizar, almacenar y aplicarlos adecuadamente, se convierten
en expertos en un dominio. Dado que pocas personas tienen tiempo, interés, medios o recursos
para convertirse en expertos, hace que la gente se base en la experiencia de otros para
satisfacer sus necesidades de información.
Sin una adecuada clasificación de la abrumadora cantidad de datos y tiempo para organizar las
noticias, la gente actúa como si estuviera en la edad de los datos. Transformar los datos en
noticias fue el desafío de la sociedad de los ochenta, convertir las noticias en conocimientos
fue el reto de la sociedad de los noventa.
La información, genéricamente considerada, forma parte de un proceso jerárquico que va de los
datos a la sabiduría, y que aparece ilustrado en la figura 1.1
2.2.4. SABIDURÍA:
A partir de la experiencia y los juicios críticos que actúan sobre los conocimientos, se alcanza la
sabiduría
Trabajo individual Nº 1
Indicaciones:
Conteste A las interrogantes de la asignación N°1.
Discusión de las respuestas en la próxima clase.
Asignación N°1
1. Defina el término información.
2. Explique las tres propiedades comunes a todo elemento de la información.
3. Explique los dos aspectos de la información que caben resaltar en el advenimiento de la
sociedad post- industrial (sociedad del conocimiento).
4. Explique cada uno de los componentes del proceso jerárquico de la información,
genéricamente considerada.
5. Señale los tres niveles, que se pueden considerar, de la información.
6. ¿Cuál es el primer factor que debemos considerar para posibilitar la utilización de un
computador? Explique
7. Explique en qué consiste el código binario (símbolos empleados y en qué se traduce
internamente cada dato noticia o conocimiento en un computador). Señale las ventajas e
inconvenientes de este sistema de representación.
8. ¿Cuál es el objeto de estudio de la teoría de la información?
9. ¿Qué se entiende por ruido en la traducción (decodificación) del mensaje?
10. ¿Cuántos mensajes de m caracteres de longitud se pueden formar con un alfabeto de n
símbolos?
11. ¿Explique uno de los principales problemas de la teoría de la Información?
12. Explique cada uno de los componentes de un sistema de comunicación y haga su
representación esquemática tradicional.
13. Señale algunos de los posibles procesamientos que las computadoras como máquinas
capaces de tratar automáticamente la información pueden realizar.
14. Nombre que recibe el modelo matemático que describe las posibles transformaciones que
pueden darse en el mensaje codificado durante su transmisión.
15. Señale tres consideraciones que debemos tener presente en cuanto al coste y la eficiencia
económica de los códigos (Representación de la información).
Folleto-“Teoría de la información y Codificación” 14
3.2. NOTACIÓN
Una cadena se denota por letras en negritas tales como: x, y, z.
Si x = x1 x 2 ...x k es una cadena sobre S entonces cada x i en x es un elemento de S.
3.3. LONGITUD
La longitud de una cadena x, denotada por len (x) , es el numero de elementos en la cadena.
3.4. YUXTAPOSICIÓN
La Yuxtaposición de dos cadenas x y y es al cadena xy.
Ejemplo: la yuxtaposición de x =101 , y =1000 es xy = 1011000.
Si una cadena tiene la forma z = xy ,se dice que x es el prefijo de z.
Ejemplo: 101 es el prefijo de 1011000, y 110 es un prefijo de 1101010.
Es claro que len (xy) = len (x) + len (y)
El Conjunto de todas las cadenas sobre S la denotaremos por S * Incluimos en S * la cadena
vacía, denotada por , y definida como la cadena que no tiene elemento, su longitud
len ( ) = 0
Si n es un numero entero no negativo el conjunto de todas las cadenas sobre S de longitud n
es denotado por S n y el conjunto de todas las cadenas sobre S de longitud n o menos es
denotado por Sn
Entonces S n Sn S *
Folleto-“Teoría de la información y Codificación” 16
Ejemplo si consideramos la base binaria, una cadena sobre 2 = 0, 1 es llamada cadena
binaria. Cada uno de los elementos 0 y 1 es llamado un bit, el cual es una contracción de
dígito binario.
¿Cuántas cadenas de longitud 2 hay en el alfabeto 0,1 ?
01, 00, 10, 11 22 = 4
¿Cuántas cadenas de mensajes diferentes hay en el alfabeto 0,1 si la longitud de la cadena
es 3? 23 =8 000, 001, 010, 011, 111, 110, 101, 100.
¿Cuántas cadenas de longitud n hay en el alfabeto S = 0,1?
Existen 2n cadenas de mensajes diferentes
En general en un alfabeto S = s1, s2 ,...sb de b símbolos el número total de mensajes
Está definido por la cadena obtenida al reemplazar todos los ceros por unos y todos los unos por
ceros. Ejemplo (110110)c = 001001.
Una cadena sobre 3 = 0, 1,2 se llama cadena ternaria.
Si cero está en el alfabeto denotamos por 0 la cadena que contiene sólo ceros 0=0000...0
En forma similar si el 1 está en el alfabeto, denotamos por 1 la cadena 1=1111...1
Ejemplo En 5 2 0=00000, 1=11111.
Para 0 i n , denotamos por ei a la cadena que contiene todos los elementos ceros, excepto el
1) S n = K n
K n +1 − 1
2) S =
K −1
n
Folleto-“Teoría de la información y Codificación” 17
Prueba:
Parte 1 Observe que cada cadena en S n puede formarse escogiendo uno de los K
símbolos para la primera posición, uno para la segunda posición, uno para la tercera posición, y
así sucesivamente. Como hay K opciones para cada una de las n posiciones, el número de
KKK...
cadenas que pueden formase de esta manera es : K , y por tanto S n = K n
n veces
Sn = S 0 + S 1 + S 2 + + S n Por definición de S n .
Sn = K 0 + K 1 + K 2 + + K n Por Parte 1 S n = K n
Sn = Kn S 8 = 2 8 = 256 Cadenas
C k ( r − 1) n −k = C2 (3 − 1) 6−2 =
n 6 6!
(2) 4 =
6.5.4!
(16) = 6.5.8 = 240 Cadenas.
4!.2! 4!.2
PRÁCTICA #1
TEMA: CADENAS
RESUELVA LOS SIGUIENTES PROBLEMAS CON LA AYUDA DEL MATERIAL DE LA
CLASE ANTERIOR.
EVALUACIÓN: PARTICIPACIÓN VOLUNTARIA EN LA RESOLUCIÓN DE CADA
PROBLEMA.
PROBLEMA 1
uno(s).
Resp. 612360 cadenas
PROBLEMA 3
¿Cuántas cadenas de longitud tres o menos se pueden formar en un alfabeto ternario 33 ,
Cuántas de longitud 10 o menos en este mismo alfabeto?
Resp 40, 88573 cadenas.
Folleto-“Teoría de la información y Codificación” 19
4. LOS CÓDIGOS
Un código no es más que un conjunto de cadenas sobre un cierto alfabeto. Por ejemplo, el
conjunto C = 0, 10, 110, 1110 es un código sobre el alfabeto 2 . Los códigos son usados
generalmente para codificar mensajes. Por ejemplo, podemos usar C para codificar las primeras
cuatro letras del alfabeto, así:
a→0
b → 10
c → 110
d → 1110
Luego podemos codificar palabras con estas letras. La palabra cab se codifica como 110010 .
Estas ideas nos permiten comprender las definiciones que presentamos a continuación.
Sea A = a1 , a2 , ... ar un conjunto finito, el cual llamaremos alfabeto código. Un r – ario
*
código sobre A es un subconjunto C del conjunto A de todas las palabras (cadenas) sobre A .
Los elementos de C son llamadas palabras claves. El número “r” es llamado base del código.
Sea S = s1 , s2 , ... s q un conjunto finito, al cual denominaremos alfabeto fuente Suponga que C
tomado el código C = 0, 1, 2, ..., 25, hubiera surgido problemas, por ejemplo la cadena 1414
llevaría diferentes mensajes.
Bebe, oo, beo obe
Seguidamente se presenta parte de un código comúnmente usado, el ASCII: Código americano
estándar para el intercambio de información.
A 01000001 J 01001010 S 01010011
B 01000010 K 01001011 T 01010100
C 01000100 L 01001100 U 01010101
D 01000101 M 01001101 V 01010110
E 01000110 N 01001110 W 01010111
F 01000111 O 01001111 X 01010011
G 01001000 P 01010000 Y 01011000
H 01001000 Q 01010001 Z 01011001
I 01001001 R 01010010 Space 01011010
Este código es usado por las microcomputadoras para almacenar caracteres en la memoria o en
medios de almacenamiento y consiste de los números binarios desde 00000000 hasta 11111111
Folleto-“Teoría de la información y Codificación” 21
(desde 0 hasta 127 en el sistema decimal) Por ejemplo el código para la letra mayúscula A es
01000001 y en decimal es 65 (Alt+65).
n = log 2 126
n 7 ya que : 2 6 126 2 7
código C = 0,1
Folleto-“Teoría de la información y Codificación” 22
Función
F: a b
G: b a
F(a)=0, F(b)=1
G(b)=1, G(a)=0
3. ¿Cuántas funciones de codificación son posibles en el alfabeto fuente S = a, b, c para el
código C = 00, 01, 11
Hay solamente 6 funciones de codificación:
Código
3!=3x2=6 00 01 11
F: a b c
G: a c b
Función
H: b a c
I: b c a
J: c a b
K: c b a
C = c1 , c2 , c3 ,cn .
c1 c2 c3 cn
PRÁCTICA #2
TEMA: CÓDIGOS
RESUELVA LOS SIGUIENTES PROBLEMAS CON LA AYUDA DEL MATERIAL DE LA
CLASE CORRESPONDIENTE.
EVALUACIÓN: PARTICIPACIÓN VOLUNTARIA EN LA RESOLUCIÓN DE CADA
PROBLEMA.
PROBLEMA 1
¿Cuántos códigos bloques r-arios de longitud “n” hay sobre un alfabeto código A.
¿Cuántos códigos binarios hay de longitud 4?
PROBLEMA 2
¿Cuántos códigos r-arios con palabras claves de longitud máxima “n” hay sobre un
alfabeto código A = a1, a2 , ar . ¿Cuántos códigos binarios hay de longitud máxima 4?
Ayuda (para problema 1 y 2) Si X = a1 , a2 ,, an el número de subconjuntos de X está dado
por 2 n .
PROBLEMA 3
Suponga que usted requiere un código bloque r-ario que contiene n palabras claves.¿Cuál es la
longitud mínima posible de cada palabra clave para este código?
Si el alfabeto código es A = 0,1 y el código tiene 1020 palabras claves. ¿Cuál es la longitud
mínima posible de cada palabra clave.
Folleto-“Teoría de la información y Codificación” 24
sobre A existe a lo sumo una secuencia de palabras claves (palabras códigos) c1c2 cm para la
cual:
c1c2 cm = x1 x 2 x n
m=n y c1 = d1 , c2 = d 2 ... cn = d m
Ejemplo: Considere los siguientes códigos:
C1 = c1 = 0, c2 = 01, c3 = 001 C2 = d1 = 0, d 2 = 10, d 3 = 110
c3 → 001
diferentes de palabras claves
c1c 2 → 001
C2 es unívocamente decodificable puesto que cualquier cadena corresponde a lo sumo a una
palabra clave, pero 10 si es. Además solamente una palabra clave empieza con 10 (d 2 ) . Después
vemos a un cero, el cual debe representar d1 , ya que ninguna otra palabra clave empieza con
cero. Continuando de esta manera, vemos que esta cadena representa sólo una secuencia de
palabras claves (d 2 d1d1d 3 ) .
Folleto-“Teoría de la información y Codificación” 25
1
hacer los términos pequeños).
r li
Ejemplo: Suponga que queremos un código binario consistente de 6 palabras claves, pero
restringimos las longitudes de las palabras claves a un máximo de 2 (es decir li 2 para
i = 1,2, 6 ).
Puesto que hay precisamente 6 cadenas no triviales sobre A = 0,1 de longitud a lo sumo 2,
nuestro código debe consistir de estas seis cadenas. Es decir:
Folleto-“Teoría de la información y Codificación” 26
C = 0, 1, 00, 01, 10, 11. Pero este código no es unívocamente decodificable. La cadena 01 tiene
01 → c 4
dos interpretaciones:
01 → c1c 2
En este caso la poca longitud de las palabras claves nos obliga a usar palabras claves tal como 01
que son echas de palabras claves más pequeñas como (0 y 1). Esto impide al código ser
unívocamente decodificable.
Por supuesto que podía usar el Teorema de Mc Millan’s para decir que tal código no podría ser
unívocamente decodificable. En este caso:
li 2 para i = 1,2, 6
r li r 2
1 1
De donde li
2
r r
q q
1 1
Aplicando la sumatoria i =1 r li
i= r2
6 6
1 1
i =1 r li
i= r2
6 6
1 1
Como r = 2 i =1 r li
i= 22
6
1 1
i =1 r li
6 2
2
6
1 6
i =1
r li 4
6
1 3
i =1
1
r li 2
Lo que nos indica que la desigualdad de Kraft’s no se verifica para este código, por lo tanto este
no puede ser unívocamente decodificable.
Note que el Teorema de Mc Millan’s no puede decirnos cuándo un código particular es
unívocamente decodificable, sino sólo cuando no lo es. El teorema no nos dice que cualquier
código cuya longitudes de las palabras claves satisface la desigualdad de Kraft’s debe ser
unívocamente decodificable. Más bien, dice que si un código es unívocamente decodificable,
entonces la longitud de sus palabras claves deben satisfacer la desigualdad de Kraft’s. Así pues,
Folleto-“Teoría de la información y Codificación” 27
primer cero, no podemos decir si esta debería ser interpretado como la palabra clave c1 0 como
el comienzo de c2 . Una vez que recibimos el segundo cero en el mensaje, sabemos que el
primer cero debe ser c1 , pero no sabemos acerca del segundo cero. Así las palabras claves no
pueden ser interpretadas tan pronto como ella son recibidas.
Por otro lado el código C4 = d1 = 0, d 2 = 10 las palabras claves individuales pueden ser
interpretadas tan pronto como son recibidas.
Por ejemplo: considere la cadena 00100. Tan pronto como el primer cero es recibido, sabemos
recibido sabemos que un cero viene después, y que la cadena 10 debe ser d 2 . Así el mensaje
puede ser interpretado palabra clave por palabra clave.
Hay una forma simple de decir cuando un código es instantáneo. Para ello necesitamos de la
siguiente definición.
Folleto-“Teoría de la información y Codificación” 29
Sin embargo el código C1 = c1 = 0, c2 = 01, c3 = 001 no tiene esta propiedad puesto que c1 es
un prefijo de c2 ( y de c3 )
C = c1 , c2 , cq
1. Existe un código C r-ario instantáneo con longitudes de palabras
l1 , l2 , l3 , ...lq
claves sí y solo sí estas longitudes satisfacen la desigualdad de Kraft’s
q
1
r
k =1
lk
1
de Kraft’s , entonces allí debe existir algún código instantáneo con estas longitudes de palabras
claves . Esto no dice que cualquier código cuyas longitudes de palabras claves satisfagan la
desigualdad de Kraft’s debe ser instantáneo.
Resuelva la siguiente situación:
Pruebe que el código binario C = 0, 11, 100, 110, satisface la desigualdad de Kraf’s, pero no es
instantáneo.
Sea A = 0, 1, 2 y suponga que l1 = 1, l2 = 1, l3 = 2, l4 = 4, l5 = 4, l6 = 5 , si es posible encontrar un
código con estas longitudes de palabras claves, entonces construya tal código.
El Teorema de Kraft’s y el Teorema de Mc Millan’s juntos nos dicen algo interesante acerca de
la relación entre códigos unívocamente decodificables y y códigos instantáneos en particular si
l1 , l2 , l3 , ...ln
existe un código unívocamente decodificable con longitudes de palabras claves ,
entonces de acuerdo con el Teorema de Mc Millan’s , estas longitudes deben satisfacer la
desigualdad de Kraft’s. Entonces podemos aplicar el teorema de Kraft’s para concluir que
también debe existir un código instantáneo con esas longitudes de palabras claves. En resumen,
al respecto, tenemos el siguiente teorema:
Folleto-“Teoría de la información y Codificación” 31
entonces debe existir un código instantáneo con estas mismas longitudes de palabras claves.
Nuestro interés en este teorema se verá más tarde cuando regresemos a la pregunta de encontrar
códigos deseables con longitudes de palabras lo más cortas posibles. Esto nos dice que no
perdemos nada considerando sólo los códigos instantáneos (mas bien que todos los código
unívocamente decodificables)
Ejemplo: Sea A = 0,1. Suponga que se necesita un código instantáneo C que contiene las
palabras claves 0, 10, 110. ¿Cuántas palabras claves adicionales de longitud 5 podrían ser
añadidas a este código?
Solución:
Según la situación planteada se desea obtener un código instantáneo maximal.
Sea x la cantidad de palabras claves de longitud 5 que podemos añadir:
q q
1 1 1 1 1 x
k =1 r
lk
=1 r
k =1
lk
= + 2 + 3 + 5 =1
2 2 2 2
Entonces debe cumplirse: es decir:
1 1 1 x
+ 2 + 3 + 5 =1
Luego: 2 2 2 2
7 x
+ = 1 de donde x = 4
8 32
Se pueden añadir a lo suma 4 palabras claves de longitud 5. Es fácil hallar que el código
solicitado es:
C = 0, 10, 110, 11100, 11101, 11110, 11111
PRÁCTICA:
1. Escriba los prefijos de la palabra clave c1 = 0111
2. Suponga que deseamos codificar la salida de una fuente decimal S = 0, 1, 2, 3,,9, en
un código instantáneo binario. Admitamos además, que existe una razón que aconseja
codificar los símbolos 0 y 1 de la fuente decimal en palabra binarias relativamente cortas.
Este requisito se presenta realmente en una fuente que emite muchos más 0s y 1s que 2s,
3s, etc. Si codifican los 0s y 1s de la fuente en la siguiente forma:
0 →0 1 → 10
Folleto-“Teoría de la información y Codificación” 32
¿Cuán cortas podemos hacer las ocho palabras claves restantes. Si se exigen que tenga la misma
longitud? Escriba el código solicitado.
el único prefijo de tres bits sin utilizar es 111, por lo que puede hacerse
S 4 → 1110 y
S 5 → 1111
Hay que destacar que por el hecho de asignar a S1 el valor 0, automáticamente se limita el
número de posibles palabras código. Dado este paso deberemos concretarnos a palabras que
empiezan por 1. Puede imaginarse, por lo tanto, que si seleccionamos una palabra de 2 binits
para representar a S1 , tendríamos un mayor grado de libertad en la elección de las siguientes, y
llegaríamos incluso a evitar palabras tan largas como las dos últimas del código anterior.
Probaremos esta sugerencia sintetizando un nuevo código binario instantáneo con los mismos
símbolos; comenzaremos por hacer
S1 → 00
Quedan aun dos prefijos de longitud 2 sin utilizar, prefijos que podremos emplear en la siguiente
forma:
S 3 → 10
S 4 → 110
S 5 → 111
La pregunta de cuál de los dos códigos elaborados es mejor no puede contestarse simplemente
con los criterios vistos hasta aquí. Este ejemplo se limita a demostrar que en la construcción de
un código instantáneo, cuanto más cortas sean las primeras palabras, más largas tienen que ser
las últimas. En el primer código, por elegir un 0, todas las demás palabras deberán ser
secuencias que empiecen por 1. En el segundo código, la primera palabra es 00. En este caso
podremos elegir todas las que empiezan por 1 y las que lo hacen por 01.
2
i =1
−1i
1
donde la suma se extiende a todas las palabras del código. Es interesante ver en qué forma puede
li li
utilizarse esta inecuación para determinar si las de una secuencia dada de pueden constituir
las longitudes de las palabras de un código instantáneo.
s
Tomemos una fuente de información con cuatro símbolos posibles, s1 , s2 , 3 y s 4 . En la Tabla
3-6 se exponen cinco códigos que pueden adoptarse para codificar estos símbolos en alfabeto
binario.
Tabla 3-6. Cinco códigos binarios.
Símbolos de
Código A Código B Código C Código D Código E
La fuente
s1 00 0 0 0 0
s2 01 100 10 100 10
s3
10 110 110 110 110
s4
11 111 111 11 11
Folleto-“Teoría de la información y Codificación” 34
b
Calcularemos el valor de 2
i =1
−1i
para cada uno de estos códigos.
2 i =1
−1i
= 2 −2 + 2 −2 + 2 −2 + 2 −2 = 1
Por lo tanto, las longitudes de las palabras de A son aceptables para un código instantáneo. Hay
que resaltar, sin embargo, que la inecuación de Kraft no asegura que el código A sea un código
instantáneo. La inecuación condiciona nuevamente las longitudes de las palabras y no las
palabras mismas. En `particular, en este ejemplo, la inecuación dice que puede existir un código
binario instantáneo con cuatro palabras de longitud 2. En este caso está claro que, no sólo las
longitudes del código A son aptas, sino también que las palabras mismas constituyen un código
instantáneo.
Para el código B
4
2
i =1
−1i
= 2 −1 + 2 −3 + 2 −3 + 2 −3 = 7
8
1
Vemos nuevamente que las longitudes de sus palabras pueden constituir un código instantáneo.
Analizándolas seguidamente, comprobamos que forman realmente un código instantáneo, ya que
ninguna palabra del código coincide con el prefijo de otra. El código C es idéntico al B ,
excepto la segunda palabra de la que se ha suprimido un binit. Calculando
4
2
i =1
−1i
= 2 −1 + 2 −2 + 2 −3 + 2 −3 = 1
vemos que las longitudes de C satisfacen la inecuación de Kraft. Se confirma, además, que
constituye un código instantáneo. El código D se deduce también del B suprimiendo bits (esta
vez de la cuarta palabra). Se comprueba que sus longitudes satisfacen la inecuación de Kraft.
Como ya hemos dicho, esto no constituye condición suficiente para que el código D sea
instantáneo, y, efectivamente, en este caso puede apreciarse que la cuarta palabra es un prefijo de
la tercera. Luego el código D no es instantáneo.
Finalmente, calculamos para el código E de la tabla 3-6 el valor de la suma
4
2
i =1
−1i
= 2 −1 + 2 −2 + 2 −3 + 2 −2 = 9
8
Folleto-“Teoría de la información y Codificación” 35
Este código no requiere más análisis. Las longitudes de sus palabras no satisfacen la inecuación
de Kraft y, en consecuencia, no puede ser un código instantáneo.
7. CODIFICACIÓN EFICIENTE
si
alfabeto fuente, y “ P ” es una ley de probabilidad que asigna a cada elemento “ ” de “ S ” una
P( si )
probabilidad . La secuencia P( s1 ), ..., P( sq ) es la distribución de probabilidad para S.
palabras claves.
Definición: Sea S = (S, P) una fuente de información, y supongamos que (C, f ) es un esquema
S = s1 , s2 , sq
de codificación para . La longitud promedio de la palabra clave de (C, f ) es:
q
Len( f ( s )) P( s )
i =1
i i
Ejemplo:
Considere el alfabeto origen S = { a, b, c, d } con probabilidad de ocurrencia.
2 2 8 5
P( a ) = P(b) = P( c ) = P( d ) =
17 17 17 17
Si denotamos por Min Ave CodeLenr (S ) , la longitud promedio mínima de las palabras claves,
tomadas sobre todos los esquemas de codificación r – arios, unívocamente decodificable para S,
y denotamos por Ave Code Lent Huff r (S ) , la longitud promedio de las palabras claves de
cualquier esquema de codificación de Huffman r – ario, se tiene que
Ave Code Lent Huff r (S ) = Min Ave CodeLenr (S )
Paso 1. Coloque cada símbolo dentro de un nodo.. Etiquete cada nodo con la probabilidad
correspondiente y ordénelos en orden creciente de probabilidades.
Folleto-“Teoría de la información y Codificación” 38
Paso 2. Conecte los dos nodos más a la izquierda a un nuevo nodo. Etiquete el nuevo nodo con
la suma de las probabilidades asociadas a los nodos originales. Baje esta porción de la figura de
tal manera que el nuevo nodo esté en la hilera de arriba.
Paso 3. Repita el proceso de ordenamiento de la figura de tal manera que los nodos en el nivel
superior estén en orden creciente de probabilidades, y luego conectar los dos nodos más a la
izquierda, hasta que solo un nodo permanezca en la hilera superior.
Folleto-“Teoría de la información y Codificación” 39
Paso 4. Descarte todas las probabilidades y etiquete cada segmento de línea que se inclina hacia
arriba (desde izquierda a derecha) con un cero, y cada segmento de línea que se inclina para
abajo (de izquierda a derecha) con un uno. El resultado se denomina árbol de Huffman. Para
determinar la palabra clave asociada a cada símbolo, comience en la base y escriba la secuencia
de bits encontradas en el camino en el sentido hacia abajo.
Verifique que:
Símbolo origen Código.
a 11
b 010
c 00
d 10
1 0111
2 0110
Pruebe que este es un código instantáneo y encuentre la longitud promedio de las palabras
claves. (Resp. 2.32)
Note que un código binario (bloque) requiere palabras claves de longitud al menos 3 para
codificar 6 símbolos de origen (2 2 6 2 3 ) . Así pues la longitud promedio de la palabra clave
de un código bloque de longitud fija 3 es 3, por tanto el código de Huffman reduce la longitud
promedio de las palabras claves en un 22.7%.
Notemos que el esquema de codificación de Huffman no necesariamente es único para una
fuente S dada. Esto se debe a la ambigüedad que ocurre cuando dos nodos de la hilera superior
Folleto-“Teoría de la información y Codificación” 40
tienen la misma probabilidad. Sin embargo, todos los esquemas de codificación de Huffman para
S tienen la misma longitud promedio de palabras claves, y lo cual de acuerdo al teorema anterior,
es la más pequeña entre todos los esquemas de codificación instantánea para S.
Asignación
1. Encuentre una codificación de Huffman de la distribución de probabilidad dada, en
cada situación. Determine el ahorro sobre el más eficiente código de longitud fija:
Símbolo origen Probabilidad. Símbolo origen Probabilidad. Símbolo origen Probabilidad.
A 0.1 A 0.25 A 0.1
B 0.2 B 0.25 B 0.1
C 0.4 C 0.25 C 0.1
D 0.2 D 0.24 D 0.1
E 0.1 E 0.01
J 0.1
definida la información obtenida desde un símbolo de origen esta debería tener la propiedad de
que a menor probabilidad que un símbolo de origen ocurra, más información obtenemos de la
ocurrencia de ese símbolo, y a la inversa.
Como la información obtenida de un símbolo de origen no es función del símbolo en sí mismo,
sino, más bien de su probabilidad de ocurrencia, se usará la notación I ( p) , para designar la
información obtenida desde el símbolo de origen con probabilidad de ocurrencia p , a
continuación presentamos tres afirmaciones sobre la función I ( p) definida para todo 0 p 1
• I ( p) 0
• La función I ( p) es continua en
Puesto que asumimos que los eventos si y s j (ocurridos en diferentes transmisiones) son
independientes, la información de que ambos eventos han ocurrido deberá ser la suma de I ( pi ) y
• I ( p1 p2 ) = I ( p1 ) + I ( p2 )
s1 , s2 ,sq
FUENTE
(Fuente de información)
Imaginemos la fuente emitiendo una secuencia de símbolos perteneciente a un alfabeto finito y
fijo S = s1 , s2 ,, sq . Los símbolos emitidos sucesivamente se eligen de acuerdo a una ley fija
de probabilidad. Ocasionalmente nos referimos a la fuente misma como S , sin que esto deba dar
lugar a confusión. En la fuente más sencilla admitiremos que los símbolos emitidos son
estadísticamente independientes. Tal fuente de información se conoce como fuente de memoria
nula y puede escribirse completamente mediante el alfabeto fuente S y la probabilidad con que
los símbolos se presentan: p( s1 ), P( s2 ) P( sq ) .
Folleto-“Teoría de la información y Codificación” 43
log b x
log a x = Despejando log a x
log b a
En el logaritmo de base 2 la unidad de información se denomina bit:
1
I ( E ) = log 2 bit.
P( E )
En el logaritmo natural de base e la unidad de información se denomina nats:
1
I ( E ) = ln nats.
P( E )
En el logaritmo de base 10 la unidad de información se denomina Hartley:
1
I ( E ) = log10 Hartley.
P( E )
(R.V. Hartley fue el primero en sugerir una unidad logarítmica de la información en 1928).
Para el logaritmo de base r la unidad de información está dada por:
1
I ( E ) = log r unidades de orden r .
P( E )
Folleto-“Teoría de la información y Codificación” 44
1 I ( E ) = log 10 10 = 1 Hartley
Si P( E ) = 1 Hartley = 3.32 bit
10 I ( E ) = log 2 10 = 3.32 bit
1 I ( E ) = log e e = 1 nat
Si P( E ) = 1 Nat = 1.44 bit
e I ( E ) = log 2 e = 1.44 bit
Ejemplo 1:
1 1
Notemos que si P( E ) = , I ( E ) = log 2 bit. = 1 bit, es decir un bit es la cantidad de
2 P( E )
información obtenida al especificar una de dos posibles alternativas igualmente probable. Esta
situación se presenta al lanzar una moneda al aire a o al examinar la salida de un sistema de
comunicación binario.
Ejemplo 2:
¿Cuál será la cantidad de información transmitida por un sistema de comunicación,
específicamente la imagen de televisión, si está formada por una estructura de puntos negros,
blancos y grises, dispuestos en 500 filas y 600 columnas aproximadamente. Admita que cada
uno de esos (500 )(600 ) = 300000 puntos puede adoptar uno de los diez niveles de brillo
diferentes, de manera que puede haber 10 300000 imágenes distintas de TV. Si todas son
1
igualmente probables, la probabilidad de una imagen cualquiera es igual a P( E ) = 300000
y la
10
cantidad de información que contiene es:
1 1
I ( E ) = log 2 = log 2 = log 2 10 300000
P( E ) 1
10 300000
I ( E ) = 300000 log 2 10 = (300000 )( 3.321928 ) = 996578 .4 bit 1x10 6 bits
Ejemplo 3:
Comparemos la información obtenida en una imagen de televisión, calculada en el ejemplo
anterior, con la información contenida en 1000 palabras emitidas por un locutor de radio.
Supongamos que el locutor tiene un vocabulario de 10000 palabras y que ha elegido entre ellas
Folleto-“Teoría de la información y Codificación” 45
1
I ( si ) = log 2 bits (Recuerde que bit es la contracción de unidad binaria).
P ( si )
I ( si ) puede interpretarse como la información necesaria para que la presencia de " si " sea cierta.
Esta magnitud, cantidad media de información por símbolo de la fuente, recibe el nombre de
Entropía H (S ) de la fuente de memoria nula.
q
H ( S ) = P( si ) I ( si ) bits
i =1
H (S ) es la entropía de una fuente S , define el valor mínimo del número medio de símbolos
necesarios para codificar cada símbolo de la fuente o el valor medio de incertidumbre de un
observador antes de conocer la salida de la fuente.
Ejemplo: 4
Folleto-“Teoría de la información y Codificación” 46
1
q
log 2
P ( si )
De (*) se deduce: H r ( S ) = P( si )
H (S ) H (S )
= H r (S ) =
i =1 log 2 r log 2 r log 2 r
La curva y = ln x se mantiene siempre por debajo de la recta, por tanto podemos escribir la
q
yi 1 q q
x log i 2
xi ln 2 i =1
y i − xi
i =1 i =1
q q
Como xi = x j = 1
i =1 j =1
q
yi
x log
i =1
i 2
xi
0 (* * **)
q q q
= xi log 2 yi − log 2 xi = xi log 2 yi − xi log 2 xi
yi
xi log 2
i =1 xi i =1 i =1
q q q q
yi 1 1
xi log 2
i =1 xi
= − xi log 2 yi + xi log 2 xi = − xi log 2 + xi log 2
−1 −1
yi i =1 xi
i =1 i =1
q q
yi 1 q
por (* * * *)
1
xi log 2
i =1 xi
= xi log 2 − xi log 2 0
xi i =1 yi
i =1
Folleto-“Teoría de la información y Codificación” 48
q q
1 1
Por consiguiente xi log 2 xi log 2 la igualdad se cumple cuando xi = yi
i =1 xi i =1 yi
A continuación, se analiza en que modo la entropía depende de la probabilidad de los diferentes
símbolos de la fuente. En particular, sería interesante conocer cuanta información puede
suministrar una fuente de información de memoria nula.
Supongamos que una fuente de memoria nula, definida por un alfabeto S = s1 , s2 ,, sq y sus
q q
log 2 q − H ( S ) = P( si ) log 2 1
i =1 P ( si )
q
log 2 q − H ( S ) = P( si )log 2 qP( si )
i =1
q
log 2 q − H ( S ) = P( si )
ln qP(si ) Por (*)
i =1 ln 2
1 q
log 2 q − H ( S ) =
ln 2 i =1
P( si ) ln qP( si )
1 q 1
log 2 q − H ( S ) = P( si ) ln 1
ln 2 i =1 qP( si )
1 q 1
log 2 q − H ( S ) P( si ) 1 − Por (* * *)
ln 2 i =1 qP( si )
1 q 1 q P ( si )
log 2 q − H (S ) P ( s i ) −
ln 2 i =1 q i =1 P( si )
Folleto-“Teoría de la información y Codificación” 49
1 q 1 P( s ) P( s 2 ) P( sq )
log 2 q − H ( S ) P ( si ) − 1 + ++
ln 2 i =1 q P( s1 ) P( s2 ) P( sq )
1 q 1
log 2 q − H ( S ) P ( si ) − q =
1
1 − 1
ln 2 i =1 q ln 2
log 2 q − H ( S ) 0 (* * * * *)
Así pues H (S ) es siempre menor o igual que log q y la igualdad (* * * * *) se cumple cuando
1
P( si ) = i = 1,2,3,q .Es decir, hemos demostrado que en una fuente de información de
q
Ejemplo 4: Considere una fuente binaria de memoria nula en tal fuente el alfabeto S = 0,1. La
1 1
H ( S ) = w log 2 + (1 − w) log 2
w 1− w
1 1
H ( S ) = w log 2 + w log 2 bits
w w
La función H (S ) se acostumbra a representar por un símbolo especial H (w) . Por definición:
1 1
H (w) = w log 2 + w log 2 bits que llamaremos función de entropía. La diferencia entre H (S )
w w
y H (w) es que H (S ) determina la entropía de una fuente particular S , mientras que H (w) es
una función de la variable w definida en el intervalo 0,1 .
Es importante saber que el límite lim w log w = 0 Así por definición 0 log 0 = 0
w→ 0
H(w)
Cantidad de Información
Probabilidad
1 9 1 Ln10 9 Ln 109
H (0.1) = H ( 101 ) = log 2 10 + log 2 109 = + = 0.332192809 + 0.136802754 = 0.468997593 0.47
10 10 10 Ln2 10 Ln2
2 10 8 2 Ln 102 8 Ln 108
H (0.2) = H ( 102 ) = log 2 + log 2 108 = + = 0.464385619 + 0.257542475 = 0.721928094 0.72
10 2 10 10 Ln2 10 Ln2
1 1 1 1
H (0.5) = H ( 12 ) = log 2 2 + log 2 2 = + = 1
2 2 2 2 bit
En el gráfico de la función de entropía H(w), se puede notar que:
Si la salida de la fuente binaria es cierta (bien w=0 ó w=1) la fuente no suministra ninguna
información.
El valor medio de la información aportada por un símbolo de la fuente binaria alcanza su
1 1
máximo valor en el caso de que 0 y 1 sean igualmente probables P(0) = , P(1) = , siendo el
2 2
valor máximo igual a log 2 q = log 2 2 = 1bit q=2
La salida de una fuente binaria está constituida por dígitos binarios o binits. Así una secuencia de
binits producidos por una fuente de información de memoria nula, de 0s y 1s equiprobables,
suministra un bit de información por dígito binario.
Si 0s y 1s no son igualmente probables, la cantidad de información dada por un binit(dígito
binario) será menor o mayor de 1 bit dependiendo de los valores de las probabilidades (Por
1
I ( E ) = log 2 ).
P( E )
Folleto-“Teoría de la información y Codificación” 51
La cantidad media de información suministrada por un dígito binario de tal fuente, sin embargo,
será siempre menor e igual a 1 bit por dígito binario.
Hay que notar que la cantidad máxima de información dada por una fuente de memoria nula de q
símbolos, crece lentamente al aumentar q. De hecho, la cantidad máxima de información crece
con el logaritmo del número de símbolos de la fuente, de modo que para duplicar la cantidad
máxima de información por símbolos en una fuente de q símbolos, sería necesaria una fuente de
q 2 símbolos.
2 log 2 q = log 2 q 2
S , se tiene que:
q q
1
H ( S ) = P( si ) log 2 = − p( si ) log 2 p( si )
i =1 P( si ) i =1
PROPIEDAD 1
La Entropía es no negativa y se anula sí y sólo sí la variable aleatoria en estudio posee un
resultado de probabilidad 1 y los restantes de probabilidad cero.
q
H ( S ) = − p( s i ) log 2 p( s i )
i =1
Para los valores de 0 P( si ) 1 , sus logaritmos son siempre negativos o nulos; es decir
log 2 p( si ) 0
, entonces
− log 2 p( s i ) 0
y el valor medio de cantidades positivas es también positivo.
P( s k ) = 1, P( s i ) = 0 i k
Si , los sumandos que aparecen son del tipo 0 log 0, − 1 log 1 , todos
q
Recíprocamente si − p( si ) log 2 p( si ) = 0 , todos los sumandos (por ser no negativos ) deben
i =1
ser nulos, con lo cual, sólo puede tomar la forma 0 log 0, ó − 1 log 1 y solamente uno de ellos
q
puede tener probabilidad igual a la unidad para que se cumpla que p( s ) = 1 .
i =1
i
PROPIEDAD 2
La Entropía es idéntica en dos variables si estas se diferencian en un resultado de probabilidad
nula.
H ( P( s1 ), P( sq )) = H ( P( s1 ), , P( sq ), 0)
En efecto , pues ambas expresiones solo se
1
En efecto si P( s1 ) = P( s2 ) = p( sq ) = , resulta que:
q
q
1 1 1
H ( 1q ,, 1q ) = log = − log = log q . De este modo, la Entropía se convierte en una
i =1 q q q
extensión de la medida de incertidumbre de Hartley.
PROPIEDAD 4
Conservando la equiprobabilidad de los resultados, la Entropía aumenta con el número de éstos.
Es inmediato por ser log q log (q + 1)
PROPIEDAD 5
La Entropía de una variable que toma q valores es máxima cuando estos son equiprobables.
H ( P( s1 ) p( s2 ), P( sq )) H ( 1q , 1q ,, 1q ) = log q ( Ya fue demostrada en clases)
Folleto-“Teoría de la información y Codificación” 53
que cualquier conjunto de longitudes de palabras claves válido para un código unívoco, lo es
también para un código instantáneo.
La definición de L es válida tanto para las fuentes de memoria nula como de Markov. Con
objeto de simplificar la discusión, limitaremos por el momento las consideraciones a las fuentes
de memoria nula.
Consideremos una fuente de memoria nula, cuyos símbolos, s1 , s2 ,..., sq tienen respectivamente
las probabilidades de los símbolos de la fuente son P1 , P2 , ..., Pq . Supongamos un código que
l
codifica estos símbolos en un alfabeto de r símbolos, y definimos por i la longitud de la
si
palabra correspondiente a . La entropía de esa fuente de memoria nula será, entonces
q
H (S ) = pi log
1
i =1 pi
q
sean Q1 , Q2 , ...Qq números tales que QI 0 para cualquier valor de i y Q
i =1
i = 1 . Debido a
una desigualdad probada cuando se estudiaron las propiedades de la entropía, sabemos que:
q q
1 1
pi log
i =1
pi log
pi i =1 Qi , se cumple la igualdad cuando Pi = Qi . Por lo tanto
q
H (S ) − pi log Qi (2)
i =1
Qi
Esta inecuación será válida para cualquier conjunto de números positivos, , cuya suma sea la
− li
unidad. En consecuencia se podrá elegir Qi = qr (3)
r j
−l
j =1
−l
r i
q
De donde H ( S ) − pi log q
r j
i =1 −l
j =1
−l
( )
q q
− Pi log r −li − log r j
i =1 j =1
−l
( )
q q q
− Pi log r − li + pi log r j
i =1 i =1 j =1
Folleto-“Teoría de la información y Codificación” 55
q q
Pi li log r + log r
−l j
i =1 j =1
q q
log r Pi li + log r
−l j
i =1 j =1
q
H ( S ) L log r + log r
−l j
(4)
j =1
Si exigimos que el código sea instantáneo, la inecuación de Kraft impone que el argumento del
segundo logaritmo del segundo miembro de (4) sea igual o menor que la unidad. Por lo tanto, su
logaritmo deberá ser igual o menor que cero, y
H ( S ) L log r , o bien H (S )
L (5)
log r
H (S ) viene medida en bits en la ecuación (5). Recordemos que L es el número medio de
símbolo utilizado para codificar S . Expresando la entropía asimismo en unidades r-arias, como
H (S )
se encontró en clases anteriores que H r ( S ) = , entonces podemos escribir la relación (5)
log r
en la forma siguiente: H r (S ) L
Resumiendo puede decirse que, con un código instantáneo y una fuente de memoria nula, L
debe ser igual o mayor que H r (s) . Además L alcanzará su valor mínimo si, y solamente si,
1
pueden elegirse las longitudes de las palabras, li , iguales a log r , donde ésta, li , sea un
pi
número entero para cualquier valor de i .
Folleto-“Teoría de la información y Codificación” 56
BIBLIOGRAFÍA
[ABNO1977] ABRAMSON, NORMAN TEORÍA DE LA INFORMACIÓN Y
CODIFICACIÓN. Cuarta edición. Editorial PARANINFO, Madrid
1977.