Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MA475
Unidad 2: Teoría de grafos y redes
• Árboles binarios
• Algoritmo de Huffman
• Compresión de datos
Logro de la sesión
Bibliografía Multimedia
Huffman 1 Huffman 2
Huffman 3
Introducción
Se creó en 1951 por David Huffman y se utiliza para comprimir archivos sin pérdida de
información al momento de hacer la comprensión de información.
Terminología y ejemplo
• Nodo padre: Se le llama así al nodo predecesor de
un elemento.
• Nodo hijo: Es el nodo sucesor de un elemento.
• Hermanos: Nodos que tienen el mismo nodo padre.
• Nodo hoja: Aquel nodo que no tiene hijos.
Padre de G:
A Padre de A: NO TIENE
Nodo padre de F y G
B C Hijos de A:
F y G son nodos hijos de C
F y G son hermanos Hijos de C:
D E F G
Hijos de F: NO TIENE
K
H
Hojas: 5
Las computadoras usan números binarios y por ende dígitos binarios en lugar de decimales.
La palabra bit es un diminutivo de digito binario “Binari digIT”. Los bits solos tienen dos
posibles valores: 0 o 1.
Con 8 bits en un byte, uno puede representar 256 valores en un rango del 0 al 255 que son
los ASCII
H o l a m u n d o
Hola mundo Equivale a 72 111 108 97 32 109 117 110 100 111 usando ASCII
En 1951, a David Huffman encontró uno de los códigos binarios más eficientes para
almacenar datos usando árboles binarios (a lo más dos hijos).
6
ASCII y su codificación
Si consideramos la cadena ‘bom esse bombom’ usando codificación ASCII (8 bits por
caracter), los 15 caracteres de la cadena usan 120 bits tal como se muestra en la tabla.
Caracter ASCII Binario
b 98 0110 0010
o 111 0110 1111
m 109 0110 1101
e 101 0110 0101
s 115 0111 0011
Espacio 32 0010 0000
La cadena ‘bom esse bombom’ es escrito numéricamente usando ASCII como:
98 111 109 32 101 115 115 101 32 98 111 109 98 111 109
En binario sería como:
01100010 - 01101111 - 01101101 - 00100000 - 01100101 – 0111-0011 – 01110011-
01100101 - 00100000 - 01100010 – 01101111- 01101101 – 01100010- 01101111-
01101101.
La idea básica de la codificación de Huffman es: Usar el menor número de bits para
representar caracteres con mayor frecuencia.
Algoritmo de Huffman
El algoritmo de Huffman es código de longitud variable, en el que la longitud de cada
código depende de la frecuencia (absoluta o relativa) de aparición de cada símbolo en
un texto; cuanto mas frecuente sea un símbolo, su código asociado será mas corto.
A B C D E F
0,08 0,10 0,12 0,15 0,20 0,35
a. Use el algoritmo de Huffman para codificar los símbolos con las frecuencias dadas.
b. ¿Cuál es la cantidad de bits usada para codificar cada caracter?
Resolución 1
10
Resolución 1
Dimensiones
g i r e t s
1 2 2 3 3 4 4
Cálculo
Efectúa de forma completa la operación
matemática y/o estadística seleccionada, para 1 2 2 3 3 4 4
resolver la situación problemática en un
contexto real.
𝑔 𝑒𝑠𝑝 𝑖 𝑟 𝑒 𝑡 𝑠
2 3 3 3 4 4
𝑖 𝑟 𝑒 𝑡 𝑠
𝑔 𝑒𝑠𝑝
3 3 4 4 5
Nota: Si un subárbol con el mismo peso
de un vértice (carácter), el subárbol se
𝑟 𝑒 𝑡 𝑠
coloca antes del vértice.
𝑖
𝑔 𝑒𝑠𝑝
Problema de compresión de datos
Use el algoritmo de Huffman para codificar la cadena tres tristes tigres y determine la
cantidad de bits usada para codificar cada carácter.
Dimensiones
g i r e t s
1 2 2 3 3 4 4
Cálculo
Efectúa de forma completa la operación
matemática y/o estadística seleccionada, para
resolver la situación problemática en un 4 4 5 6
contexto real.
𝑡 𝑠
𝑖 𝑟 𝑒
𝑔 𝑒𝑠𝑝
5 6 8
𝑖 𝑟 𝑒 𝑡 𝑠
𝑔 𝑒𝑠𝑝
Problema de compresión de datos
Use el algoritmo de Huffman para codificar la cadena tres tristes tigres y determine la
cantidad de bits usada para codificar cada carácter.
Dimensiones
g i r e t s
1 2 2 3 3 4 4
Cálculo
Efectúa de forma completa la operación
matemática y/o estadística seleccionada, para 8 11
resolver la situación problemática en un
contexto real.
𝑡 𝑠
𝑖 𝑟 𝑒
19 𝑔 𝑒𝑠𝑝
𝑡 𝑠
𝑖 𝑟 𝑒
𝑔 𝑒𝑠𝑝
Problema de compresión de datos
Use el algoritmo de Huffman para codificar la cadena tres tristes tigres y determine la
cantidad de bits usada para codificar cada carácter.
Frecuencia Código de Número de
Carácter
Dimensiones absoluta Huffman bits
t 4 00 8
Análisis y argumentación r 3 110 9
Sustenta el resultado del cálculo e 3 111 9
relacionándolo con la situación problemática
s 4 01 8
i 2 100 6
g 1 1010 4
Espacio 2 1011 8
TOTAL 19 52
11 01 001
F E B
Ejemplo 3
Si al codificar obtenemos el árbol binario abajo mostrado, ¿cuál es el equivalente de la
secuencia 00101100000?
Ejemplo 4
Si al codificar obtenemos el árbol binario abajo mostrado, ¿cuál es el equivalente de la
secuencia 1110011101001111 ?
Preguntas
Si tienes dudas sobre los temas, consulte con el
profesor del curso mediante los medios (correo,
Workplace, etc.) proporcionados por él mismo.