Longitud media: Consideremos el conjunto S = {a1 , a 2 ,.., a n } y Pk = prob{a k sea transmitid o}, k = 1,2...n
L=
p L
k k =1
Donde: Lk es la longitud del mensaje a k Cdigo instantneo: Un cdigo se denomina instantneo si ninguna palabra-cdigo es el inicio (prefijo) del otra palabra-codigo de longitud mayor. Nota: Un cdigo instantneo es un cdigo de decodificacin nica, aunque el recproco no siempre es cierto
D
k =1
LK
Construccin de cdigos instantneos: EJEMPLO: Si S = {a1 , a 2 , a3 ,..., a 6 } son los mensajes que cierta fuente tiene que transmitir: Es posible construir un cdigo binario de longitudes variables: 2,2,3,4,4,5 ? Efectivamente, ya que:
2
k =1
Lk
0 a1
1 a2 0 a3 0 a4
1 a5
0 a6
www.eresvago.net
Teorema 2.5 Para todo cdigo instantneo (de decodificacin nica), asociado al conjunto S = {a1 , a 2 ,..., a n } de mensajes producidos por una fuente, la longitud media del cdigo cumple que:
L H (S ) , la igualdad se consige pi = D Li log D
La capacidad del cdigo es log D Eficacia de un cdigo: Es el cociente entre la longitud media mnima que puede conseguir un cdigo, utilizado para codificar los mensajes de una fuente S , y la longitud media L correspondiente a este cdigo.
eficacia = H (S ) L log( D)
Teorema 2.9: Siempre podremos construir un cdigo instantneo, de decodificacin nica, de tal forma que su longitud media verifique:
H (S ) H (S ) L +1 log D log D
Primer Teorema de Shannon: Sea S = {a1 , a2 ,..., an } el conjunto de los mensajes a codificar mediante un alfabeto de D smbolos. Siempre es posible encontrar un cdigo instantneo, de decodificacin nica, para la fuente S m , tal que su longitud media L m cumpla:
H (S ) L m H (S ) 1 + log D log D m m
Algoritmos de construccin de cdigos instantneos: 1. Mtodo de Shannon: binarios, posiblemente no ptimos. 2. Mtodo de Huffman: D-rios y ptimos. 3. Mtodo de Shannon-Fanno: D-rios y segn como se aplique puede ser ptimo. Mtodo de Shannon para construccin de cdigos instantneos EJEMPLO: Supongamos que queremos codificar, mediante un cdigo instantneo binario, la fuente S = {a1 , a2 , a3 , a4 , a5 , a6 } con una distribucin de prob p1 = 0.3, p2 = 0.25, p3 = 0.2, p4 = p5 = 0.1, p6 = 0.05 Utilizando el algoritmo de Shannon, resulta: Obtener Lk : 2 Li
1 2 Li 1 pi
www.eresvago.net
S a1 a2 a3 a4 a5 a6
Lk 2 2 3 4 4 5
k
0.00 0.30 0.55 0.75 0.85 0.95
Eficacia =
H (S ) = 0.86 L
Cdigo instantneo ptimo: Un cdigo instantneo es ptimo, para un conjunto de mensajes dado, si no existe otro cdigo instantneo con una longitud media menor.
Mtodo de Huffman para construccin de cdigos instantneos EJEMPLO: (Caso binario). Construir un cdigo ptimo para la fuente S = {a1 , a2 , a3 , a4 , a5 , a6 } , con una distribucin de probabilidades tal como se indica a continuacin p1 = 0.3, p2 = 0.25, p3 = 0.2, p4 = p5 = 0.1, p6 = 0.05 Sinopsis del algoritmo: ordenar las probabilidades en orden decreciente (de mayor a menor). atribuir como ltimos simbolos: an1 = 0, an = 1 . fusionar a' = an.1 y an . asignar la probabilidad de p(a ' ) = p (an1 ) + p (an ) . volver a paso 1) hasta cubrir todas las ai para obtener los cdigos recorrer desde la raiz hacia el simbolo ai .
a1 0.3 0
a2 0.25 1
0.55
a3 0.2
a4 0.1
a5 0.1 0
a6 0.05 1
0.15
1 1 0 1 0
0.45
0
0.25
www.eresvago.net
As tenemos: mensajes
a1 a2 a3 a4 a5 a6
pi 0.3
pi Li 0.6
pi log pi 0.521
Eficacia =
EJEMPLO: (caso general). Construir un cdigo ptimo con el alfabeto {0,1,2} para la fuente S = {a1 , a2 , a3 , a4 , a5 , a6 } , con una distribucin de probabilidades p1 = 0.3, p2 = 0.25, p3 = 0.2, p4 = p5 = 0.1, p6 = 0.05 La diferencia respecto al caso binario reside en: Atribuir los r + 2 primeros smbolos del alfabeto {0,1,..., D 1} , como ltimos smbolos de los r + 2 ltimos mensajes a codificar. n2 Donde r es el resto de la divisin: D 1
0 1 As tenemos: mensajes
a1 a2 a3 a4 a5 a6
2 0
1
0.45
pi 0.3
pi Li 0.3
pi log pi 0.521
Eficacia =
www.eresvago.net