SlideShare a Scribd company logo
1 of 24
Sección 9.2
Aplicaciones de los Árboles
Tomado de Matemáticas Discretas y sus Aplicaciones. Rosen
Esteban Andrés Díaz Mina
Introducción
 Se presentan dos problemas que pueden
estudiarse utilizando árboles:
1. ¿Cómo se pueden almacenar elementos en
una lista de manera que todos los elementos
puedan ser localizados fácilmente?
2. ¿Cómo se pueden codificar de manera
eficiente un conjunto de caracteres mediante
una cadena de bits?
Árboles Binarios de Búsqueda
 La búsqueda de elementos en una lista es una de
las tareas más importantes que surgen en el área
de la computación. Nuestro primer objetivo será
implementar un algoritmo de búsqueda que
encuentre los elementos de manera eficiente
cuando los objetos estén completamente
ordenados. Esto se puede lograr mediante árboles
binarios de búsqueda.
Definición 1
 Un árbol binario en el que cada hijo de un vértice
se designa como hijo izquierdo o hijo derecho,
ningún vértice tiene más de un hijo izquierdo y un
hijo derecho y cada vértice está etiquetado con una
clave, que es uno de los objetos. Además, a los
vértices se le designan las claves de modo que la
clave de un vértice es mayor que la de todos los
vértices de su subárbol izquierdo y menor que la de
todos los vértices de su subárbol derecho.
Ejemplo 1
Construya un árbol binario de búsqueda para las
palabras
mathematics,
physics,
geography,
zoology,
meteorology,
geology,
psychology y
chemistry.
Solución Ejemplo 1
Códigos instantáneos
 Considere el problema de codificar las letras del
alfabeto mediante cadenas de bits. Podemos
representar cada letra utilizando una cadena de
bits de longitud cinco, puesto que sólo hay 27
letras y hay 32 cadenas de longitud cinco.
 El número total de bits utilizados para codificar
los datos es cinco veces el número de
caracteres en el texto si cada carácter se
codifica mediante cinco bits.
Códigos instantáneos
 ¿Es posible encontrar una forma de codificar las
letras de modo que utilice menos bits? De este
modo estaríamos ahorrando espacios en memoria y
reduciendo el tiempo de transmisión de datos.
 Para codificar las letras vamos a utilizar cadenas de
bits de longitud variable. Las letras que aparecen
con mayor frecuencia deberán codificarse utilizando
cadenas de bits más cortas, mientras que las letras
menos comunes se codificarán mediante cadenas
más largas. Cuando las letras se codifican
utilizando cadenas de longitud variable, se debe
establecer algún método para determinar cuándo
comienza y cuándo termina cada cadena de bits.
Códigos instantáneos
 Por ejemplo, si e se codificara por 0, a por 1 y s
por 01, entonces la cadena 0101 podría
corresponder a sea, eas, eaea, ss.
 Una manera de asegurarse de que ninguna
cadena de bits se corresponde con más de una
secuencia de caracteres consiste en codificar
las letras de manera que cada cadena de bits
asociada a una letra nunca aparezca al
principio de la cadena de bits de otra letra.
 Los códigos con esta propiedad se llaman
códigos instantáneos.
Códigos instantáneos
 Un código instantáneo puede representarse
utilizando un árbol binario, donde los
caracteres son las etiquetas de las hojas del
árbol. Las aristas del árbol están etiquetadas de
modo que a la arista que va al hijo izquierdo se
le asigna 0 y a la que va al hijo derecho se le
asigna 1. La cadena de bits que codifica cada
carácter es la sucesión de etiquetas de las
aristas del único camino de la raíz a la hoja que
tiene ese carácter como etiqueta. Por ejemplo, el
siguiente árbol representa la codificación de e
por 0, a por 10, t por 110, n por 1110 y s por
1111.
Códigos instantáneos
 Los árboles que
representan códigos se
pueden utilizar para
descodificar cadenas
de bits. Por ejemplo,
descodificar la cadena
111110111010.
Códigos de Huffman
 Este algoritmo toma como datos de entrada las
frecuencias de los símbolos de una cadena y
devuelve un código instantáneo que codifica la
cadena de bits utilizando la menor cantidad de
bits, de entre todos los posibles códigos
instantáneos binarios para este conjunto de
símbolos. Este algoritmo, conocido como
codificación de Huffman, fue desarrollado por
David Huffman en 1951.
Códigos de Huffman
 La codificación de Huffman es un algoritmo
