Algoritmo de Huffman 2

19
ESTRUCTURA DE DATOS ALGORITMO DE HUFFMAN

Transcript of Algoritmo de Huffman 2

Page 1: Algoritmo de Huffman 2

ESTRUCTURA DE DATOS

ALGORITMO DE HUFFMAN

Page 2: Algoritmo de Huffman 2

INTRODUCCIÓN

Este Algoritmo fue desarrollado por el norteamericano David Albert Huffman en 1952 mientras hacia su doctorado en el MIT.

El algoritmo funciona a partir de un conjunto dados de símbolos con sus respectivos pesos(frecuencia).

La salida del algoritmo es el mismo conjunto de símbolos de entrada codificado mediante un código binario con un tamaño menor.

Page 3: Algoritmo de Huffman 2

DEFINICION

Es un algoritmo usado para la comprensión o encriptación de datos mediante el estudio de la frecuencia de aparición de los caracteres o simbolos .

Este algoritmo se usa precisamente para construir códigos de Huffman.

Page 4: Algoritmo de Huffman 2

CODIGO DE HUFFMAN

Un código de huffman es un código de longitud variable, en el que la longitud de cada código depende de la frecuencia de aparición de cada símbolo en un texto.

Cuanto mas frecuente sea un símbolo su código asociado será mas corto. Además, un código Huffman es un código libre de prefijos, es decir ningún código forma parte de otro código; esto permite que los mensajes codificados sean no ambiguos.

Page 5: Algoritmo de Huffman 2

OBJETIVOS

El objetivo mas importante es reducir la cantidad de espacio que ocupa la información a codificar .

Page 6: Algoritmo de Huffman 2

VENTAJAS Y DESVENTAJAS

Ventajas:Es muy fácil codificar y decodificar - Solo reemplazar -Cada código tiene las misma longitud Desventaja: -La cadena resultante es muy larga

comparada con el mensaje

Page 7: Algoritmo de Huffman 2

EJEMPLO :

PASO 1:Empezemos con una palabra , sea el caso ingeniero

Page 8: Algoritmo de Huffman 2

PASO 2: Lo siguiente es ordenar estos caracteres en función a las frecuencias obtenidas, de menor a mayor y dejando solo el carácter con su correspondiente frecuencia, quedaría de la siguiente manera.

Page 9: Algoritmo de Huffman 2

Paso 3: Lo siguiente es la construcción de un árbol binario mediante la unión de nodos que contienen el carácter y su respectiva frecuencia, los nodos que tenemos hasta ahorita son los siguientes.

Page 10: Algoritmo de Huffman 2

PASO 4: Ahora lo que toca hacer es ir uniendo los nodos consecutivos en pares, sumaremos las frecuencias de esos dos nodos y luego con ellos crearemos un nuevo nodo. El nuevo nodo contendrá un caracter "null", seguido de la frecuencia obtenida al sumar las 2 frecuencias de los nodos con que se formó. Para entender mejor el concepto realizaremos este paso con los primeros 2 nodos de nuestro conjunto. El resultado es el siguiente.

Page 11: Algoritmo de Huffman 2

PASO 5: Ahora, si seguimos el mismo procedimiento podemos concluir que obtendremos un árbol binario, donde las hojas del mismo serán los caracteres de nuestra palabra. Al seguir realizando el mismo procedimiento obtendremos lo siguiente

Page 12: Algoritmo de Huffman 2

PASO 6:Seguimos el proceso secuencialmente.

Page 13: Algoritmo de Huffman 2

PASO 7: Hacemos el mismo procedimiento con los nodos nuevos, se crea un nodo nuevo con la suma de las frecuencias, y le antecede un null.

Page 14: Algoritmo de Huffman 2

PASO 8: Al final queda un árbol binario de la siguiente manera.

Page 15: Algoritmo de Huffman 2

PASO 9: Lo siguiente es asignar ceros y unos a las ramas del árbol, las de la izquierda serán ceros, mientras que las de la derecha serán unos.

Page 16: Algoritmo de Huffman 2

PASO 10: Lo siguiente es asignar ceros y unos a las ramas del árbol, las de la izquierda serán ceros, mientras que las de la derecha serán unos.

Page 17: Algoritmo de Huffman 2

PASO 11:Codificamos las letras

i->111n->00

g->100e->01

r->101 o->110

Page 18: Algoritmo de Huffman 2

Paso 12:Al final obtenemos nuestro código de huffman.

i-n-g-e-n-i-e-r-o11100100010011101101110

Page 19: Algoritmo de Huffman 2

VIDEO