SlideShare una empresa de Scribd logo
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

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Tipo de variables de PowerDesigner
Tipo de variables de PowerDesignerTipo de variables de PowerDesigner
Tipo de variables de PowerDesigner
 
Codificacion BCH
Codificacion BCHCodificacion BCH
Codificacion BCH
 
Robot Laberinto Shocobot
Robot Laberinto ShocobotRobot Laberinto Shocobot
Robot Laberinto Shocobot
 
examen inf-164
examen inf-164examen inf-164
examen inf-164
 
Codificación y protocolos en telecomunicaciones
Codificación y protocolos en telecomunicacionesCodificación y protocolos en telecomunicaciones
Codificación y protocolos en telecomunicaciones
 
Deteccion Y Control De
Deteccion Y Control DeDeteccion Y Control De
Deteccion Y Control De
 
Digital Basics
Digital BasicsDigital Basics
Digital Basics
 
Estructura de datos : Cola
Estructura de datos : ColaEstructura de datos : Cola
Estructura de datos : Cola
 
Lista de adyacencia
Lista de adyacenciaLista de adyacencia
Lista de adyacencia
 
Codigos Corrector de Errores
Codigos Corrector de ErroresCodigos Corrector de Errores
Codigos Corrector de Errores
 
Codificación digital digital
Codificación digital digitalCodificación digital digital
Codificación digital digital
 
Identificadores en Lógia de Programación
Identificadores en Lógia de ProgramaciónIdentificadores en Lógia de Programación
Identificadores en Lógia de Programación
 
Ejercicios 06 subrutinas con LCD
Ejercicios 06 subrutinas con LCDEjercicios 06 subrutinas con LCD
Ejercicios 06 subrutinas con LCD
 
Curso de microcontroladores pic18 f4550
Curso de microcontroladores pic18 f4550Curso de microcontroladores pic18 f4550
Curso de microcontroladores pic18 f4550
 
Introducción a los tipos de datos
Introducción a los tipos de datosIntroducción a los tipos de datos
Introducción a los tipos de datos
 
Expo Simscript
Expo SimscriptExpo Simscript
Expo Simscript
 
Chapter 10
Chapter 10Chapter 10
Chapter 10
 
Tipos de datos_para_c++
Tipos de datos_para_c++Tipos de datos_para_c++
Tipos de datos_para_c++
 
Codigos binarios
Codigos binariosCodigos binarios
Codigos binarios
 
Registro universal
Registro universalRegistro universal
Registro universal
 

