CE143 - S06 Compresión de Datos y Ecuaciones en Diferencias - en Clase

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

Matemática Computacional

MA475
Unidad 3
• Árboles binarios
• Algoritmo de Huffman
• Codificación y decodificación
• Ecuaciones en diferencias
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.
Bibliografía
Bibliografía textos de consulta.
• 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

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.

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.
Ejemplo 1
Se tiene una cierta frase en la que los símbolos tienen las frecuencias relativas siguientes:

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

La codificación según el árbol obtenido será:


A B C D E F
000 001 100 101 01 11
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
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

Número de bits utilizando el ASCII tradicional:


Número de bits utilizando los códigos de Huffman:
El número de bits utilizados se ha reducido al:
Decodificación
Si al codificar obtenemos el árbol binario de abajo, el equivalente de la secuencia
1101001 sería

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 + …+𝑎 𝑘 𝑥 𝑛 =𝑔( 𝑛)

Donde es una función que depende de y es una función de .


son constantes.

Si , se dice que es una ecuación lineal de primer orden.


Si , se dice que es una ecuación lineal homogénea, caso contrario,
se dice que es no homogénea.

𝑎 0 𝑥 𝑛 +1 + 𝑎1 𝑥𝑛 =0 Es una ecuación lineal de primer orden homogénea


𝑎 2 𝑥 𝑛 +2 + 𝑎1 𝑥𝑛 +1 + 𝑎 0 𝑥 𝑛= 0 Es una ecuación lineal de segundo orden homogénea
Ecuación característica

Una ecuación en diferencias lineal homogénea del tipo:


,

tiene como ecuación característica:

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:

Al resolver esta ecuación, se presentan tres casos.


Caso 1
Raíces reales y diferentes de la ecuación característica
Sean y las raíces reales y diferentes de la ecuación característica. Entonces y son
soluciones de la ecuación en diferencias y su combinación lineal

es la solución general de dicha ecuación.

Ejemplo: Resolver la ecuación homogénea:


Caso 2
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

es la solución general de dicha ecuación.

Ejemplo: Resolver la ecuación homogénea:


Caso 3
Raíces complejas de la ecuación característica
Sean y las raíces complejas de la ecuación característica.
En este caso, debemos hallar el módulo y el argumento del complejo:
• Modulo:
• Argumento:
Entonces la expresión

es la solución general de dicha ecuación.


Ejemplo:
Resolver la ecuación: 𝑥𝑛 +2 − 4 𝑥𝑛 +1 +16 𝑥 𝑛= 0

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

Entonces: tiene multiplicidad 2


tiene multiplicidad 1
Ejemplo:
Paso 3: La solución es:
con , con
𝑛
𝑥𝑛 =2 ( 𝐶 0 +𝐶 1 𝑛 ) +3 𝑛 𝐶 2 , 𝑛 ≥ 0
Paso 4: Considerando:

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.

Continúa con las actividades semanales


propuestas en el aula virtual:
 Resolución de ejercicios propuestos
 Control Virtual 4
 Tarea 4
30

También podría gustarte