esencial en la compresión de datos, el área de
conocimiento que se dedica a reducir el número
de bits necesarios para representar la
información.
 La codificación de Huffman se utiliza en
numerosas ocasiones para comprimir cadenas
de bits que representan texto y también
desempeña un papel fundamental en la
compresión de archivos de audio y de
imágenes.
Códigos de Huffman
 Se tiene un archivo con 100 caracteres que se
desea compactar. Las frecuencias de aparición
de caracteres en el archivo son las siguientes:
a b c d e f
Frecuencia 45 13 12 16 9 5
Códigos de Huffman
 Puede usarse un código de longitud fija (de 3
bits). El archivo requeriría 300 bits.
a b c d e f
Código de Longitud Fija 000 001 010 111 100 101
Códigos de Huffman
 Usando un código de Longitud Variable
obtenemos:
 Este código ahorra más del 25% (requiere 224
bits en lugar de 300).
a b c d e f
Código de Longitud Variable 0 101 100 011 1101 1100
Códigos de Longitud Fija vs
Código de Longitud Variable (Huffman)
Códigos de Longitud Fija vs
Código de Longitud Variable (Huffman)
Códigos de Longitud Fija vs
Código de Longitud Variable (Huffman)
Codificación de Matemáticas
Codificación de Matemáticas - ASCII
Codificación de Matemáticas - Huffman
Códigos de Longitud Fija vs
Código de Longitud Variable (Huffman)
Consultar
http://www.cryptool-online.org/index.php?Itemid=18
Problemas Propuestos
Problemas Sección 9.2
2 19 20
21 22 24
26 27 29

More Related Content

What's hot

Modulacion Y Demodulacion
Modulacion Y DemodulacionModulacion Y Demodulacion
Modulacion Y Demodulacion
mariagupena
 
Analisis del proceso en la conversion de la señal analogica a digit_viceversa
Analisis del proceso en la conversion de la señal analogica a digit_viceversaAnalisis del proceso en la conversion de la señal analogica a digit_viceversa
Analisis del proceso en la conversion de la señal analogica a digit_viceversa
Valentin Manzano
 

What's hot (20)

Módem y XDSL
Módem y XDSLMódem y XDSL
Módem y XDSL
 
Códigos y Modos de Transmisión de Datos
Códigos y Modos de Transmisión de DatosCódigos y Modos de Transmisión de Datos
Códigos y Modos de Transmisión de Datos
 
Chapter 6
Chapter 6Chapter 6
Chapter 6
 
Trabajo de imformatica
Trabajo de imformaticaTrabajo de imformatica
Trabajo de imformatica
 
Codigos de Linea - Telecomunicaciones III
Codigos de Linea - Telecomunicaciones IIICodigos de Linea - Telecomunicaciones III
Codigos de Linea - Telecomunicaciones III
 
Chapter 4
Chapter 4Chapter 4
Chapter 4
 
Modulacion Y Demodulacion
Modulacion Y DemodulacionModulacion Y Demodulacion
Modulacion Y Demodulacion
 
Codigos de linea
Codigos de lineaCodigos de linea
Codigos de linea
 
Chapter 11
Chapter 11Chapter 11
Chapter 11
 
Codigo manchester
Codigo manchesterCodigo manchester
Codigo manchester
 
Códigos Golay y aplicación a la teoría de la información
Códigos Golay y aplicación a la teoría de la informaciónCódigos Golay y aplicación a la teoría de la información
Códigos Golay y aplicación a la teoría de la información
 
PDH
PDHPDH
PDH
 
Wimax En El Ecuador
Wimax En El EcuadorWimax En El Ecuador
Wimax En El Ecuador
 
Códigos
CódigosCódigos
Códigos
 
Analisis del proceso en la conversion de la señal analogica a digit_viceversa
Analisis del proceso en la conversion de la señal analogica a digit_viceversaAnalisis del proceso en la conversion de la señal analogica a digit_viceversa
Analisis del proceso en la conversion de la señal analogica a digit_viceversa
 
Examen final de sql nadia
Examen final de sql nadiaExamen final de sql nadia
Examen final de sql nadia
 
Formato articulos ieee
Formato articulos ieeeFormato articulos ieee
Formato articulos ieee
 
Trellis Y Viterbi
Trellis Y ViterbiTrellis Y Viterbi
Trellis Y Viterbi
 
SDH
SDHSDH
SDH
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 

Viewers also liked (8)

Algoritimo de Huffman
Algoritimo de HuffmanAlgoritimo de Huffman
Algoritimo de Huffman
 
