Códigos de Huffman

Descargar como pptx, pdf o txt
Descargar como pptx, pdf o txt
Está en la página 1de 10

CÓDIGO DE

HUFFMAN
Grupo.
Brayan Javier Becerra Sandoval
Cristian Arias Creado por:
David A. Huffman
En 1952
CÓDIGOS HUFFMAN
Es un método general de codificación y compresión diseñado para minimizar el número
medio de bits necesarios para transmitir un símbolo cuando se debe transmitir varias
copias independientes y estadísticamente equivalentes de dicho símbolo. Este método
determina cómo los distintos valores del símbolo deben representarse como cadenas
binarias. Fue desarrollado por David A. Huffman mientras era estudiante de doctorado en
el MIT (Instituto de Tecnología de Massachusetts).

La idea básica de los códigos de Huffman se basa en utilizar cadenas cortas de bits para
los caracteres de uso frecuente y utilizar cadenas de bits de mayor tamaño para los
caracteres que tienen una frecuencia menor de uso.

El algoritmo consiste en la creación de un árbol binario que tiene cada uno de los
símbolos por hoja, y construido de tal forma que siguiéndolo desde la raíz a cada una de
sus hojas se obtiene el código Huffman asociado a él.
PASOS PARA LA CODIFICACIÓN
1. Se crean varios árboles, uno por cada uno de los símbolos del alfabeto, consistiendo cada uno de los
árboles en un nodo sin hijos, y etiquetado cada uno con su símbolo asociado y su frecuencia de aparición.
2. Se toman los dos árboles de menor frecuencia, y se unen creando un nuevo árbol. La etiqueta de la raíz
será la suma de las frecuencias de las raíces de los dos árboles que se unen, y cada uno de estos árboles
será un hijo del nuevo árbol. También se etiquetan las dos ramas del nuevo árbol: con un 0 la de la
izquierda, y con un 1 la de la derecha.
3.Se repite el paso 2 hasta que solo quede un árbol.
Con este árbol se puede conocer el código asociado a un símbolo, así como obtener el símbolo asociado a
un determinado código.

Para obtener el código asociado a un símbolo se debe proceder del siguiente modo:
1. Comenzar con un código vacío
2. Iniciar el recorrido del árbol en la hoja asociada al símbolo
3. Comenzar un recorrido del árbol hacia arriba
4. Cada vez que se suba un nivel, añadir al código la etiqueta de la rama que se ha recorrido
5. Tras llegar a la raíz, invertir el código
6. El resultado es el código Huffman deseado
PASOS PARA LA CODIFICACIÓN

Para obtener un símbolo a partir de un código se debe hacer así:

Comenzar el recorrido del árbol en la raíz de éste


Extraer el primer símbolo del código a descodificar
Descender por la rama etiquetada con ese símbolo
Volver al paso 2 hasta que se llegue a una hoja, que será el símbolo asociado al código
En la práctica, casi siempre se utiliza el árbol para obtener todos los códigos de una sola vez; luego se
guardan en tablas y se descarta el árbol.
EJEMPLOS
Ejemplo 1. Codificamos los siguientes datos mediante el uso de el árbol de huffman:

A B C D E Para codificar los datos empezamos por la raíz que se saca


mediante la suma de el peso de los nodos externos que en
8 4 10 7 5 este caso nos dio 34. empezamos siempre por la izquierda
de la raíz que siempre da (0) y si nos toca ir a la derecha
Raíz siempre nos da (1) hasta llegar a los nodos externo sacando
su código.
34
0 1
Aplicando el código huffman el resultado de los nodos
externos son:
15 19
0 1 0 1 A 00
B 101
8 7 9 10
0 1 C 11
A D C
D 01
5 4
E 100
E B
EJEMPLOS
Ejemplo 2. Codificamos los siguientes datos mediante el uso de el árbol de huffman:

Z Y X W V En este caso se hace el mismo proceso que el anterior


3 7 11 25 4 ejercicio con la diferencia de que en este ejemplo se muestra
como debemos ordenar el árbol para sacar la raíz y obtener
Raíz el código huffman.
0 50 1
25 25 Aplicando el código huffman el resultado de los nodos
0 1
externos son:
W
11 14 Z 1110
0 1
X Y 110
7 7 X 10
Y 0 1 W 0
3 4 V 1111
Z V
EJEMPLOS
Ejemplo 3. Codificamos los siguientes datos mediante el uso de el árbol de huffman:
1,00
Símbolo Frecuencia
0 1 0,40
A 0,15
B 0,30 1
C 0,20 0,60 0,20
1 0 1
D 0,05
0 0,30 0 0,10
E 0,15
F 0,05 0 1 0 1
G 0,10 B A E C G D F
0,30 0,15 0,15 0,20 0,10 0,05 0,05

El código huffman es el siguiente:


A B C D E F G
010 00 10 1110 011 1111 110
EJERCICIO
Codifique los siguiente datos con su grafica:
1. X1 X2 X3 X4 2. A B C D E F
0,5 0,3 0,15 0,05 45 13 12 16 9 5
RESPUESTA
1. X1 X2 X3 X4 2. A B C D E F
0 10 110 111 0 101 100 111 1101 1100

100

55
1
45
25 30
0,5 A

0,2 12 13 14 16

C B D

0,5 0,3 0,15 0,05 5 9

x1 x2 x3 x4 F E
BIBLIOGRAFÍA

 https://neo.lcc.uma.es/evirtual/cdd/tutorial/presentacion/huffman.html
 https://www.ecured.cu/Código_de_Huffman#:~:text
=La%20idea%20básica%20de%20los,una%20frecuencia%20menor%20
de%20uso
.
 https://www.youtube.com/watch?v=DjdmAFFoBnE
 https://es.wikipedia.org/wiki/Algoritmo_de_Huffman

También podría gustarte