CE143 - S06 Compresión de Datos y Ecuaciones en Diferencias - en Clase
CE143 - S06 Compresión de Datos y Ecuaciones en Diferencias - en Clase
CE143 - S06 Compresión de Datos y Ecuaciones en Diferencias - en Clase
MA475
Unidad 3
• Árboles binarios
• Algoritmo de Huffman
• Codificación y decodificación
• Ecuaciones en diferencias
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
A
Nodo padre: Se le llama así al nodo predecesor de
un elemento.
B C
Nodo hijo: Es el nodo sucesor de un elemento.
Hermanos: Nodos que tienen el mismo nodo padre. G
D E F
Nodo hoja: Aquel nodo que no tiene hijos.
Padre de G: C
A NO TIENE
Nodo padre de F y G Padre de A:
C B C
B Hijos de A:
F y G son nodos hijos de C
F y G son hermanos F G
D E F G Hijos de C:
Hijos de F: NO TIENE
K
H
Hojas: D E F5 G
D, H, F y K son nodos hojas
Hermano de B: C
Algoritmo de Huffman
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 0110 0010
o 0110 1111
m 0110 1101
e 0110 0101
s 0111 0011
Espacio 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 – 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.
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
g i r e t s
1 2 2 3 3 4 4
Resolución 2
g i r e t s
1 2 2 3 3 4 4
Resolución 2
Frecuencia Código de Número de
Carácter
absoluta Huffman 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
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 ?
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 -ésima generación 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:
• Ecuación en diferencias:
Ecuación en diferencias
Una ecuación en diferencias lineal de orden , con coeficientes constantes, es del tipo:
𝑎 0 𝑥 𝑛 +𝑘 + 𝑎 1 𝑥𝑛 +𝑘 −1 + …+𝑎 𝑘 𝑥 𝑛 =𝑔( 𝑛)
Ejemplo:
La ecuación en diferencias
,
tiene como ecuación característica:
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:
,
se resuelve su ecuación característica:
Solución:
Paso 1: Ecuación característica
2
𝜆 − 4 𝜆+16=0
Paso 2: Resolviendo
Entonces:
Ecuaciones en diferencia homogéneas de orden superior
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.
Ejemplo: Resolver la ecuación
Ecuaciones en diferencia homogéneas de orden superior
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.
Ejemplo: Resolver la ecuación
Ejemplo:
Resolver la ecuación:
𝑥𝑛 +3 −7 𝑥 𝑛 +2 +16 𝑥𝑛 +1 −12 𝑥 𝑛 =0
Donde
Solución:
Paso 1: Ecuación característica:
3 2
𝜆 − 7 𝜆 +16 𝜆− 12=0
Paso 2: Se factoriza
( 𝜆 − 2 )2 ( 𝜆− 3 )1= 0
0 0
𝑥 0=2 ( 𝑐0 + 𝑐1 .0 ) + 3 𝑐 2 , 𝑐 0 +𝑐 2= 0
1 1
𝑥1 =2 ( 𝑐 0 +𝑐 1 .1 ) + 3 𝑐 2 , 2 𝑐 0 +2 𝑐1 +3 𝑐2 =1
2 2
𝑥 2=2 ( 𝑐 0 +𝑐 1 .2 ) +3 𝑐 2 , 4 𝑐 0 +8 𝑐 1 +9 𝑐 2=1
Entonces, la solución es: 𝑐 0=3 , 𝑐1 =2 ,𝑐 2 =−3
𝑥𝑛 =2𝑛 ( 3 +2 𝑛 ) − 3 ( 3 𝑛 ) , 𝑛 ≥ 0
Preguntas
Si tienes dudas sobre los temas, consulte con el
profesor del curso o el profesor AAD mediante los
correos electrónicos proporcionados.