Arbol De Huffman
Arbol De HuffmanArbol De Huffman
Arbol De Huffman
 
CODIGO DE HUFFMAN
CODIGO DE HUFFMANCODIGO DE HUFFMAN
CODIGO DE HUFFMAN
 
Código de Huffman
Código de HuffmanCódigo de Huffman
Código de Huffman
 
Sistema 4G
Sistema 4GSistema 4G
Sistema 4G
 
Codificacion HUFFMAN en matlab
Codificacion HUFFMAN en matlabCodificacion HUFFMAN en matlab
Codificacion HUFFMAN en matlab
 
Entropía y código de Huffman del mismo texto en diferentes idiomas.
Entropía y código de Huffman del mismo texto en diferentes idiomas.Entropía y código de Huffman del mismo texto en diferentes idiomas.
Entropía y código de Huffman del mismo texto en diferentes idiomas.
 
Algoritmos para matlab
Algoritmos para matlabAlgoritmos para matlab
Algoritmos para matlab
 

Similar to Grafos 9.2 2016

Tarea 3 tipos de datos corregida
Tarea 3 tipos de datos corregidaTarea 3 tipos de datos corregida
Tarea 3 tipos de datos corregida
Rodrigo Oropeza
 
Lecture 3 codificación fuente
Lecture 3 codificación fuenteLecture 3 codificación fuente
Lecture 3 codificación fuente
nica2009
 

Similar to Grafos 9.2 2016 (20)

Grafos 9.2 2016
Grafos 9.2 2016Grafos 9.2 2016
Grafos 9.2 2016
 
Grafos 9.2_2016
Grafos 9.2_2016Grafos 9.2_2016
Grafos 9.2_2016
 
Algoritmos compresión Cubi-Romero-Toledo
Algoritmos compresión Cubi-Romero-ToledoAlgoritmos compresión Cubi-Romero-Toledo
Algoritmos compresión Cubi-Romero-Toledo
 
6 Codificación de fuente.ppsx
6 Codificación de fuente.ppsx6 Codificación de fuente.ppsx
6 Codificación de fuente.ppsx
 
Java
JavaJava
Java
 
CODIGO HUFFMAN-1.pptx
CODIGO HUFFMAN-1.pptxCODIGO HUFFMAN-1.pptx
CODIGO HUFFMAN-1.pptx
 
Codificación de huffman
Codificación de huffmanCodificación de huffman
Codificación de huffman
 
Codigos binarios
Codigos binariosCodigos binarios
Codigos binarios
 
Algoritmo de compresión de huffman
Algoritmo de compresión de huffmanAlgoritmo de compresión de huffman
Algoritmo de compresión de huffman
 
Tipos de datos
Tipos de datosTipos de datos
Tipos de datos
 
Tipos de datos
Tipos de datosTipos de datos
Tipos de datos
 
Tarea 3 tipos de datos corregida
Tarea 3 tipos de datos corregidaTarea 3 tipos de datos corregida
Tarea 3 tipos de datos corregida
 
Presentacion power designer
Presentacion power designerPresentacion power designer
Presentacion power designer
 
Lecture 3 codificación fuente
Lecture 3 codificación fuenteLecture 3 codificación fuente
Lecture 3 codificación fuente
 
algoritmos-criptograficos.ppt
algoritmos-criptograficos.pptalgoritmos-criptograficos.ppt
algoritmos-criptograficos.ppt
 
Tipos de datos
Tipos de datosTipos de datos
Tipos de datos
 
Tipos de datos oracle
Tipos de datos oracleTipos de datos oracle
Tipos de datos oracle
 
Código Huffman
Código HuffmanCódigo Huffman
Código Huffman
 
Definiciones y ejemplos de los tipos de datos de powerdesigner
Definiciones y ejemplos de los tipos de datos de powerdesignerDefiniciones y ejemplos de los tipos de datos de powerdesigner
Definiciones y ejemplos de los tipos de datos de powerdesigner
 
Teoría de códigos saira isaac
Teoría de códigos   saira isaacTeoría de códigos   saira isaac
Teoría de códigos saira isaac
 

More from Esteban Andres Diaz Mina

More from Esteban Andres Diaz Mina (20)

Grafos 8.2.2
Grafos 8.2.2Grafos 8.2.2
Grafos 8.2.2
 
Formato_Silabo_MD_N_2017
Formato_Silabo_MD_N_2017Formato_Silabo_MD_N_2017
Formato_Silabo_MD_N_2017
 
