2. Logro de la sesión
Al finalizar la sesión, el estudiante conoce los
conceptos fundamentales de árboles binarios; además
codifica y decodifica cadenas binarias aplicando el
algoritmo de Huffman y resuelve ejercicios de
ecuaciones en diferencias.
3. Bibliografía
• Profesores UPC – Libro digital – Compresión de datos.
• Johnsonbaugh, R. (2005). Matemáticas Discretas. Pearson
Educación. Revisar páginas desde 379 hasta 386.
Bibliografía Multimedia
Bibliografía textos de consulta.
Huffman 1 Huffman 2
Huffman 3
4. 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.
5. 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.
B
A
D E
H
F
K
G
C
Nodo padre de F y G
F y G son nodos hijos de C
F y G son hermanos
D, H, F y K son nodos hojas
5
Padre de G:
Padre de A:
Hijos de A:
Hijos de C:
Hijos de F:
Hojas:
Hermano de B:
NO TIENE
NO TIENE
6. Algoritmo de Huffman
6
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).
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
Hola mundo 72 111 108 97 32 109 117 110 100 111
Equivale a usando ASCII
H o l a m u n d o
7. 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.
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 – 01110011 – 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.
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
8. 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.
El algoritmo de construcción del árbol puede resumirse así:
1.- Crear un nodo hoja para cada símbolo, asociando un peso según su frecuencia de
aparición e insertarlo en la lista ordenada ascendentemente.
2.- Mientras haya mas de un nodo en la lista:
a) Eliminar de la lista los dos nodos con menor frecuencia.
b) Crear un nuevo nodo interno que enlace a los nodos anteriores, asignándole
como peso la suma de los pesos de los nodos hijos y etiquetamos la arista del
nodo derecho con 1 y del nodo izquierdo con 0.
c) Insertar el nuevo nodo en la lista, (en el lugar que le corresponda según el peso).
3.- El nodo que quede es el nodo raíz del árbol.
9. Ejemplo 1
A B C D E F
0,08 0,10 0,12 0,15 0,20 0,35
Se tiene una cierta frase en la que los símbolos tienen las frecuencias relativas siguientes:
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?
12. Ejemplo 2
Apliquemos el algoritmo de Huffman para codificar la cadena: tres tristes tigres
1.- Contemos y asignemos la frecuencia de aparición a cada carácter de la cadena.
t :4 r:3 e:3 s:4 ’ ’:2 i:2 g:1
Podemos cambiar a frecuencias relativas o en todo caso trabajar como esta, el
resultado será el mismo.
2.- Ordenemos de menor a mayor los caracteres según su frecuencia de aparición.
g i r e t s
1 2 2 3 3 4 4
15. Resolución 2
Carácter
Frecuencia
absoluta
Código de
Huffman
Número de
bits
t 4 00 8
r 3 110 9
e 3 111 9
s 4 01 8
i 2 100 6
g 1 1010 4
Espacio 2 1011 8
TOTAL 19 52
Número de bits utilizando el ASCII tradicional: 19(8) = 152
Número de bits utilizando los códigos de Huffman: 52
El número de bits utilizados se ha reducido al:
52
152
× 100% = 𝟑𝟒, 𝟐𝟏%
16. Decodificación
Si al codificar obtenemos el árbol binario de abajo, el equivalente de la secuencia
1101001 sería
11
F
01
E
001
B
17. Ejemplo 3
Si al codificar obtenemos el árbol binario abajo mostrado, ¿cuál es el equivalente de la
secuencia 00101100000?
18. Ejemplo 4
Si al codificar obtenemos el árbol binario abajo mostrado, ¿cuál es el equivalente de la
secuencia 1110011101001111 ?
19. Ecuaciones en diferencias
Una ecuación en diferencias sirve, generalmente, para describir la evolución de ciertos
fenómenos a través del tiempo. Por ejemplo, si una cierta población tiene generaciones
discretas, el tamaño de la (𝑛 + 1)-ésima generación 𝑥(𝑛+1) depende de la 𝑛-ésima
generación 𝑥(𝑛). Esto se expresa con la ecuación en diferencia:
𝑥(𝑛+1) = 𝑓(𝑥 𝑛 )
Ejemplo:
En un determinado ecosistema y supuesto que sobre una población no influyen factores
que modifiquen su crecimiento, se observa que, partiendo de 100 individuos, se llega el
primer año a 110 y que, cada año se duplica el crecimiento del año anterior y se añaden
10 individuos de fuera.
• 𝑥𝑛: población de conejos luego de 𝑛 años
• Modelo matemático: 𝑥𝑛+2 − 𝑥𝑛+1 = 2 𝑥𝑛+1 − 𝑥𝑛 + 10
• Ecuación en diferencias: 𝑥𝑛+2 − 3𝑥𝑛+1 + 2𝑥𝑛 = 10
20. Ecuación en diferencias
Una ecuación en diferencias lineal de orden 𝑘, con coeficientes constantes, es del tipo:
𝑎0𝑥𝑛+𝑘 +𝑎1 𝑥𝑛+𝑘−1 + ⋯ + 𝑎𝑘𝑥𝑛 = 𝑔(𝑛)
Donde 𝑥𝑛+𝑘 es una función que depende de 𝑛 + 𝑘, y 𝑔 es una función de 𝑛.
𝑎0 , 𝑎1, 𝑎2, … , 𝑎𝑘 son constantes.
Si 𝑘 = 1, se dice que es una ecuación lineal de primer orden.
Si 𝑔(𝑛) = 0, se dice que es una ecuación lineal homogénea, caso
contrario, se dice que es no homogénea.
Es una ecuación lineal de primer orden homogénea
𝑎0𝑥𝑛+1 +𝑎1 𝑥𝑛 = 0
𝑎2𝑥𝑛+2 +𝑎1 𝑥𝑛+1 +𝑎0 𝑥𝑛 = 0 Es una ecuación lineal de segundo orden homogénea
21. Ecuación característica
Una ecuación en diferencias lineal homogénea del tipo:
𝑎𝑘𝑥𝑛+𝑘 +𝑎𝑘−1 𝑥𝑛+𝑘−1 + ⋯ + 𝑎0𝑥𝑛 = 0, 𝑎𝑘 ≠ 0
tiene como ecuación característica:
𝑎𝑘𝜆𝑘
+𝑎𝑘−1 𝜆𝑘−1
+ ⋯ + 𝑎0 = 0
Ejemplo:
La ecuación en diferencias
5𝑥𝑛+4 + 2𝑥𝑛+3 − 7𝑥𝑛+1 + 𝑥𝑛 = 0, 𝑎𝑘 ≠ 0
tiene como ecuación característica:
5𝜆4 + 2𝜆3 − 7𝜆 + 1 = 0
22. Ecuación en diferencias de segundo orden homogéneas
Para hallar la solución de una ecuación en diferencias lineal homogénea de segundo
orden:
𝑎2𝑥𝑛+2 +𝑎1 𝑥𝑛+1 + 𝑎0𝑥𝑛 = 0, 𝑎1,2,3 ≠ 0
se resuelve su ecuación característica:
𝑎2𝜆2 +𝑎1 𝜆 + 𝑎0 = 0
Al resolver esta ecuación, se presentan tres casos.
23. Caso 1
Ejemplo: Resolver la ecuación homogénea:
𝑥𝑛+2 − 5𝑥𝑛+1 + 6𝑥𝑛 = 0
Raíces reales y diferentes de la ecuación característica
Sean 𝑚1 y 𝑚2 las raíces reales y diferentes de la ecuación característica. Entonces
𝑥𝑛 = 𝑚1
𝑛
y 𝑥𝑛 = 𝑚2
𝑛
son soluciones de la ecuación en diferencias y su
combinación lineal
𝑥𝑛 = 𝐶1 𝑚1
𝑛
+ 𝐶2 𝑚1
𝑛
es la solución general de dicha ecuación.
24. Caso 2
Ejemplo: Resolver la ecuación homogénea:
𝑥𝑛+2 + 6𝑥𝑛+1 + 9𝑥𝑛 = 0
Raíces reales iguales de la ecuación característica
Sea 𝑚 la raíz doble de la ecuación característica. Entonces 𝑥𝑛 = 𝑚 𝑛
y 𝑥𝑛 = 𝑛 𝑚 𝑛
son soluciones de la ecuación en diferencias y su combinación lineal
𝑥𝑛 = 𝐶1 𝑚 𝑛 + 𝐶2𝑛 𝑚 𝑛
es la solución general de dicha ecuación.
25. Caso 3
Raíces complejas de la ecuación característica
Sean 𝑚1 = 𝑎 + 𝑏𝑖 y 𝑚2 = 𝑎 − 𝑏𝑖 las raíces complejas de la ecuación característica.
En este caso, debemos hallar el módulo y el argumento del complejo:
• Modulo: 𝑚 = 𝑎2 + 𝑏2
• Argumento: θ = 𝑡𝑎𝑛−1 𝑏
𝑎
Entonces la expresión
𝑥𝑛 = 𝜆 𝑛
𝐶1 cos 𝑛𝜃 + 𝐶2𝑠𝑒𝑛 𝑛𝜃
es la solución general de dicha ecuación.
27. Ecuaciones en diferencia homogéneas de orden superior
Ejemplo: Resolver la ecuación
𝑥𝑛+3 − 7𝑥𝑛+2 + 16𝑥𝑛+1 − 12𝑥𝑛 = 0
La solución de una ecuación en diferencias homogénea de orden superior se
estructura según las raíces de su ecuación característica de acuerdo a los casos vistos
anteriormente.
30. Preguntas
Continúa con las actividades semanales
propuestas en el aula virtual:
30
Si tienes dudas sobre los temas, consulte con el
profesor del curso o el profesor AAD mediante los
correos electrónicos proporcionados.
Resolución de ejercicios propuestos
Control Virtual 4
Tarea 4