Ejemplos aplicados de flip flops para la ingenieria
CODIGO HUFFMAN-1.pptx
1. CODIGO HUFFMAN
• Carlos Infante
• Keidys Manzanilla
• Kevim Medina
• Enderson Tirado
• Luis Diaz
2. En ciencias de la computación y teoría, la codificación Huffman es
un algoritmo usado para compresión de datos. El término se refiere al uso de una
tabla de códigos de longitud variable para codificar un determinado símbolo
(como puede ser un carácter en un archivo), donde la tabla ha sido rellenada de
una manera específica basándose en la probabilidad estimada de aparición de cada
posible valor de dicho símbolo.
ALGORITMO DEL
CODIGO
HUFFMAN
1
3. La codificación Huffman usa un método específico para elegir la representación de
cada símbolo, que da lugar a un código prefijo que representa los caracteres más
comunes usando las cadenas de bits más cortas, y viceversa. Huffman fue capaz de
diseñar el método de compresión más eficiente de este tipo: ninguna
representación alternativa de un conjunto de símbolos de entrada produce una
salida media más pequeña cuando las frecuencias de los símbolos coinciden con las
usadas para crear el código.
ALGORITMO DEL
CODIGO
HUFFMAN
2
4. Consiste en la creación de un árbol binario en el que se
etiquetan los nodos hoja con los caracteres, junto a sus
frecuencias, y de forma consecutiva se van uniendo cada
pareja de nodos que menos frecuencia sumen, pasando a
crear un nuevo nodo intermedio etiquetado con dicha
suma. Se procede a realizar esta acción hasta que no
quedan nodos hoja por unir a ningún nodo superior, y se ha
formado el árbol binario.
TECNICA
BASICA
3
5. TECNICA
BASICA
4
Un árbol binario es una estructura de datos no lineal en la que
cada nodo puede apuntar a uno o máximo a dos nodos.
Se caracteriza porque tienen un vértice principal y de él se
desprende dos ramas. La rama izquierda y la rama derecha a las
que también se les conoce como subárboles.
Nodo: Un árbol binario es un conjunto de elementos cada uno de
los cuales se denomina nodo. Un árbol Binario puede tener cero
nodos y este caso se dice que está vacío.
6. Tiene como finalidad el poder determinar un codigo binario de manera optima y eficaz aplicando
asi la creacion de un arbol binario para poder determinar el mismo realizándolo de arriba hasta
abajo creando el arbol con la suma de cada frecuencia que ya se definió .
El objetivo de construir códigos de Huffman es el de la compresión de datos, es decir, expresar de
una manera distinta (más corta, obviamente) la misma información.
Las frecuencias utilizadas pueden ser genéricas en el dominio de la aplicación que se basan en el
promedio pre-calculado, o pueden ser las frecuencias encontradas en el texto que se va a
comprimir (esta variante requiere que la tabla de frecuencias se registre junto con el texto
comprimido; hay varias implementaciones que adoptan los trucos para registrar estas tablas de
manera eficiente). La codificación Huffman es óptima cuando la probabilidad de cada símbolo de
entrada es una potencia negativa de dos
FINALIDAD
ALGORITMO
5
7. FRECUENCIAS
6
Estas frecuencias se pueden interpretar mediante la aplicación ya sea de un nombre o
un valor por el hecho que cada característica u valor tienen una determinada
frecuencia, la cual mediante a esta se realizaría la aplicación del algoritmo de
huffman para su debía ejecución en el desarrollo de su valor binario.
8. LIMITACIONES
Podemos mostrar que para una fuente, la entropía de Shannon la
longitud promedio de una palabra de código obtenida por la
codificación de Huffman satisface:
4
Esta relación muestra que la
codificación de Huffman se
acerca a la entropía de la fuente
y es decir al código óptimo, pero
esto de hecho puede resultar
bastante poco interesante en el
caso en que la entropía de la
fuente es fuerte, y donde una
sobrecarga de 1 bit se vuelve
significativo.
Una solución a este
problema es trabajar con
bloques de símbolos.
Luego mostramos que
podemos acercarnos a la
entropía:
Ver:
• LZ77 y LZ78
• Predicción Por Reconocimiento
Parcial
• Ponderación De Contextos
9. ALCANCES
El algoritmo de Huffman, también llamado código de Huffman, es un
algoritmo utilizado para el cifrado de datos por medio de la
frecuencia de aparición de caracteres y su clasificación en un árbol
binario. A través de la frecuencia de aparición de caracteres en
determinada cadena, el algoritmo de Huffman calcula los pesos del
conjunto de símbolos y los coloca en un árbol binario. El
ordenamiento de los caracteres se balancea de forma que los
caracteres más solicitados, son los que contienen menor cantidad.
5
10. ALCANCES .
Un código es un conjunto de ceros y unos usados para representar mensajes de
acuerdo a cierta regla preestablecida. Esta regla es lo que se llama método o función
de codificación.
La información se codifica para ser transmitida.
El conjunto total de símbolos que se transmite es llamado alfabeto. La codificación
es usada considerablemente durante la transmisión, conservación y procesamiento de
la información y es imprescindible para lograr la adaptación óptima de la fuente de
información con el canal de comunicación. Este tratamiento que se le da a la
información se ocupa, entre otras cosas, de eliminar la redundancia. La forma en la
cual se codifican los mensajes es arbitraria. Existen muchos métodos de codificación.
La codificación permite convertir símbolos de un alfabeto de un lenguaje dado en un
símbolo de otro sistema de representación, como números o secuencia de pulsos
eléctricos de un sistema electrónico.
5
12. Cree un nodo de hoja para cada personaje y agréguelo a la cola de prioridad.
2. Mientras haya más de un nodo en la cola:
Quite los dos nodos de la prioridad más alta (la frecuencia más baja) de la cola.
Cree un nuevo nodo interno con estos dos nodos como hijos y una frecuencia igual a la suma de
las frecuencias de ambos nodos.
Agregue el nuevo nodo a la cola de prioridad.
3. El nodo restante es el nodo raíz y el árbol está completo.
Considere un texto que consta de sólo 'A', 'B', 'C', 'D', y 'E' caracteres y sus frecuencias
son 15, 7, 6, 6, 5, respectivamente. Las siguientes figuras ilustran los pasos seguidos por el
algoritmo:
CONSTRUCCION
DEL ARBOL
6
13. Se consideran los nodos estipulados en el ejercicio para
su debida elaboración del árbol binario mediante el
código Huffman
7
14. 15 7
SE SUMAN LOS NODOS CON MENOR
VALOR(FRECUENCIA) PARA ASI DAR UNA SUMA
DE 11 CON EL NODO “D” Y “E”
11
8
15. SE REALIZA LA CREACION DE OTRO NODO INTERNO QUE
SERIA DE VALOR 13 POR LOS VALORES DE “B” Y “C”
QUEDANDO ASI EL VALOR DE “A”
9
16. LA SUMATORIA DE AMBOS NODOS INTERNOS A LA
HORA DE DESARROLLAR ELARBOL MEDIANTE EL
ALGORITMO HUFFMAN DARIA UN TOTAL DE 24
COMO VALOR POR LOS VALORES DE “B”, “C”, “D”, “E”
PARAASI DAR DICHO VALOR
10
17. COMO RESULTANTE DE LAS FRECUENCIAS
ESTIPULADAS ANTERIORMENTE EL NODO PRINCIPAL
QUEDARIA CON EL VALOR DE 39 AL INCORPORARSE
EL VALOR DE “A” PARA LA CREACION DELARBOL.
11
18. APLICANDO EL CODIGO HUFFMAN
QUEDARIA ELARBOL DE LA SIGUIENTE
MANERA:
EN LA RAMA IZQUIERDA SE AÑADERIA EL
VALOR DE “0” Y EL DERECHO DE “1” PARA
SU RESPECTIVAAPLICACION
12