Formato_Silabo_MD_D_2017
Formato_Silabo_MD_D_2017Formato_Silabo_MD_D_2017
Formato_Silabo_MD_D_2017
 
Formato_Programa_MD_N_2017
Formato_Programa_MD_N_2017Formato_Programa_MD_N_2017
Formato_Programa_MD_N_2017
 
Formato_Programa_MD_D_2017
Formato_Programa_MD_D_2017Formato_Programa_MD_D_2017
Formato_Programa_MD_D_2017
 
Taller Unidad 2
Taller Unidad 2Taller Unidad 2
Taller Unidad 2
 
Formato Programa de Asignatura_IS0602-2016-2_Wiki
Formato Programa de Asignatura_IS0602-2016-2_WikiFormato Programa de Asignatura_IS0602-2016-2_Wiki
Formato Programa de Asignatura_IS0602-2016-2_Wiki
 
Examen3_2016-I
Examen3_2016-IExamen3_2016-I
Examen3_2016-I
 
Examen2_2015-II
Examen2_2015-IIExamen2_2015-II
Examen2_2015-II
 
Examen1_2015-I
Examen1_2015-IExamen1_2015-I
Examen1_2015-I
 
Formato_Silabo_Wiki
Formato_Silabo_WikiFormato_Silabo_Wiki
Formato_Silabo_Wiki
 
Formato Programa de Asignatura IS0602-2016-2-Wiki
Formato Programa de Asignatura IS0602-2016-2-WikiFormato Programa de Asignatura IS0602-2016-2-Wiki
Formato Programa de Asignatura IS0602-2016-2-Wiki
 
DiseñoAccionDocente_MatemáticasDiscretas
DiseñoAccionDocente_MatemáticasDiscretasDiseñoAccionDocente_MatemáticasDiscretas
DiseñoAccionDocente_MatemáticasDiscretas
 
Grafos 8.5.1
Grafos 8.5.1Grafos 8.5.1
Grafos 8.5.1
 
Grafos 8.4.1
Grafos 8.4.1Grafos 8.4.1
Grafos 8.4.1
 
Grafos 8.2.1
Grafos 8.2.1Grafos 8.2.1
Grafos 8.2.1
 
Grafos 8.1.1
Grafos 8.1.1Grafos 8.1.1
Grafos 8.1.1
 
Grafos 9.3 2016
Grafos 9.3 2016Grafos 9.3 2016
Grafos 9.3 2016
 
Grafos 9.5 2016
Grafos 9.5 2016Grafos 9.5 2016
Grafos 9.5 2016
 
Grafos 9.4 2016
Grafos 9.4 2016Grafos 9.4 2016
Grafos 9.4 2016
 

Recently uploaded

🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 

Recently uploaded (20)

🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 
Usos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicasUsos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicas
 
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADOTIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptx
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
 
semana 4 9NO Estudios sociales.pptxnnnn
semana 4  9NO Estudios sociales.pptxnnnnsemana 4  9NO Estudios sociales.pptxnnnn
semana 4 9NO Estudios sociales.pptxnnnn
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.
 