Destacado (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 a Grafos 9.2 2016

Similar a 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
 
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
 
Variables de Power designer
Variables de Power designerVariables de Power designer
Variables de Power designer
 

Más de 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
 

Último

Presentación Propuesta de Proyecto Social Colorido y Juvenil Multicolor y Neg...
Presentación Propuesta de Proyecto Social Colorido y Juvenil Multicolor y Neg...Presentación Propuesta de Proyecto Social Colorido y Juvenil Multicolor y Neg...
Presentación Propuesta de Proyecto Social Colorido y Juvenil Multicolor y Neg...crcamora123
 
Presentación Pedagoía medieval para exposición en clases
Presentación Pedagoía medieval para exposición en clasesPresentación Pedagoía medieval para exposición en clases
Presentación Pedagoía medieval para exposición en clasesGustavo Cano
 
Ferias de ciencias y estrategia STEAM – PNFCyT 2024.pdf
Ferias de ciencias y estrategia STEAM – PNFCyT 2024.pdfFerias de ciencias y estrategia STEAM – PNFCyT 2024.pdf
Ferias de ciencias y estrategia STEAM – PNFCyT 2024.pdfJudithRomero51
 
Orientación Académica y Profesional 4º de ESO- OrientArte
Orientación Académica y Profesional 4º de ESO- OrientArteOrientación Académica y Profesional 4º de ESO- OrientArte
Orientación Académica y Profesional 4º de ESO- OrientArteEducaclip
 
ensayo literario rios profundos jose maria ARGUEDAS
ensayo literario rios profundos jose maria ARGUEDASensayo literario rios profundos jose maria ARGUEDAS
ensayo literario rios profundos jose maria ARGUEDASAntoineMoltisanti
 
Proyecto integrador Vereda Cujacal Centro.pptx
Proyecto integrador Vereda Cujacal Centro.pptxProyecto integrador Vereda Cujacal Centro.pptx
Proyecto integrador Vereda Cujacal Centro.pptxvanessaavasquez212
 
ACERTIJO DE CARRERA OLÍMPICA DE SUMA DE LABERINTOS. Por JAVIER SOLIS NOYOLA
ACERTIJO DE CARRERA OLÍMPICA DE SUMA DE LABERINTOS. Por JAVIER SOLIS NOYOLAACERTIJO DE CARRERA OLÍMPICA DE SUMA DE LABERINTOS. Por JAVIER SOLIS NOYOLA
ACERTIJO DE CARRERA OLÍMPICA DE SUMA DE LABERINTOS. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
ESTEREOTIPOS Y ROLES DE GÉNERO (labor de grupo)
ESTEREOTIPOS  Y ROLES DE GÉNERO (labor de grupo)ESTEREOTIPOS  Y ROLES DE GÉNERO (labor de grupo)
ESTEREOTIPOS Y ROLES DE GÉNERO (labor de grupo)portafoliodigitalyos
 
Lección 1: Los complementos del Verbo ...
Lección 1: Los complementos del Verbo ...Lección 1: Los complementos del Verbo ...
Lección 1: Los complementos del Verbo ...odalisvelezg
 
Proyecto Integrador 2024. Archiduque entrevistas
Proyecto Integrador 2024. Archiduque entrevistasProyecto Integrador 2024. Archiduque entrevistas
Proyecto Integrador 2024. Archiduque entrevistasELIANAMARIBELBURBANO
 
Presentación de medicina Enfermedades Fotográfico Moderno Morado (1).pdf
Presentación de medicina Enfermedades Fotográfico Moderno Morado (1).pdfPresentación de medicina Enfermedades Fotográfico Moderno Morado (1).pdf
Presentación de medicina Enfermedades Fotográfico Moderno Morado (1).pdfjuancmendez1405
 
Evaluación de los Factores Internos de la Organización
Evaluación de los Factores Internos de la OrganizaciónEvaluación de los Factores Internos de la Organización
Evaluación de los Factores Internos de la OrganizaciónJonathanCovena1
 
Presentación Revistas y Periódicos Digitales
Presentación Revistas y Periódicos DigitalesPresentación Revistas y Periódicos Digitales
Presentación Revistas y Periódicos Digitalesnievesjiesc03
 
corpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdfcorpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdfYolandaRodriguezChin
 
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)JonathanCovena1
 

Último (20)

Power Point: Luz desde el santuario.pptx
Power Point: Luz desde el santuario.pptxPower Point: Luz desde el santuario.pptx
Power Point: Luz desde el santuario.pptx
 
Presentación Propuesta de Proyecto Social Colorido y Juvenil Multicolor y Neg...
Presentación Propuesta de Proyecto Social Colorido y Juvenil Multicolor y Neg...Presentación Propuesta de Proyecto Social Colorido y Juvenil Multicolor y Neg...
Presentación Propuesta de Proyecto Social Colorido y Juvenil Multicolor y Neg...
 
Presentación Pedagoía medieval para exposición en clases
Presentación Pedagoía medieval para exposición en clasesPresentación Pedagoía medieval para exposición en clases
Presentación Pedagoía medieval para exposición en clases
 
TRABAJO CON TRES O MAS FRACCIONES PARA NIÑOS
TRABAJO CON TRES O MAS FRACCIONES PARA NIÑOSTRABAJO CON TRES O MAS FRACCIONES PARA NIÑOS
TRABAJO CON TRES O MAS FRACCIONES PARA NIÑOS
 
