3. INTRODUCCIÓN
Los caracteres o símbolos se pueden representar en codificación en binario, lo
que nos permite realizar una comprensión de datos que facilita la transmisión
de los mismos y ahorra espacio de memoria. Es fundamental en la comprensión
de ficheros de video y audio.
Busca asociar las cadenas de código binario de los caracteres mas frecuentes a
cadenas de código binario de menor longitud, permitiendo ahorrar memoria.
4. ESPECIFICACIÓN DEL ALGORITMO
El algoritmo de Huffman, utiliza un código prefijo que es un conjunto de cadenas
binarias asociadas a un conjunto de símbolos.
Algo importante de recalcar es que una cadena binaria no debe ser parte del
comienzo de otra cadena binaria.
x 1100
x 01
y 10
* 101 Error
5. OBTENCIÓN DEL CÓDIGO PREFIJO
Un código prefijo se obtiene a partir de un árbol dirigido con raíz.
6. PASOS:
1. Se construye un árbol binario dirigido con raíz.
2. Se etiqueta el arco de salida izquierdo de cada vértice con 0, y el arco de
salida derecho con 1.
3. Los vértices finales o que tienen grado de salida 0, se les etiqueta con los
caracteres o símbolos.
0 10
7. 0 1
0 01 1
x * )
Grado de salida 0
0
0
1
1
(
y+
4. Recorro el árbol desde la raíz para obtener el código prefijo de cada carácter o símbolo.
x 01
( 001
y 0001
+ 0000
* 10
) 11
8. PROCESO DEL CÓDIGO HUFFMAN
1. Se obtiene las frecuencias de cada carácter o símbolo.
2. Se ordenan las frecuencias de menor a mayor en una lista.
3. Se localizan los dos valores más pequeños de la lista y estos forman un árbol donde la etiqueta de
la raíz será la suma de las frecuencias.
4. Se inserta en orden ascendente en la lista la suma de estos valores y se elimina los mismos.
(Repetir el paso 3 y 4 hasta solo quede un árbol).
5. Una vez obtenido el árbol, se procede a obtener los códigos prefijos.
9. EJEMPLO
Frecuencia de los caracteres:
Caracteres y j , * -
Frecuencia 5 10 25 3 20
Ordenar las Frecuencias:
3 5 10 20 25
Localizan los valores más pequeños de la lista:
3 5 10 20 25
15. PARA MÁS INFORMACIÓN
• Código del método Huffman:
• https://github.com/DavidValladarez/algoritmoHuffman
16. BIBLIOGRAFÍA
1. Jordan Lluch, C. (Dirección). (2013). Teoría de Grafos en la vida real. Árboles. Codificación de
Huffman [Video]. Link:
https://www.youtube.com/watch?v=W6WZT12ruGQ&feature=youtu.be
2. Salomon, D. (2014). Compresión de datos.