Grafos 9.2 2016

  • 1. Sección 9.2 Aplicaciones de los Árboles Tomado de Matemáticas Discretas y sus Aplicaciones. Rosen Esteban Andrés Díaz Mina
  • 2. Introducción  Se presentan dos problemas que pueden estudiarse utilizando árboles: 1. ¿Cómo se pueden almacenar elementos en una lista de manera que todos los elementos puedan ser localizados fácilmente? 2. ¿Cómo se pueden codificar de manera eficiente un conjunto de caracteres mediante una cadena de bits?
  • 3. Árboles Binarios de Búsqueda  La búsqueda de elementos en una lista es una de las tareas más importantes que surgen en el área de la computación. Nuestro primer objetivo será implementar un algoritmo de búsqueda que encuentre los elementos de manera eficiente cuando los objetos estén completamente ordenados. Esto se puede lograr mediante árboles binarios de búsqueda.
  • 4. Definición 1  Un árbol binario en el que cada hijo de un vértice se designa como hijo izquierdo o hijo derecho, ningún vértice tiene más de un hijo izquierdo y un hijo derecho y cada vértice está etiquetado con una clave, que es uno de los objetos. Además, a los vértices se le designan las claves de modo que la clave de un vértice es mayor que la de todos los vértices de su subárbol izquierdo y menor que la de todos los vértices de su subárbol derecho.
  • 5. Ejemplo 1 Construya un árbol binario de búsqueda para las palabras mathematics, physics, geography, zoology, meteorology, geology, psychology y chemistry.
  • 7. Códigos instantáneos  Considere el problema de codificar las letras del alfabeto mediante cadenas de bits. Podemos representar cada letra utilizando una cadena de bits de longitud cinco, puesto que sólo hay 27 letras y hay 32 cadenas de longitud cinco.  El número total de bits utilizados para codificar los datos es cinco veces el número de caracteres en el texto si cada carácter se codifica mediante cinco bits.
  • 8. Códigos instantáneos  ¿Es posible encontrar una forma de codificar las letras de modo que utilice menos bits? De este modo estaríamos ahorrando espacios en memoria y reduciendo el tiempo de transmisión de datos.  Para codificar las letras vamos a utilizar cadenas de bits de longitud variable. Las letras que aparecen con mayor frecuencia deberán codificarse utilizando cadenas de bits más cortas, mientras que las letras menos comunes se codificarán mediante cadenas más largas. Cuando las letras se codifican utilizando cadenas de longitud variable, se debe establecer algún método para determinar cuándo comienza y cuándo termina cada cadena de bits.
  • 9. Códigos instantáneos  Por ejemplo, si e se codificara por 0, a por 1 y s por 01, entonces la cadena 0101 podría corresponder a sea, eas, eaea, ss.  Una manera de asegurarse de que ninguna cadena de bits se corresponde con más de una secuencia de caracteres consiste en codificar las letras de manera que cada cadena de bits asociada a una letra nunca aparezca al principio de la cadena de bits de otra letra.  Los códigos con esta propiedad se llaman códigos instantáneos.
  • 10. Códigos instantáneos  Un código instantáneo puede representarse utilizando un árbol binario, donde los caracteres son las etiquetas de las hojas del árbol. Las aristas del árbol están etiquetadas de modo que a la arista que va al hijo izquierdo se le asigna 0 y a la que va al hijo derecho se le asigna 1. La cadena de bits que codifica cada carácter es la sucesión de etiquetas de las aristas del único camino de la raíz a la hoja que tiene ese carácter como etiqueta. Por ejemplo, el siguiente árbol representa la codificación de e por 0, a por 10, t por 110, n por 1110 y s por 1111.
  • 11. Códigos instantáneos  Los árboles que representan códigos se pueden utilizar para descodificar cadenas de bits. Por ejemplo, descodificar la cadena 111110111010.
  • 12. Códigos de Huffman  Este algoritmo toma como datos de entrada las frecuencias de los símbolos de una cadena y devuelve un código instantáneo que codifica la cadena de bits utilizando la menor cantidad de bits, de entre todos los posibles códigos instantáneos binarios para este conjunto de símbolos. Este algoritmo, conocido como codificación de Huffman, fue desarrollado por David Huffman en 1951.
  • 13. Códigos de Huffman  La codificación de Huffman es un algoritmo esencial en la compresión de datos, el área de conocimiento que se dedica a reducir el número de bits necesarios para representar la información.  La codificación de Huffman se utiliza en numerosas ocasiones para comprimir cadenas de bits que representan texto y también desempeña un papel fundamental en la compresión de archivos de audio y de imágenes.
  • 14. Códigos de Huffman  Se tiene un archivo con 100 caracteres que se desea compactar. Las frecuencias de aparición de caracteres en el archivo son las siguientes: a b c d e f Frecuencia 45 13 12 16 9 5
  • 15. Códigos de Huffman  Puede usarse un código de longitud fija (de 3 bits). El archivo requeriría 300 bits. a b c d e f Código de Longitud Fija 000 001 010 111 100 101
  • 16. Códigos de Huffman  Usando un código de Longitud Variable obtenemos:  Este código ahorra más del 25% (requiere 224 bits en lugar de 300). a b c d e f Código de Longitud Variable 0 101 100 011 1101 1100
  • 17. Códigos de Longitud Fija vs Código de Longitud Variable (Huffman)
  • 18. Códigos de Longitud Fija vs Código de Longitud Variable (Huffman)
  • 19. Códigos de Longitud Fija vs Código de Longitud Variable (Huffman)
  • 23. Códigos de Longitud Fija vs Código de Longitud Variable (Huffman) Consultar http://www.cryptool-online.org/index.php?Itemid=18
  • 24. Problemas Propuestos Problemas Sección 9.2 2 19 20 21 22 24 26 27 29