Ferias de ciencias y estrategia STEAM – PNFCyT 2024.pdf
Ferias de ciencias y estrategia STEAM – PNFCyT 2024.pdfFerias de ciencias y estrategia STEAM – PNFCyT 2024.pdf
Ferias de ciencias y estrategia STEAM – PNFCyT 2024.pdf
 
Orientación Académica y Profesional 4º de ESO- OrientArte
Orientación Académica y Profesional 4º de ESO- OrientArteOrientación Académica y Profesional 4º de ESO- OrientArte
Orientación Académica y Profesional 4º de ESO- OrientArte
 
4.Conectores Dos_Enfermería_Espanolacademico
4.Conectores Dos_Enfermería_Espanolacademico4.Conectores Dos_Enfermería_Espanolacademico
4.Conectores Dos_Enfermería_Espanolacademico
 
ensayo literario rios profundos jose maria ARGUEDAS
ensayo literario rios profundos jose maria ARGUEDASensayo literario rios profundos jose maria ARGUEDAS
ensayo literario rios profundos jose maria ARGUEDAS
 
3.Conectores uno_Enfermería_EspAcademico
3.Conectores uno_Enfermería_EspAcademico3.Conectores uno_Enfermería_EspAcademico
3.Conectores uno_Enfermería_EspAcademico
 
Proyecto integrador Vereda Cujacal Centro.pptx
Proyecto integrador Vereda Cujacal Centro.pptxProyecto integrador Vereda Cujacal Centro.pptx
Proyecto integrador Vereda Cujacal Centro.pptx
 
ACERTIJO DE CARRERA OLÍMPICA DE SUMA DE LABERINTOS. Por JAVIER SOLIS NOYOLA
ACERTIJO DE CARRERA OLÍMPICA DE SUMA DE LABERINTOS. Por JAVIER SOLIS NOYOLAACERTIJO DE CARRERA OLÍMPICA DE SUMA DE LABERINTOS. Por JAVIER SOLIS NOYOLA
ACERTIJO DE CARRERA OLÍMPICA DE SUMA DE LABERINTOS. Por JAVIER SOLIS NOYOLA
 
ESTEREOTIPOS Y ROLES DE GÉNERO (labor de grupo)
ESTEREOTIPOS  Y ROLES DE GÉNERO (labor de grupo)ESTEREOTIPOS  Y ROLES DE GÉNERO (labor de grupo)
ESTEREOTIPOS Y ROLES DE GÉNERO (labor de grupo)
 
Lección 1: Los complementos del Verbo ...
Lección 1: Los complementos del Verbo ...Lección 1: Los complementos del Verbo ...
Lección 1: Los complementos del Verbo ...
 
Proyecto Integrador 2024. Archiduque entrevistas
Proyecto Integrador 2024. Archiduque entrevistasProyecto Integrador 2024. Archiduque entrevistas
Proyecto Integrador 2024. Archiduque entrevistas
 
Presentación de medicina Enfermedades Fotográfico Moderno Morado (1).pdf
Presentación de medicina Enfermedades Fotográfico Moderno Morado (1).pdfPresentación de medicina Enfermedades Fotográfico Moderno Morado (1).pdf
Presentación de medicina Enfermedades Fotográfico Moderno Morado (1).pdf
 
Evaluación de los Factores Internos de la Organización
Evaluación de los Factores Internos de la OrganizaciónEvaluación de los Factores Internos de la Organización
Evaluación de los Factores Internos de la Organización
 
Presentación Revistas y Periódicos Digitales
Presentación Revistas y Periódicos DigitalesPresentación Revistas y Periódicos Digitales
Presentación Revistas y Periódicos Digitales
 
corpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdfcorpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdf
 
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
 
Lec. 08 Esc. Sab. Luz desde el santuario
Lec. 08 Esc. Sab. Luz desde el santuarioLec. 08 Esc. Sab. Luz desde el santuario
Lec. 08 Esc. Sab. Luz desde el santuario
 

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