Compresión de Datos. Método de Huffman. Dpto. Informática
|
|
- Julián Quiroga Morales
- hace 7 años
- Vistas:
Transcripción
1 Compresión de Datos Método de Huffman Manipulación y Preservación de Datos Dpto. Informática Ing. Mariano D'Agostino
2 Introducción La compresión de datos es el proceso de convertir una cadena de datos de entrada (la cadena fuente o los datos originales a tratar), en otra cadena de datos (la salida, la cadena de bits, o la cadena comprimida), que tenga un tamaño más pequeño. La compresión de datos es popular por dos razones: En primer lugar, a la gente le gusta acumular datos y odia tirar cualquier cosa. No importa cuánta capacidad tenga un dispositivo de almacenamiento, tarde o temprano va a desbordarse. La compresión de datos, parece útil, ya que retrasa lo inevitable. En segundo lugar la gente odia esperar mucho tiempo en las transferencias de datos. Cuando se está sentado frente a una computadora, esperando la carga de una página Web o la llegada de un archivo, sentimos de forma natural, que cualquier cosa que dure más que unos pocos segundos, es un largo tiempo de espera. Hay muchos métodos conocidos para la compresión de datos. Están basados en ideas diferentes, apropiadas para distintos tipos de datos, y producen diferentes resultados; pero todos se basan en el mismo principio, comprimen eliminando la redundancia de los datos originales del archivo de fuente. Cualquier dato no aleatorio posee alguna estructura, la cual puede ser aprovechada para lograr una representación más pequeña de los datos; en esta nueva estructura, al parecer no hay ningún patrón identificable. En un texto típico en castellano, por ejemplo, la letra E es muy frecuente, mientras que la K, aparece raramente. Esto se llama redundancia alfabética, y sugiere la asignación de códigos de tamaño variable a las letras; asociando con E, el código más corto, y con K, el más largo. Otro tipo de redundancia, la redundancia de contexto, se ilustra por el hecho de que la letra Q, es casi siempre previa a la letra U. La redundancia en las imágenes se ilustra por el hecho de que, en una imagen no aleatoria, píxeles adyacentes tienden a tener colores similares. La idea de comprimir reduciendo la redundancia, sugiere la ley general de la compresión de datos, que consiste en asignar códigos cortos para los eventos comunes (símbolos o frases) y códigos largos para los eventos raros. Hay muchas maneras de aplicar esta ley y un análisis de cualquier método de compresión muestra que, en el fondo, funciona obedeciendo a la ley general. El código ASCII para caracteres, es un buen ejemplo de representación de datos más larga de lo necesario. Utiliza códigos de 7 bits, porque es fácil trabajar con códigos de tamaño fijo. Un código de tamaño variable, sin embargo, sería más eficiente, ya que algunos caracteres se usan más que otros, y así, se podrían asignar códigos más cortos. El método de huffman Huffman es un método de codificación ampliamente conocido. La idea de la codificación Huffman es comprimir el texto asignando códigos más cortos a los 1
3 símbolos más frecuentes. Se ha probado que el algoritmo de Huffman obtiene, para un texto dado, una codificación optima de prefijo libre. Una codificación se denomina de prefijo libre (o código instantáneo) si no produce ningún código que sea prefijo de otro código. Un código de prefijo libre puede ser decodificado sin necesidad de comprobar códigos futuros, dado que el final de un código es inmediatamente reconocible. En los últimos años se han desarrollado nuevas técnicas de compresión especialmente indicadas para su aplicación sobre textos en lenguaje natural. La codificación Huffman es un método muy valorado para la compresión de datos. Sirve como base para varios programas populares que se ejecutan en diversas plataformas. Algunos de ellos, utilizan sólo el método de Huffman, mientras que en otros, forma parte de un proceso de compresión de varios pasos. A continuación veremos un ejemplo completo de como emplear el método huffman para comprimir un texto. Luego veremos el mecanismo para descomprimirlo y obtener el texto original. Comprimir textos usando el método de Huffman El método de Huffman para comprimir texto se resume en los siguiente pasos. Contar cuantas ocurrencias de cada caracter hay en el texto. Construir un árbol que combine los diferentes caracteres. Utilizando las ramas del árbol generar un nuevo código para cada caracter. Reemplazar cada caracter del texto original por el nuevo código. Para hacer más claro este procedimiento, utilicemos un ejemplo paso a paso. Supongamos que tenemos la siguiente frase: ella regresa a casa. El primer paso del método indica que hay que contar cuantas ocurrencias hay de cada caracter. Lo que nos da la siguiente tabla. 2
4 A continuación, se procede a construir un árbol. Para simplificar la construcción, el árbol se dibujará de abajo invertido, o sea, con la raíz hacia arriba y las hojas hacia abajo, pero esta elección de ninguna manera impacta en el resultado final. El primer paso consiste en colocar cada una de los caracteres en la base, junto con su frecuencia, ordenados de menor a mayor, como indica la siguiente figura: Luego, se combinan dos de los caracteres que sumen la menor cifra. En este caso, las dos hojas que sumadas dan el menor resultado son la C y la G con una unidad cada una. La suma de las ocurrencias de los dos caracteres da como resultado un nuevo nodo en el árbol. 3
5 El procedimiento anterior se vuelve a repetir hasta que se lleguen a unificar todos los caracteres en un único nodo. Para este caso, la siguiente suma puede ser la letra L con el nodo GC, que da como resultado un nuevo nodo con valor 4. Después, la menor suma posible que se puede obtener es sumar S y R cada una con un valor de 2. 4
6 Luego, y aquí hay que tener especial cuidado, la siguiente suma involucra a los caracteres A y el espacio (representado con un guión bajo), ya que sumar 3 a cualquiera de los otros dos nodos de valor 4 daría como resultado 7, y sumar da una suma menor de valor 6. Como vimos anteriormente los nodos tienen que combinarse para formar nuevos nodos hasta que solo quede uno solo. El valor del nodo raíz (el nodo superior) debe ser igual a la cantidad de caracteres del texto original. Esto es una forma simple de controlar si se hicieron correctamente las sumas de todos los nodos inferiores. Siguiendo el mismo procedimiento, el árbol terminado queda de esta forma. 5
7 Cada linea que une un nodo con otro nodo se denomina rama del árbol. El siguiente paso consiste en colocar un cero, en las ramas izquierdas del árbol, y un uno en las ramas derechas. Y con esto concluye la construcción del árbol. 6
8 El tercer paso del método dice: "Utilizando las ramas del árbol generar un nuevo código para cada caracter". Esto se logra de la siguiente forma. Recorriendo el árbol desde el nodo superior (el nodo raíz) hacia cada una de las hojas, encontraremos una secuencia de unos y ceros que serán los nuevos códigos de cada caracter. Por ejemplo, para la letra A, el código se obtiene recorriendo el árbol de esta forma: 7
9 Por lo tanto el código para la letra A es: 00. Para la letra E el código sería 001 8
10 Y para la letra C el código sería 1110 Recorriendo todos los caminos posibles obtenemos la siguiente tabla de códigos: 9
11 El último paso consiste en reemplazar cada uno de los caracteres del texto original por su nueva representación. Recordar que si utilizáramos ASCII, ISO o UTF-8 para codificar el texto anterior, cada caracter tendría un byte de longitud, esto es 8 bits. Ahora, cada caracter tiene un código más corto, y aquellos caracteres que más se repiten tienen una longitud menor. El texto original en ASCII sería el siguiente: 10
12 Reemplazando cada caracter por su nuevo código obtenemos la siguiente cadena de unos y ceros. Como puede observarse, hay una reducción notable en la cantidad de bits utilizados para escribir el mismo mensaje. En esto consiste la compresión utilizando el método Huffman, en utilizar códigos más cortos, para los caracteres que más frecuentemente aparecen en el texto. 11
13 Descompresión de textos codificados con el método Huffman Conociendo los nuevos códigos para cada caracter, es evidente que la transformación de binario a su formato original es muy simple. Básicamente se van leyendo los ceros y uno de derecha a izquierda hasta encontrar un código válido, en ese momento estamos en condiciones de decodificar un nuevo caracter. El problema es que se plantea ahora es, de que manera enviar junto con el mensaje, los códigos nuevos para cada caracter, de esta forma al leer un mensaje comprimido, tendríamos también tendríamos también los códigos para descomprimirlo. Hay que tener en cuenta que una cadena de ceros y unos codificada con el método de Huffman puede tener distintos significados dependiendo de los códigos que se utilicen para descomprimirlo, por eso es tan importante adjuntar al mensaje comprimido la secuencia nueva de códigos, sino, sería imposible determinar el mensaje original. Una forma simple de enviar los nuevos códigos junto con el mensaje comprimido es enviar la estructura del árbol generado en el paso de compresión. Navegando el árbol es posible deducir los nuevos códigos de cada caracter y por lo tanto obtener el mensaje original. Veremos entonces de que manera se puede adjuntar la estructura del árbol al mensaje comprimido. Codificar el árbol de Huffman El método para convertir un árbol de Huffman en una secuencia de ceros y unos consiste en utilizar una búsqueda llamada primero en profundidad. En este tipo de búsquedas, un árbol se va navegando primero hasta llegar a una hoja, y luego se vuelve hacia atrás solo lo suficiente para poder seguir bajando hasta otra hoja. Veamos este procedimiento con un ejemplo, utilizando el mismo árbol generado para el texto ella regresa a casa 12
14 Comenzando desde la raíz, navegamos el árbol hasta el final. Por cada nodo que encontremos, colocaremos un cero en una lista. Cuando encontremos una hoja, colocaremos un uno y a continuación el valor del caracter que encontramos en la hoja. Luego, volvemos hacia atrás en nuestro recorrido. Como el nodo superior ya fue 13
15 visitado no escribimos ningún cero, y ahora bajamos hacia la derecha, hacia la la siguiente hoja, donde escribimos otro uno y el valor del caracter que encontramos en la hoja. Habiendo completado toda la rama, volvemos hacia atrás hasta que encontremos otro nodo que no haya sido procesado. 14
16 El proceso continúa hasta que todas las hojas del árbol hayan sido procesadas. Por cada nodo que no se haya visitado, se escribe un cero, por cada hoja, se escribe un uno y el valor del caracter. El árbol codificado de esta forma tiene la característica que es posible de decodificar siguiendo la secuencia de ceros y unos y dibujando los nodos y hojas. Además, es seguro adjuntarlo al mensaje original, ya que queda perfectamente delimitado cuando finaliza el árbol de cuando comienza el mensaje comprimido (esto se debe a que el árbol es un árbol binario, en donde cada nodo tiene solo dos ramas, y visualmente es claro que ya no pueden agregarse más hojas al mismo). El proceso completo de codificar todo el árbol se ilustra en la siguiente imagen. Los puntos negros indican la primera vez que se visitó un nodo o una hoja, y el valor que se imprime al visitarlo. Debajo de la imagen se observa como se codifica todo el árbol usando una serie de unos y ceros. 15
17 Decodificando un árbol codificado El proceso de decodificación de una cadena de un árbol codificado consiste en ir leyendo uno a uno los bits de la cadena y dibujar un nodo o una hoja según encontremos un uno y un cero. Primero se completan las ramas de la izquierda, y luego de la derecha. Si leemos la cadena 001A, dibujaremos un nodo, luego a la izquierda otro nodo y finalmente en la rama izquierda de este último nodo, dibujamos una hoja con valor A. 16
18 Primero se completan las ramas de la izquierda, y luego de la derecha. Si leemos la cadena 001A, dibujaremos un nodo, luego a la izquierda otro nodo y finalmente en la rama izquierda de este último nodo, dibujamos una hoja con valor A. A continuación, seguimos leyendo la secuencia, completando la rama derecha del último nodo que hayamos dibujado. La cadena sigue con 01_1E, lo que significa que debemos dibujar primero un nodo, a su izquierda una hoja con valor espacio en blanco y a su derecha otra hoja con valor E. 17
19 Cada vez que encontremos una secuencia de 01A1B donde A y B son dos letras cualquiera, implica dibujar un nodo con dos hojas, A y B. Como mencionamos varios párrafos atrás, el árbol binario se termina de dibujar sin ambigüedades. Cuando se llega a dibujar la última hoja no es posible seguir agregando más elementos al árbol (debido a que las hojas no tienen ramas), y por lo tanto es posible empezar a decodificar el resto del mensaje comprimido. 18
20 El proceso de descompresión completo Leyendo una cadena de unos y ceros comprimida con el método Huffman implica construir un árbol con la primera sección, una vez construido el árbol es posible obtener los patrones de reemplazo de cada carácter. Con estos patrones de reemplazo se continua leyendo la cadena de unos y ceros para ir detectando cada carácter codificado y de esta forma obtener el mensaje original. Bibliografía D. Salomon (2014) Compresión de datos. La referencia completa. N. Brisaboa y otros. Compresión de textos en Bases de Datos Digitales. 19
Para convertir un decimal a un binario se necesita la siguiente tabla.
Conversiones Conversión de Decimal a Binario Para convertir un decimal a un binario se necesita la siguiente tabla. Para convertir el 33: Primero: Se busca en la tabla un número igual o menor a 33. Segundo:
Más detallesLección 10: División de Polinomios. Dra. Noemí L. Ruiz Limardo 2009
Lección 10: División de Polinomios Dra. Noemí L. Ruiz Limardo 009 Objetivos de la lección Al finalizar esta lección los estudiantes: Dividirán polinomios de dos o más términos por polinomios de uno y dos
Más detallesSISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos
TEMA 2 Diseño de Algoritmos 7 2. DISEÑO DE ALGORITMOS 2.1. Concepto de Algoritmo En matemáticas, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus
Más detallesRepresentación de números enteros: el convenio exceso Z
Representación de números enteros: el convenio exceso Z Apellidos, nombre Martí Campoy, Antonio (amarti@disca.upv.es) Departamento Centro Informàtica de Sistemes i Computadors Escola Tècnica Superior d
Más detallesSISTEMAS DE ECUACIONES LINEALES. Método de reducción o de Gauss. 1º DE BACHILLERATO DPTO DE MATEMÁTICAS COLEGIO MARAVILLAS AUTORA: Teresa González.
SISTEMAS DE ECUACIONES LINEALES Método de reducción o de Gauss 1º DE BACHILLERATO DPTO DE MATEMÁTICAS COLEGIO MARAVILLAS AUTORA: Teresa González. SISTEMAS DE DOS ECUACIONES LINEALES CON DOS INCÓGNITAS.
Más detallesSISTEMAS DE NUMERACIÓN. Sistema de numeración decimal: = =8245,97
SISTEMAS DE NUMERACIÓN Un sistema de numeración es un conjunto de símbolos y reglas que permiten representar datos numéricos. La norma principal en un sistema de numeración posicional es que un mismo símbolo
Más detallesGRAMATICAS LIBRES DEL CONTEXTO
GRMTICS LIBRES DEL CONTEXTO Estas gramáticas, conocidas también como gramáticas de tipo 2 o gramáticas independientes del contexto, son las que generan los lenguajes libres o independientes del contexto.
Más detalleshttps://dac.escet.urjc.es/docencia/etc-sistemas/teoria-cuat1/tema2.pdf
1.3 Sistemas numéricos 1.3.1. Introducción Un sistema de representación numérica es un lenguaje que consiste en: Un conjunto ordenado de símbolos (dígitos o cifras) y otro de reglas bien definidas para
Más detallesAPLICACIÓN DE ÁRBOLES BINARIOS
PRÁCTICA Nº 6: 2 sesiones (del 22 al 31 de Mayo de 2002) APLICACIÓN DE ÁRBOLES BINARIOS A LA COMPRESIÓN DE FICHEROS DE TEXTO MEDIANTE LA UTILIZACIÓN DE LOS CÓDIGOS DE HUFFMAN 0.- OBJETIVOS El objetivo
Más detallesEcuaciones Lineales en Dos Variables
Ecuaciones Lineales en Dos Variables Una ecuación lineal en dos variables tiene la forma general a + b + c = 0; donde a, b, c representan números reales las tres no pueden ser iguales a cero a la misma
Más detallesDivisores Binarios. D = d *Q + R. con la condición de que el resto sea menor que el divisor, es decir 0 R d.
Divisores Binarios. La operación de división es algo más compleja que la multiplicación, pero también se realiza en la mayoría de computadores mediante un circuito sumador/restador y algún algoritmo adecuado.
Más detallesSISTEMAS DE NUMERACION
SISTEMAS DE NUMERACION INTRODUCCION El número de dígitos de un sistema de numeración es igual a la base del sistema. Sistema Base Dígitos del sistema Binario 2 0,1 Octal 8 0,1,2,3,4,5,6,7 Decimal 10 0,1,2,3,4,5,6,7,8,9
Más detalles5 centenas + 2 decenas + 8 unidades, es decir: = 528
Sistemas de numeración Un sistema de numeración es un conjunto de símbolos y reglas que permiten representar datos numéricos. Los sistemas de numeración actuales son sistemas posicionales, que se caracterizan
Más detallesCentro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Arquitectura de Ordenadores Tutor: Antonio Rivero Cuesta Unidad Didáctica 1 Representación de la Información y Funciones Lógicas Tema 1 Representación de la Información
Más detallesSistemas Numéricos y Códigos Binarios
Sistemas Numéricos y Códigos Binarios Marcelo Guarini Departamento de Ingeniería Eléctrica, 5 de Abril, 5 Sistemas Numéricos en Cualquier Base En el sistema decimal, cualquier número puede representarse
Más detallesOPERACIONES CON POLINOMIOS
4. 1 UNIDAD 4 OPERACIONES CON POLINOMIOS Objetivo general. Al terminar esta Unidad resolverás ejercicios y problemas en los que apliques las operaciones de suma, resta, multiplicación y división de polinomios.
Más detallesUniversidad Tecnológica Nacional Facultad Regional Tucumán Ingeniería Electrónica Asignatura: Informática I 1R2 Trabajo Práctico N 1 - Año 2015
Numeración Binaria, Hexadecimal y Octal 1.- Introducción a los números binarios, hexadecimal y octal: El sistema de numeración binario y los códigos digitales son fundamentales en electrónica digital,
Más detallesTema 14: Sistemas Secuenciales
Tema 14: Sistemas Secuenciales Objetivos: (CONTADORES) Introducción. Características de los contadores. Contadores Asíncronos. Contadores Síncronos. 1 INTRODUCCIÓN Los contadores son sistemas secuenciales
Más detallesSISTEMAS DE ECUACIONES LINEALES Y MATRICES Dos ecuaciones lineales con dos
de SISTEMAS DE ECUACIONES ES Y MATRICES Dos m con n Sergio Stive Solano 1 Febrero de 2015 1 Visita http://sergiosolanosabie.wikispaces.com de SISTEMAS DE ECUACIONES ES Y MATRICES Dos m con n Sergio Stive
Más detallesPROCESADORES DE LENGUAJE. Hoja de ejercicios de FLEX
PROCESADORES DE LENGUAJE Ingeniería Informática Especialidad de Computación Tercer curso Segundo cuatrimestre Departamento de Informática y Análisis Numérico Escuela Politécnica Superior de Córdoba Universidad
Más detallesMatemáticas Básicas para Computación
Matemáticas Básicas para Computación MATEMÁTICAS BÁSICAS PARA COMPUTACIÓN 1 Sesión No. 7 Nombre: Compuertas Lógicas Objetivo Al término de la sesión el participante aplicará los conceptos de compuertas
Más detallesTipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos
Algoritmos y Estructuras de Datos I 1 cuatrimestre de 009 Departamento de Computación - FCEyN - UBA Programación funcional - clase Tipos algebraicos Tipos algebraicos y abstractos ya vimos los tipos básicos
Más detallesMULTIPLICACIÓN DE NÚMEROS NATURALES
MULTIPLICACIÓN DE NÚMEROS NATURALES La solución de una adición donde los sumandos son iguales, es decir, que se repiten, se puede obtener de una forma directa y sencilla. Por ejemplo: Al calcular la cantidad
Más detallesMétodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo
TEMA 2: CONCEPTOS BÁSICOS DE ALGORÍTMICA 1. Definición de Algoritmo 1.1. Propiedades de los Algoritmos 2. Qué es un Programa? 2.1. Cómo se construye un Programa 3. Definición y uso de herramientas para
Más detalles5.2. Sistemas de codificación en binario
5.2. Sistemas de codificación en binario 5.2.1. Sistemas numéricos posicionales [ Wakerly 2.1 pág. 26] 5.2.2. Números octales y hexadecimales [ Wakerly 2.2 pág. 27] 5.2.3. Conversión general de sistemas
Más detallesFormato para prácticas de laboratorio
PLAN DE CLAVE CARRERA NOMBRE DE LA ASIGNATURA ESTUDIO ASIGNATURA LSC 2009-2 11290 Introducción a la Programación PRÁCTICA No. 2 LABORATORIO DE NOMBRE DE LA PRÁCTICA Licenciado en Sistemas Computacionales
Más detalles(d) Puede haber estrategias que funcionan mejor que Minimax si el contrincante es
Universidad Rey Juan Carlos Curso 2014 2015 Hoja de Problemas Tema 5 1. Cuáles de las siguientes afirmaciones acerca del algoritmo Minimax son ciertas (a) El algoritmo Minimax realiza una exploración primero
Más detallesTema 2 Introducción a la Programación en C.
Tema 2 Introducción a la Programación en C. Contenidos 1. Conceptos Básicos 1.1 Definiciones. 1.2 El Proceso de Desarrollo de Software. 2. Lenguajes de Programación. 2.1 Definición y Tipos de Lenguajes
Más detallesEIE SISTEMAS DIGITALES Tema 8: Circuitos Secuenciales (Síntesis) Nombre del curso: Sistemas Digitales Nombre del docente: Héctor Vargas
EIE 446 - SISTEMAS DIGITALES Tema 8: Circuitos Secuenciales (Síntesis) Nombre del curso: Sistemas Digitales Nombre del docente: Héctor Vargas OBJETIVOS DE LA UNIDAD Entender el concepto de Máquina de estados
Más detallesComputación I Sistemas de Numeración. Curso 2015 Facultad de Ingeniería Universidad de la República
Computación I Sistemas de Numeración Curso 2015 Facultad de Ingeniería Universidad de la República Definición Conjunto de símbolos y reglas sobre ellos, que se utilizan para la representación de cantidades.
Más detallesDefinición. Vista general.
L M G E / 2012 Profesor Federico Olarte Código ASCII Definición. ASCII (del inglés de American Standard Code for Information Interchange - Código Estándar Estadounidense para el Intercambio de Información),
Más detallesTÉCNICAS DIGITALES SISTEMAS NUMÉRICOS
Universidad Nacional de Quilmes Diplomatura en Ciencia y Tecnología TÉCNICAS DIGITALES Los sistemas numéricos. SISTEMAS NUMÉRICOS La necesidad de contar objetos llevó a distintas culturas a simbolizar
Más detallesESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES I CAPÍTULO III ARITMÉTICA Y CODIFICACIÓN
ESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES I CAPÍTULO III ARITMÉTICA Y CODIFICACIÓN TEMA 3. Aritmética y codificación 3.1 Aritmética binaria 3.2 Formatos de los números y su representación 3.3 Definiciones
Más detallesGuía práctica de estudio 06: Lenguaje binario
Guía práctica de estudio 06: Lenguaje binario Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Guía práctica de estudio 06: Lenguaje binario
Más detallesMODELOS DE COMPUTACION I Preguntas Tipo Test. 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular.
MODELOS DE COMPUTACION I Preguntas Tipo Test Indicar si son verdaderas o falsas las siguientes afirmaciones: 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular. 2.
Más detallesAlgoritmos. Medios de expresión de un algoritmo. Diagrama de flujo
Algoritmos En general, no hay una definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten
Más detallesm=0 La ecuación de una recta se puede obtener a partir de dos puntos por los que pase la recta: y y1 = m(x x1)
Recta Una propiedad importante de la recta es su pendiente. Para determinar este coeficiente m en una recta que no sea vertical, basta tener dos puntos (, y) & (, y) que estén sobre la recta, la pendiente
Más detallesGuía práctica de estudio 06: Lenguaje binario
Guía práctica de estudio 06: Lenguaje binario Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Guía práctica de estudio 06: Lenguaje binario
Más detalles(e) Con la poda alfa-beta se eliminan nodos que nunca serán alcanzados
Universidad Rey Juan Carlos Curso 2014 2015 Hoja de Problemas Tema 5 1. Cuáles de las siguientes afirmaciones acerca del algoritmo Minimax son ciertas (a) El algoritmo Minimax realiza una exploración primero
Más detallesMatemáticaDiscreta&Lógica 1
MatemáticaDiscreta&Lógica 1 Sistemas de numeración Aylen Ricca Tecnólogo en Informática San José 2014 http://www.fing.edu.uy/tecnoinf/sanjose/index.html SISTEMAS DE NUMERACIÓN.::. Introducción. Podemos
Más detalles1.1. Los números reales
1.1. Los números reales El conjunto de los números reales está compuesto por todos los números racionales (Q) y todos los irracionales (I). Sin olvidar que los números racionales incluyen a los naturales
Más detallesUNIDAD DE APRENDIZAJE I
UNIDAD DE APRENDIZAJE I Saberes procedimentales Interpreta y utiliza correctamente el lenguaje simbólico para el manejo de expresiones algebraicas. 2. Identifica operaciones básicas con expresiones algebraicas.
Más detallesUNIVERSIDAD MAYOR DE SAN SIMÓN FACULTAD DE CIENCIAS Y TECNOLOGÍA INGENIERÍA DE SISTEMAS BÚSQUEDA PRIMERO EL MEJOR
UNIVERSIDAD MAYOR DE SAN SIMÓN FACULTAD DE CIENCIAS Y TECNOLOGÍA INGENIERÍA DE SISTEMAS BÚSQUEDA PRIMERO EL MEJOR INTEGRANTES: Caricari Cala Aquilardo Villarroel Fernandez Fructuoso DOCENTE: Lic. Garcia
Más detallesÁrboles. Un grafo no dirigido es un árbol si y sólo si existe una ruta unica simple entre cualquiera dos de sus vértices.
ÁRBOLES Árboles Un grafo conectado que no contiene circuitos simples. Utilizados desde 1857, por el matemático Ingles Arthur Cayley para contar ciertos tipos de componentes químicos. Un árbol es un grafo
Más detallesInstituto Tecnológico de Celaya
CADENAS DE CARACTERES Hasta ahora se han manejado variables de tipo caracter cuyo valor es un sólo caracter. En algunos casos, sin embargo, es necesario usar variables cuyos valores sean un conjunto (cadena)
Más detallesIntroducción a los códigos compresores
Introducción a los códigos compresores Parte I de la Lección 2, Compresores sin pérdidas, de CTI Ramiro Moreno Chiral Dpt. Matemàtica (UdL) Febrero de 2010 Ramiro Moreno (Matemàtica, UdL) Introducción
Más detallesCentro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Lógica y Estructuras Discretas Tutor: Antonio Rivero Cuesta Tema 5 Teoría de Grafos Conceptos Básicos Un grafo consta de: Grafo Un conjunto de nodos, Un conjunto de aristas
Más detallesConvertir un AFND a un AFD
Convertir un AFND a un AFD Existe una equivalencia entre los AFD y AFN, de forma que un autómata M es equivalente a un autómata M' si L(M) ) L(M'). Ejemplo: Los autómatas de la siguiente figura son equivalentes.
Más detallesFormulación del problema de la ruta más corta en programación lineal
Formulación del problema de la ruta más corta en programación lineal En esta sección se describen dos formulaciones de programación lineal para el problema de la ruta más corta. Las formulaciones son generales,
Más detallesUT01 03 Sistemas de codificación
UT01 03 Sistemas de codificación Cap 1 Introducción a los Sistemas Informáticos IES Barajas - JRGRL Tipo de software y tipos de datos Tipos de software de un SI Aplicaciones (no forman parte del SO) Datos
Más detallesFIN EDUCATIVO FIN INSTRUCTIVO
FIN EDUCATIVO Todos somos números en las Matemáticas de la vida, con valores: absolutos, relativos, positivos y negativos. Los primeros representan a nuestras cualidades y virtudes ; los segundos a los
Más detallesCapítulo 4 Exploración del ambiente.
Capítulo 4 Exploración del ambiente. Para explorar el ambiente se tomó como base el vehículo explorador de Braitenberg, la idea es tomar este comportamiento y adaptarlo al uso de una cámara de video, esto
Más detallesDepartamento de Matemáticas, CCIR/ITESM. 9 de febrero de 2011
Factorización LU Departamento de Matemáticas, CCIR/ITESM 9 de febrero de 2011 Índice 26.1. Introducción............................................... 1 26.2. Factorización LU............................................
Más detallesFUNDAMENTOS DEL ÁLGEBRA. Folleto De Trabajo Para La Clase ECUACIONES LINEALES EN DOS VARIABLES
FUNDAMENTOS DEL ÁLGEBRA Folleto De Trabajo Para La Clase ECUACIONES LINEALES EN DOS VARIABLES NOMBRE ID SECCIÓN SALÓN Prof. Eveln Dávila Contenido TEMA: Ecuaciones Lineales En Dos Variables... Solución
Más detallesUnidad 5: Vincular libros de Excel
Unidad 5: Vincular libros de Excel 5.0 Introducción Las hojas de cálculo están formadas por millones de celdas. Estas celdas pueden ser vinculadas (o conectadas en terminología de Excel 2007) en un solo
Más detallesUnidad 2: Ecuaciones, inecuaciones y sistemas.
Unidad 2: Ecuaciones, inecuaciones y sistemas 1 Unidad 2: Ecuaciones, inecuaciones y sistemas. 1.- Factorización de polinomios. M. C. D y m.c.m de polinomios. Un número a es raíz de un polinomio es 0.
Más detallesGuía práctica de estudio 05: Diagramas de flujo
Guía práctica de estudio 05: Diagramas de flujo Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Guía práctica de estudio 05: Diagramas de
Más detallesESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF
ESCUELA POLITÉCNICA SUPERIOR GRADO EN DISEÑO IND. INFORMÁTICA CURSO 2012-13 PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF HASTA AHORA... En prácticas anteriores se ha aprendido: La estructura principal de un
Más detalles2. SEÑALES Y SISTEMAS DISCRETOS EN EL TIEMPO. Una señal puede ser definida como una portadora física de información. Por ejemplo,
2. SEÑALES Y SISTEMAS DISCRETOS EN EL TIEMPO Una señal puede ser definida como una portadora física de información. Por ejemplo, las señales de audio son variaciones en la presión del aire llevando consigo
Más detallesMáximoComún Divisor y Mínimo Común Múltiplo
MáximoComún Divisor y Mínimo Común Múltiplo Universidad de Puerto Rico en Arecibo Departamento de Matemáticas Prof. Yuitza T. Humarán Martínez Prof. Carlos Molinares Adaptada por Prof. Caroline Rodríguez
Más detallesPROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07
PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07 1. En qué método de análisis sintáctico puede suceder que en la construcción del árbol de derivación de las posibles expansiones de un símbolo no terminal
Más detallesCUADRO SINÓPTICO PLANIFICACIÓN ANUAL Matemática 1 Básico
UNIDAD 1 UNIDAD 2 UNIDAD 3 UNIDAD 4 NÚMEROS HASTA 10 *Contar, reconocer, leer y escribir los números de 0 a 10. *Comparar dos conjuntos de objetos e identificar el conjunto que tiene más, menos o la misma
Más detallesRepresentación y aplicaciones de las funciones tipo
Representación y aplicaciones de las funciones tipo Actividad Interdisciplinar Córdoba, junio de 2009 1 de 10 1. Introducción En este trabajo vamos a ver la forma de representar funciones matemáticas con
Más detallesCAPÍTULO 4: VARIABLES Y RAZONES
Capítulo 4: Variables y razones CAPÍTULO 4: VARIABLES Y RAZONES Fecha: 33 2014 CPM Educational Program. All rights reserved. Core Connections en español, Curso 2 Fecha: Caja de herramientas 2014 CPM Educational
Más detallesCOMUNICACIÓN DE DATOS
DEPARTAMENTO DE CIENCIA Y TECNOLOGÍA UNIVERSIDAD NACIONAL DE QUILMES Roque Sáenz Peña 352 (B1876BXD) Bernal Buenos Aires Argentina COMUNICACIÓN DE DATOS CODIFICACIÓN DE FUENTE Un problema de interés dentro
Más detallesLEX. Las definiciones y subrutinas son opcionales. El segundo %% es opcional pero el primer %% indica el comienzo de las reglas.
LEX Estructura de un programa en LEX { definiciones { reglas { subrutinas del usuario Las definiciones y subrutinas son opcionales. El segundo es opcional pero el primer indica el comienzo de las reglas.
Más detallesIntroducción a la programación
Introducción a la programación Resolución de Problemas El objetivo principal para que las personas aprendan a programar en algún lenguaje de programación en particular es utilizar el computador como una
Más detallesLección 2: Notación exponencial
GUÍA DE MATEMÁTICAS III Lección 2: Notación exponencial En la lección anterior hemos visto cómo trabajar con números reales y cómo para facilitar el trabajo con ellos es conveniente utilizar aproximaciones,
Más detallesConceptos básicos de bases de datos
Conceptos básicos de bases de datos 1.1 Definición de base de datos Una base de datos es una colección de archivos relacionados que permite el manejo de la información de alguna compañía. Cada uno de dichos
Más detallesTEMA 2. CODIFICACIÓN DE LA INFORMACIÓN
TEMA 2. CODIFICACIÓN DE LA INFORMACIÓN 1. INTRODUCCIÓN. SISTEMAS DE NUMERACIÓN EN. Sistema binario. Sistema octal. Sistema hexadecimal. 2. REPRESENTACIÓN DE TEXTOS.. Números naturales. Números enteros.
Más detallesUna dirección IP es una secuencia de unos y ceros de 32 bits. La Figura muestra un número de 32 bits de muestra.
DIRECCIONAMIENTO IP Un computador puede estar conectado a más de una red. En este caso, se le debe asignar al sistema más de una dirección. Cada dirección identificará la conexión del computador a una
Más detallesorden 1. Prelectura 2. Lectura comprensiva 3. Notas al margen 4. Subrayado 5. Esquema 6. Resumen 7. Memorización
ESTUDIO pasoapaso Cada persona tiene que encontrar el método de estudio que más le ayude. Lo importante es estudiar con orden, pues nos permita adquirir los conocimientos de manera firme, sistemática y
Más detallesConstrucción de tablas de análisis sintáctico LL(1)
Construcción de tablas de análisis sintáctico LL(1) Universidad de Costa Rica Escuela de Ciencias de la Computación e Informática Diego Centeno Gerardo Cortés Juan Diego Alfaro Resumen. A la medida en
Más detallesColoración de grafos
Alumno: Grupo: Coloración de grafos Comencemos planteando el problema de dar color a las regiones de un mapa plano de modo que a regiones vecinas se les asigne distinto color. Este problema puede ser resuelto
Más detallesMÉTODO DE ANÁLISIS MIGUEL MARTÍNEZ VIGIL CARMEN HERNÁNDEZ CORRAL FORUM CALIDAD 86/97 67
MÉTODOS DE ANÁLISIS 0/4 MÉTODO DE ANÁLISIS DIAGRAMA CAUSA-EFECTO MIGUEL MARTÍNEZ VIGIL CARMEN HERNÁNDEZ CORRAL FORUM CALIDAD 86/97 67 1/4 3.2.1.- DEFINICIÓN. El diagrama Causa-Efecto desarrollado por ISHIKAWA
Más detallesCómo resolver? Veremos dos métodos
Cómo resolver? Veremos dos métodos 1 La primera idea que surge es tomar raíz a ambos lados de la desigualdad La idea es buena, pero hay que tener presente las reglas algebraicas Cómo resolver? Se puede
Más detallesGrafos. Amalia Duch Brown Octubre de 2007
Grafos Amalia Duch Brown Octubre de 2007 Índice 1. Definiciones Básicas Intuitivamente un grafo es un conjunto de vértices unidos por un conjunto de líneas o flechas dependiendo de si el grafo es dirigido
Más detallesVARIABLES LOCALES Y VARIABLES GLOBALES
VARIABLES LOCALES Y VARIABLES GLOBALES VARIABLES LOCALES Son copias del terminal de un control o indicador que se pueden utilizar en cualquier lugar del diagrama para leer o escribir datos a ese control
Más detalles4. NÚMEROS PSEUDOALEATORIOS.
4. NÚMEROS PSEUDOALEATORIOS. En los experimentos de simulación es necesario generar valores para las variables aleatorias representadas estas por medio de distribuciones de probabilidad. Para poder generar
Más detallesAlgoritmos y solución de problemas. Fundamentos de Programación Otoño 2008 Mtro. Luis Eduardo Pérez Bernal
Algoritmos y solución de problemas Fundamentos de Programación Otoño 2008 Mtro. Luis Eduardo Pérez Bernal Introducción Departamento de Electrónica, Sistemas e Informática En las ciencias de la computación
Más detallesTablas de dispersión (hash tables)
Tablas de dispersión (hash tables) La dispersión es una técnica empleada para realizar inserciones, eliminaciones y búsquedas en un tiempo promedio constante. La estructura de datos ideal para la tabla
Más detallesSistemas de Representación. Organización del Computador 1 Verano 2016
Sistemas de Representación Organización del Computador 1 Verano 2016 Los computadores comprenden el lenguaje de los números La organización de un computador depende (entre otros factores) del sistema de
Más detallesEl modo más sencillo de pasar estos datos a STATA es activar el STATA Data Editor e introducir los datos en la interfaz de la hoja de cálculo.
17.801 Primavera de 2002 Utilización de los comandos infile e infix de STATA STATA es un programa de gran flexibilidad que permite la lectura y manipulación de datos en diversas formas, lo que supone una
Más detallesEXPRESIONES ALGEBRAICAS EXPRESIONES ALGEBRAICAS Y POLINOMIOS
EXPRESIONES ALGEBRAICAS Trabajar en álgebra consiste en manejar relaciones numéricas en las que una o más cantidades son desconocidas. Estas cantidades se llaman VARIABLES, INCÓGNITAS o INDETERMINADAS
Más detallesMatemáticas Financieras. Sesión 3 Intereses
Matemáticas Financieras Sesión 3 Intereses Contextualización de la Sesión 3 En esta sesión iniciaremos con una nueva unidad. Comenzaremos con el interés simple, es muy importante dominar éste tema ya que
Más detallesAritmética de Enteros
Aritmética de Enteros La aritmética de los computadores difiere de la aritmética usada por nosotros. La diferencia más importante es que los computadores realizan operaciones con números cuya precisión
Más detallesUNIDAD III NÚMEROS FRACCIONARIOS
UNIDAD III NÚMEROS FRACCIONARIOS COMPETENCIAS E INDICADORES DE DESEMPEÑO Identifica los números fraccionarios y realiza operaciones con ellos. Identifica los porcentajes, decimales y fraccionarios y realiza
Más detallesEl TAD Grafo. El TAD Grafo
! Esta representación resulta útil cuando el número de vértices se conoce previamente y permanecerá fijo durante la resolución del problema, pero resulta ineficiente si necesitamos añadir o eliminar vértices
Más detallesBinary Decision Diagrams
Rodríguez Blanco 2006-05-18 Introduccion Equivalencia Tablas de verdad eficientes Construcción de Equivalencia Tablas de verdad eficientes Equivalencia de dos fórmulas A 1 y A 2. Construir su tabla de
Más detallesUNIVERSIDAD AUTONOMA DE BAJA CALIFORNIA DIRECCION GENERAL DE ASUNTOS ACADEMICOS PROGRAMA DE ASIGNATURA
UNIVERSIDAD AUTONOMA DE BAJA CALIFORNIA DIRECCION GENERAL DE ASUNTOS ACADEMICOS PROGRAMA DE ASIGNATURA I. DATOS DE IDENTIFICACION 1. Unidad Académica: Facultad de Ciencias 2. Programa (s) de estudio: Licenciatura
Más detallesMANUAL DEL USUARIO BALANZA ELECTRÓNICA PROGRAMABLE MX8F MIXER VERSION C-1.7
MANUAL DEL USUARIO BALANZA ELECTRÓNICA PROGRAMABLE MX8F MIXER VERSION C-1.7 BÁSCULAS MAGRIS - J. B. JUSTO 957 - (6100) RUFINO - SANTA FE T.E. (03382) 429043 INDUSTRIA ARGENTINA NOTA MUY IMPORTANTE: ANTES
Más detallesFACTORIZACIÓN DE POLINOMIOS en Q (racionales)
FACTORIZACIÓN DE OLINOMIOS en Q racionales FAQ Qué es factorizar un polinomio? Es expresarlo como un producto por eso lo de "factorizar" de otros polinomios de grado igual o menor a él ara qué factorizar
Más detallesCAPÍTULO 4 TÉCNICA PERT
54 CAPÍTULO 4 TÉCNICA PERT Como ya se mencionó en capítulos anteriores, la técnica CPM considera las duraciones de las actividades como determinísticas, esto es, hay el supuesto de que se realizarán con
Más detallesLaboratorio 02: Ejercicios de programación en C
olicitado: Ejercicios 02: Soluciones estructuradas en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo
Más detallesTema 2. Sistemas de representación de la información
Tema 2. Sistemas de representación de la información Soluciones a los problemas impares Estructura de Computadores I. T. Informática de Gestión / Sistemas Curso 2008-2009 Tema 2: Hoja: 2 / 36 Tema 2: Hoja:
Más detallesTEMA II: SISTEMAS DE NUMERACIÓN
2012 UNAN LEÓN Departamento de Computación Autor: Ing: Karina Esquivel Alvarado. Asignatura: FUNDAMENTOS DE INFORMÁTICA TEMA II: SISTEMAS DE NUMERACIÓN 2.1 INTRODUCCIÓN: TEMA 2: SISTEMAS DE NUMERACIÓN
Más detallesLección 5: Ecuaciones con números naturales
GUÍA DE MATEMÁTICAS I Lección 5: Ecuaciones con números naturales Observe la siguiente tabla y diga cuáles son los números que faltan. 1 2 3 4 5 6 7 8 9 10 11 12 3 6 9 12 Es sencillo encontrar la regla
Más detallesSistemas de Interconexión entre Redes LAN
Los puentes Sistemas de Interconexión entre Redes LAN Generalidades Los puentes (bridges) operan en la capa de enlace de datos Sólo se usan las direcciones del nivel 2 de OSI En caso de redes IEEE 802.x,
Más detallesFunción lineal Ecuación de la recta
Función lineal Ecuación de la recta Función constante Una función constante toma siempre el mismo valor. Su fórmula tiene la forma f()=c donde c es un número dado. El valor de f() en este caso no depende
Más detallesTUTORIAL SOBRE HOJAS DE CALCULO
TUTORIAL SOBRE HOJAS DE CALCULO Octubre de 2007 Página 1 de 12 Tabla de contenido Hojas de Cálculo...3 Software a utilizar y entorno de trabajo...3 Crear una hoja de cálculo...3 Características de las
Más detalles