Algoritmo de Shannon Fano
Un árbol Shannon-Fano se construye de acuerdo a una especificación diseñada para definir una tabla de códigos efectiva. El algoritmo actual es simple:
!ara una lista de s"mbolos dada# crear su correspondiente lista de probabilidades o de frecuencias de aparición de manera $ue se cono%ca la frecuencia relativa de ocurrencia de cada s"mbolo.
& 'rdenar las listas de s"mbolos de acuerdo a la frecuencia# con los s"mbolos de ocurrencia más frecuente a la i%$uierda y los menos comunes a la derecha.
( )ividir la lista en dos partes# haciendo la frecuencia total de la mitad i%$uierda lo más pró*ima posible a la de la mitad derecha.
+ ,signar a la mitad i%$uierda el d"gito binario /# y a la mitad derecha el d"gito /. Esto significa $ue los códigos para los s"mbolos en la primera mitad empe%arán con /# y $ue los códigos de la segunda mitad empe%arán por /.
0 ,plicar recursivamente los pasos ( y + a cada una de las dos mitades# subdividi1ndolas en grupos y añadiendo bits a los códigos hasta $ue cada s"mbolo se corresponde con una ho2a del árbol.
'34, E5!678,87'9: El algoritmo Shannon-Fano !ara una secuencia de s"mbolos# se calcula la correspondiente lista de frecuencias de aparición de los s"mbolo & Se ordena la lista de s"mbolos seg;n su frecuencia en orden decreciente. ( Se divide la lista en dos partes# de forma $ue la suma total de frecuencias de la mitad superior sea lo más cercana posible a la suma total total de la parte inferior + , la mitad superior de la lista se le asigna el d"gito binario # y a la mitad inferior se le asigna el d"gito binario . Esto significa $ue los códigos de los s"mbolos en la primera mitad empe%arán todos con y los códigos en la segunda mitad empe%arán todos con 0 4ecursivamente se aplica el mismo procedimiento a cada una de las dos mitades# se subdivide en grupos y se agregan bits a las códigos hasta hasta $ue cada grupo conste conste de un ;nico s"mbolo s"mbolo Entropía de Shannon.
Shannon# en la d1cada del +# introduce una medida relacionada con todos los estados posibles de una fuente de inf ormación dada . 6a entrop"a de Shannon se podr"a definir como una medida de incertidumbre promedio# la cual se calcula a partir de la probabilidad de ocurrencia de cada una de las letras de un alfabeto de acuerdo con la siguiente fórmula:
El n;mero total de s"mbolos posibles a utili%ar en la fórmula var"a en cada codificación. 3omándose 3omándose secuencias gen1ticas de longitud n# tendremos + n posibles s"mbolos en cada codificación. En lo sucesivo denominaremos a n# orden de la codificación. , partir de los valores de frecuencia frecuencia de s"mbolos se se calcula la entrop"a de las secuencias secuencias gen1ticas por por cada orden de codificación codificación <=ab=rel
?4,F78,@E93E
METODO DE SHANNON FANO:
Este m1todo de codificación fue desarrollado por 8laude Shannon en los laboratorios Aell y por 4obert Fano en @73 <@assachussets 7nstitute of 3echnology en la d1cada del + casi simultáneamente.6a t1cnica fue propuesta por 8laude ElBood Shannon# en Una 3eor"a@atemática de la 8omunicación/# su art"culo de C+D introduciendo el campo de la teor"a de la información. El m1todo fue atribuido a 4obert Fano# $uien posteriormente lo publicó como uninforme t1cnico. 4obert Fano 8laude Shannon !ara una lista de s"mbolos dada# crear su correspondiente lista de probabilidades o de frecuencias de aparición de manera $ue se cono%ca la frecuencia relativa de ocurrencia de cada s"mbolo. & 'rdenar las listas de s"mbolos de acuerdo a la frecuencia# con los s"mbolos de ocurrencia más frecuente a la i%$uierda y los menos comunes a la derecha. ( )ividir la lista en dos partes# haciendo la frecuencia total de la mitad i%$uierda lo más pró*ima posible a la de la mitad derecha. + ,signar a la mitad i%$uierda el d"gito binario /# y a la mitad derecha el d"gito /. Esto significa $ue los códigos para los s"mbolos en la primera mitad empe%arán con /# y $ue los códigos de la segunda mitad empe%arán por /. 0 ,plicar recursivamente los pasos ( y + a cada una de las dos mitades# subdividi1ndolas en grupos y añadiendo bits a los códigos hasta $ue cada s"mbolo se corresponde con una ho2a del árbol. Un arbol Shannon-Fano se 8onstruye de acuerdo a una especificación diseñada para definir una tabla de códigos efectiva. El algoritmo actual es simple: Se aplica la división entre A y 8 $uedando dos grupos# uno suma && y otro Secuencia de s"mbolos inicial: )),AEA,),8,A,,E8)8A,E,8,A8A,,))E,,8,E,A TEORIA DE LA CODIFICACION:
)efiniciones: Se denominan s"mbolos de entrada a cada una de las unidades básicas
E2emplo & Una posible codificación para el vocabulario de entrada del e2emplo anterior podr"a ser de la forma: ,<# A<# 8<# )<# E<# F<G donde el vocabulario de salida esta f ormado por d J & sKLmbolos: y . )e este modo# la cadena codificada $uedar"a: ut El proceso de decodificación permite reali%ar la operación inversa a la codificaciónM es decir# obtener la cadena original a partir de la secuencia codificada. )enominaremos es$uema de codificación al m1todo $ue establece como llevar a cabo los procesos de codificación y decodificación. Una codificación es decodificable de forma ;nica si cada código es identificable dentro de la cadena codificada. Es decir# si cual$uier cadena tiene una ;nica descomposición en concatenación de s"mbolos de salida. )efinición &: )esigualdad de Nraft-@c@illan: Sea un con2unto de c/ cadenas de entrada y d/ s"mbolos de salida. Entonces e*iste una codificación instantánea si c
∑d i=0
−li
O M donde li es el tamaño de la cadena codificada correspondiente a la cadena de entrada i.
E2emplo &.&. PE*iste un código binario para H mensa2es de manera $ue dos de ellos se codifi$uen con & bits# tres con ( bits y uno con + bitsQ & R& &R& &R( &R( &R( &R+ J #C(0 O con lo $ue sabemos $ue e*iste. Sin embargo# esto no $uiere decir $ue t odas las codificaciones $ue cumplan estas caracter"sticas sean instantáneas. Una codificación de prefi2o libre es de prefi2o m"nimo si# dado un s"mbolo
6os primeros m1todos de compresión# como el código Araille# asignaban códigos de longitud fi2a a los s"mbolos $ue forman la cadena a comprimir. 6as codificaciones de tamaño fi2o son ;tiles por su sencille% pero son redundantes. 8on el fin de conseguir me2ores ratios de compresión disminuyendo en lo posible la redundancia
@odelos no adaptativos
Codi#i"a"i$n de Shannon%Fano
6a codificación de Shannon-Fano fue el primer m1todo estad"stico $ue logró una buena codificación de longitud variable. El modo de construir los códigos es el siguiente: los s"mbolos de entrada i y sus probabilidades pi se ordenan de forma decreciente. 6a lista obtenida se divide para formar dos grupos# de modo $ue la probabilidad total de ambos grupos tenga un valor similar. , cada s"mbolo del primer grupo se le asigna un como primer digito# y a los s"mbolos de la segunda mitad se les asignan códigos comen%ando en . Este proceso se reali%a recursivamente subdividiendo cada grupo en base al mismo criterio hasta $ue cada subcon2unto posea un solo elemento.