German Flórez Larrahondo Miguel Eduardo Torres Moreno

Tamaño: px
Comenzar la demostración a partir de la página:

Download "German Flórez Larrahondo Miguel Eduardo Torres Moreno"

Transcripción

1 SIMULADOR PARA LA CONSTRUCCIÓN DE CIRCUITOS COMBINACIONALES POR MEDIO DE ALGORITMOS GENÉTICOS CON APLICACIÓN A UN SUMADOR DE 3 BITS, ORIENTADO A DISPOSITIVOS REPROGRAMABLES German Flórez Larrahondo Miguel Eduardo Torres Moreno UNIVERSIDAD NACIONAL DE COLOMBIA FACULTAD DE INGENIERIA DEPARTAMENTO DE INGENIERIA DE SISTEMAS SANTAFE DE BOGOTA 1999

2 SIMULADOR PARA LA CONSTRUCCIÓN DE CIRCUITOS COMBINACIONALES POR MEDIO DE ALGORITMOS GENÉTICOS CON APLICACIÓN A UN SUMADOR DE 3 BITS, ORIENTADO A DISPOSITIVOS REPROGRAMABLES GERMAN FLÓREZ LARRAHONDO MIGUEL EDUARDO TORRES MORENO Tesis entregada como parte de los requisitos para optar al título de Ingeniero de Sistemas Director JORGE EDUARDO ORTIZ TRIVIÑO Ingeniero de Sistemas Codirector FABIO GONZALEZ OSORIO UNIVERSIDAD NACIONAL DE COLOMBIA FACULTAD DE INGENIERIA DEPARTAMENTO DE INGENIERIA DE SISTEMAS SANTAFE DE BOGOTA 1999

3 Calificación de aceptación Director Codirector Jurado Jurado Santafé de Bogotá, Agosto de 1999

4 COMENTARIOS

5 TABLA DE CONTENIDO INTRODUCCION 9 1. MARCO TEORICO HARDWARE EVOLUTIVO INTRODUCCIÓN EVOLUCIÓN Evolución artificial DEFINICIÓN DE HARDWARE EVOLUTIVO ARQUITECTURA DEL HARDWARE EVOLUTIVO DISEÑO EVOLUTIVO Ventajas del Diseño Evolutivo HARDWARE EVOLUTIVO: EN PERSPECTIVA INTRODUCCION A LOS ALGORITMOS GENETICOS GENERALIDADES DESCRIPCIÓN DE UN ALGORITMO GENÉTICO SIMPLE Estructuras y Datos Codificación Binaria Codificación con Caracteres y Valores Reales Estructura en Arbol Algoritmo Genético Simple General Obtención de la Primera Generación Evaluación de las Cadenas Selección de Estructuras Cruzamiento Mutación de Cadenas OTRAS CARACTERÍSTICAS Métodos de Selección Selección Proporcional a la Aptitud con Juego de Ruleta Escalización Sigma Elitismo 20

6 Selección por Clasificación Selección por Torneo Operadores Genéticos Cruce Mutación PROGRAMACION GENETICA INTRODUCCIÓN SELECCIÓN DEL LENGUAJE DE PROGRAMACIÓN Por Que LISP CARACTERÍSTICAS DE LA PROGRAMACIÓN GENÉTICA Las Estructuras que Sufren Adaptación Cierre Suficiencia Las Estructuras Iniciales La Aptitud Operaciones para la Modificación de Estructuras Reproducción Cruce (Recombinación) El Estado del Sistema Designación del Resultado Terminación Parámetros de Control FUNCIONES PREDEFINIDAS ALGORITMO DE DEJOUNG CIRCUITOS LOGICOS COMBINATORIOS DEFINICIÓN LÓGICA BINARIA Adición Lógica Multiplicación Lógica Inversión Lógica OTRAS COMPUERTAS LÓGICAS Compuerta Or Exclusiva Compuerta Nand Compuerta Nor Importancia de las Compuertas Nand y Nor DISEÑO ANALÍTICO DE CIRCUITOS LÓGICOS COMBINATORIOS 45 2

7 Simplificación de Funciones Mapas De Karnaugh Teoremas de Boole y Morgan EJEMPLOS Sumadores Sumador Medio Sumador Total Sustractores Sustractor Medio Sustractor Completo Relación Entre Sumadores y Sustractores Generación y Comprobación de Paridad Decodificadores LENGUAJE VHDL INTRODUCCIÓN A VHDL Breve Reseña Histórica Características Ventajas Desventajas MÉTODOS DE DISEÑO Diseño Estructural Diseño por Flujo de Datos Diseño de Comportamiento APROXIMACIÓN AL DISEÑO ESTRUCTURAL Definición de Bloques Entidad Tipos De Señales Arquitectura Operadores Lógicos Sentencia With-Select Componentes e Instancias FIELD PROGRAMMABLE GATE ARRAY: FPGA CONCEPTOS BÁSICOS FPGA SERIE XC Descripción Componentes Básicos 66 3

8 Bloques Lógicos Configurables Bloques de Entrada/Salida Buffers de Tres Estados Interconexiones Reconfiguración del FPGA Reconfiguración Estática Reconfiguración Dinámica Programación del FPGA Captura del Diseño Implementación del Diseño Verificación del Diseño Configuración ANALISIS Y DISEÑO DEL PROBLEMA METODOLOGIA ANALISIS DEL PROBLEMA PARA EL DESARROLLO DEL MODELO ANÁLISIS PRELIMINAR ESPECIFICACIÓN DE REQUERIMIENTOS Entradas Algoritmo de Programación Genética Salidas DISEÑO DE LA APLICACION DESCOMPOSICIÓN FUNCIONAL FLUJO DE DATOS DEFINICIÓN DE LA ESTRUCTURA LISP (ARBOLES) Y CONSIDERACIONES INICIALES DEL PROBLEMA La Raíz Las Funciones Las Terminales Ejemplo CLASES Lista Preliminar de Clases Lista Final de Clases Registro De Clases Diagrama de Colaboraciones Entre Objetos 85 4

9 DIAGRAMA DE TRANSICIÓN DE ESTADOS Descripción de las Transiciones IMPLEMENTACION HERRAMIENTAS DE DESARROLLO HERRAMIENTAS ADICIONALES GALIB Xilinx Foundation Software RANDOMLIB MODULO TABLAS DE VERDAD Especificación de Requerimientos Clases Lista Preliminar de Clases Lista Final de Clases Registro de Clases Diagrama de Colaboraciones Entre Objetos DIAGRAMA DE TRANSICIÓN DE ESTADOS Descripción de las Transiciones PRUEBAS Y RESULTADOS SUMADOR COMPLETO DE 3 BITS EJEMPLO RESULTANTE CON LA TODAS LAS FUNCIONES BÁSICAS EJEMPLO RESULTANTE SIN EL USO DE LA COMPUERTA XOR RESULTADOS CON FUNCIONES DEFINIDAS POR EL USUARIO Ejemplo Resultante Con Funciones de Usuario MULTIPLEXOR DE 2 ENTRADAS DE DOS BITS EJEMPLO RESULTANTE EJEMPLO CON FUNCIONES DE USUARIO 107 LOGROS 115 CONCLUSIONES Y RECOMENDACIONES 117 BIBLIOGRAFIA 118 5

10 MANUAL DEL USUARIO 120 HOJA TECNICA 129 ANEXOS 130 ANEXO A. METODOLOGIA DE ANALISIS Y DISEÑO 130 ANEXO B. GALIB 133 ANEXO C. XILINX FOUNDATION F

11 INDICE DE ILUSTRACIONES Figura 1 La S-expresión LISP (+ 1 2 (IF (> TIEMPO 10) 3 4)) dibujada como un árbol con los nodos rotulados y las ramas ordenadas[3] Figura 2 Arbol LISP correspondiente a la S-expresión (OR (AND(NOT D0) (NOT D1)) (AND D0 D1))...28 Figura 3 La generación de un árbol aleatorio podría empezar con etiquetar la raíz del árbol con la función Figura 4 La generación de un árbol aleatorio podría continuar con etiquetar un punto interior con la función * Figura 5 La generación de un árbol aleatorio podría continuar con etiquetar un punto externo con la terminal A..31 Figura 6 Dos S-expresiones LISP Figura 7 Dos fragmentos seleccionados para cruce de los padres de la Figura Figura 8 Descendencia producida por el operador de cruce que usa a los padres de Figura 6 y los fragmentos de cruce de la figura Figura 9 Esquema de un circuito lógico combinacional...39 Figura 10 Esquema de un circuito lógico secuencial...39 Figura 11 Compuerta OR...41 Figura 12 Compuerta AND...41 Figura 13 Negador...42 Figura 14 Compuerta XOR Figura 15 Compuerta NAND Figura 16 Compuerta NOR...44 Figura 17 Equivalencias para diferentes compuertas...45 Figura 18 Esquema lógico de un sumador de tres bits usando Sumadores Totales...49 Figura 19 Estructura de un CPLD...64 Figura 20 Estructura de un FPGA...66 Figura 21 Estructura de un Bloque Lógico...67 Figura 22 Estructura de un Bloque E-S Figura 23 Captura del diseño en FOUNDATION de XILINX Figura 24 código XNF de un diseño capturado en FOUNDATION SERIES de Xilinx...71 Figura 25 Diagrama de Flujo de datos de la Aplicación...73 Figura 26 Diagrama de Representación Funcional de la Aplicación...74 Figura 27 Descomposición por módulos de la aplicación Figura 28 Representación lógica y de árbol de un circuito sumador completo de 2 bits, cuya representación LISP corresponde a: CONCAT((XOR(A B))(AND(A B)))...77 Figura 29 Diagrama de Colaboraciones Entre Objetos Figura 30 Diagrama de Transición de Estados Figura 31 Colaboraciones entre objetos del módulo Editor de tablas...91 Figura 32 Diagrama de Transición de Estados

12 INDICE DE TABLAS Tabla 1 Combinaciones Posibles...39 Tabla 2 Valores Booleanos...40 Tabla 3 Tabla de verdad de la adición lógica...40 Tabla 4 Tabla de verdad de la multiplicación lógica...41 Tabla 5 Tabla de verdad de la inversión lógica...42 Tabla 6 Tabla de verdad de la compuerta XOR...43 Tabla 7 Tabla de verdad de la compuerta NAND...43 Tabla 8 Tabla de verdad de la compuerta NOR...44 Tabla 9 Ejemplo de un Mapa de Karnaugh...46 Tabla 10 Ejemplo de tabla de verdad...47 Tabla 11 Mapa de Karnaugh para el ejemplo de tabla de verdad...47 Tabla 12 Teoremas de Boole y Morgan...48 Tabla 13 Tabla de verdad del sumador medio...48 Tabla 14 Tabla de verdad del sumador total...49 Tabla 15 Tabla de verdad del sustractor medio...50 Tabla 16 Tabla de verdad del sustractor completo...50 Tabla 17 Tabla de verdad del generador de paridad impar...51 Tabla 18 Tabla de verdad del operador de equivalencia...52 Tabla 19 Tabla de verdad del circuito de comprobación de paridad impar...52 Tabla 20 Tabla de verdad de un circuito decodificador de línea de 2 a Tabla 21 Elementos básicos de la declaración de una entidad...58 Tabla 22 Valores del tipo STD_LOGIC...58 Tabla 23 Elementos básicos de la declaración de una arquitectura...59 Tabla 24 Comportamiento del circuito circuito_sumador...61 Tabla 25 Lista preliminar de clases...78 Tabla 26 Lista preliminar de clases...88 Tabla 27 Tabla de verdad del sumador completo de 3 bits...93 Tabla 28 Resuman del comportamiento para el sumador de 3 bits...95 Tabla 29 Resumen del comportamiento sin utilizar la función XOR...96 Tabla 30 Resumen del comportamiento utilizando funciones de usuario Tabla 31 Resumen del comportamiento para el multiplexor de 2 entradas

13 INTRODUCCION Actualmente muchos problemas en aprendizaje de máquinas, inteligencia artificial, y procesamiento simbólico pueden resolverse con una búsqueda en el espacio de programas, para encontrar la solución que más se ajuste a las necesidades planteadas por el problema. Es entonces cuando aparece la programación genética, método que brinda una forma eficiente para realizar esta búsqueda y obtener una solución (aproximada) al problema dado, por medio de la coexistencia de una población de individuos (programas) interactuando entre sí por el principio Darviniano de la supervivencia del individuo más apto. De ella misma surge entonces el Hardware Evolutivo, proceso de adaptación mediante el cual se manipula la arquitectura de estructuras Hardware (en este caso particular se manipulan estructuras software que representan una estructura hardware) por medio de la interacción con el ambiente. En el caso particular de esta investigación el problema planteado consiste en buscar por medio de la programación genética la generación de un programa VHDL (Very High Speed Integrated Circuits Hardware Description Lenguage, que significa, Lenguaje de Descripción de Hardware para Circuitos Integrados de Alta Velocidad), que contenga el comportamiento de un circuito lógico combinatorio, buscado por el usuario. SimEHDL es uno de los primeros trabajos realizados en la Universidad Nacional de Colombia, que aplica los conceptos de programación genética orientada hacia el naciente campo del Hardware Evolutivo, el cual pretende demostrar la factibilidad de desarrollo de este tipo de aplicaciones, así como su utilidad en diferentes áreas. En el primer capítulo se exponen las bases teóricas que soportaron el desarrollo del proyecto. Comprende la descripción y funcionamiento un algoritmo genético y su especialización en la programación genética, conceptos básicos sobre circuitos lógicos combinatorios, lenguaje VHDL, y dispositivos reprogramables FPGA. En el segundo capítulo se describe el proceso de análisis, diseño e implementación del simulador, el cual fue llevado a cabo siguiendo las etapas descritas por la metodología tradicional del ciclo de vida del software, además se enumeran las herramientas utilizadas durante el proceso de implementación. En el último capítulo se describen pruebas realizadas al simulador con diferentes circuitos combinatorios y sus resultados. En la parte final de este capítulo se detallan las conclusiones y logros obtenidos luego de la elaboración de la presente investigación. 9

14 1. MARCO TEORICO 1.1. HARDWARE EVOLUTIVO Introducción Los organismos vivientes son sistemas complejos que exhiben un rango de características especiales tales como evolución, adaptación, y tolerancia a los fallos. Dichos rasgos han mostrado ser de difícil comprensión usando metodologías de ingeniería tradicionales. Sin embargo, desde hace algún tiempo se ha introducido en la ingeniería un conjunto de conceptos basados en procesos de seres vivos, tales como las redes neuronales y la evolución de individuos. Estos sistemas que evolucionan se caracterizan por un programa genético (genoma), que define el desarrollo del ser o individuo, su funcionamiento y extinción Evolución La evolución es un proceso incesante en el que entidades biológicas se adaptan en un entorno variable. Es un procedimiento que ocurre gradualmente tras centenares de miles de generaciones para crear especies que se adaptan específicamente al ambiente en cualquier momento en particular. Para explicar la evolución, se deben estudiar algunos aspectos biológicos simples. Cada ser viviente en la tierra posee una cadena de ADN que le identifica(genotipo). El genotipo describe de una manera compleja (a través del uso de interacciones químicas) cómo construir una entidad biológica específica (fenotipo), por ejemplo un ser humano. Cuando dos fenotipos se reproducen para crear descendencia, el ADN de los dos padres es mezclado para crear una nueva cadena de ADN. La multiplicación de los organismos vivientes se basa en la reproducción del programa(adn), sujeto a una proporción de error sumamente baja a nivel individual, para asegurar que la identidad de la descendencia permanezca prácticamente inalterada. La mutación (reproducción asexual) junto con la recombinación (reproducción sexual) da lugar a la emergencia de nuevos organismos. Los mecanismos de la filogenética (evolución de las especies) son fundamentalmente no-deterministicos, la rata de mutación y la proporción de recombinación brindan una fuente mayor de diversidad. Esta diversidad es indispensable para la supervivencia de las especies vivientes, para su adaptación continua a un ambiente cambiante, y para la aparición de nuevas especies. 10

15 Así se tiene que la filogénesis (Evolución) es la que mejor describe lo que se conoce como Hardware Evolutivo, siendo este referenciado intuitivamente como evolución artificial, lo que a su vez nos lleva a los algoritmos genéticos, programación evolutiva, etc. Inicialmente es necesario crear una medida de aptitud para cada individuo: Un individuo nacerá sin defectos, vivirá hasta la edad de reproducción y se reproducirá con un individuo semejantemente. Los genes en el ADN describen a un individuo apto o no (los aptos y no aptos son evaluados de acuerdo a nuestra medida). Si un gen es apto se le permite al individuo reproducirse más a menudo que otros individuos, este gen será mas útil y podrá ser llevado a una próxima generación. Si un gen es malo se elimina el individuo antes que este puede reproducirse, dicho gen no continuará en la próxima generación. Así es como ocurre la evolución ciertos genes nos permiten vivir y por consiguiente aumentar las oportunidades de reproducción. Así los genes avanzan a través de las generaciones logrando solo la supervivencia de los mejores o más aptos Evolución artificial La Evolución artificial es el proceso de aplicar la evolución a sistemas artificiales. La base de estos sistemas es la creación artificial de ADN y un método para combinarlo. El trabajo que debe hacerse es la traducción del genotipo al fenotipo y la medición de la aptitud de este último dentro del ambiente. Un primer método fue descrito por J. Holland en su libro, "La Adaptación en sistemas naturales y artificiales", y se le llamó Algoritmos Genéticos Definición de Hardware Evolutivo Hardware Evolutivo (Evolvable Hardware, conocido con las siglas EHW) es la aplicación de estrategias biológicas sobre dispositivos electrónicos. La idea llegó después que un desarrollador de algoritmos genéticos hablo sobre la existencia de dispositivos electrónicos los cuales tienen la capacidad de ser programados usando cadenas binarias. Esta idea dio pie a la investigación específica en dos áreas diferentes: EHW Extrínseco Un algoritmo evolutivo crea una configuración para el hardware cuya aptitud se efectúa sobre una simulación del Hardware EHW Intrínseco La aptitud del individuo es evaluada transmitiendo la configuración al hardware y evaluando el sistema in-situ. En el EHW, la adaptación equivale a la modificación directa de las estructuras del hardware acorde a las influencias recibidas del entorno. Esto brinda ventajas como la adaptación en tiempo real, la flexibilidad y tolerancia a fallos. 11

16 Se han visto progresos significativos en investigación sobre hardware basado en maquinas como Perceptrón, WISARD, y ALNs (redes lógicas adaptativas). El hardware evolutivo, sin embargo, a estado limitado, en el sentido que en la mayoría de experimentos realizados hasta ahora la adaptación que se lleva a cabo es off-line o extrínseca. Sin embargo, las máquinas adaptativas ideales deben poder cambiar su estructura física mientras son usadas en tiempo real (es decir con adaptación on-line o intrínseca). Con tal adaptación, se pueden evitar funcionamientos defectuosos del hardware en sistemas de computación usados en circunstancias extraordinarias como en el espacio y el fondo del mar. La distinción más clara entre el hardware convencional (CHW) y EHW radica en que el diseño de CHW no puede iniciar hasta que se den las característica técnicas del hardware al diseñador. Por otro lado, el EHW puede usarse en situaciones donde nadie sabe la especificación del hardware deseada previamente. El EHW puede reconfigurar su estructura a través de aprendizaje genético Arquitectura del Hardware evolutivo El proceso de adaptación es una combinación de aprendizaje genético con aprendizaje reforzado. A continuación se define el procesamiento de arquitecturas paralelas para Hardware evolutivo. Se denomina hardware reconfigurable al sistema que puede definir su comportamiento de acuerdo a una configuración dada externamente (realmente un conjunto de bits). Dicha configuración es capaz de alterar físicamente el dispositivo lógico y puede cambiarse varias veces. Entonces, al utilizar sistemas reconfigurables, el proceso evolutivo puede llevarse a cabo en la cadena de bits que es capaz de determinar el comportamiento del circuito. Incorporando ambos, aprendizaje reforzado y aprendizaje genético, el EHW puede seleccionar por si mismo la arquitectura lógica del dispositivo que da mayor rendimiento con respecto a su entorno. El esquema de aprendizaje genético es paralelo a los algoritmos genéticos. Los GAs operan sobre una población de cadenas de bits cada una de las cuales determina la arquitectura del dispositivo reprogramable. Los GAs pueden obtener la mejor cadena de bits (individuo) una alta posibilidad de sobrevivir y recombinarse. De esta forma se llega a una nueva generación de individuos que incorporan algunas características de sus antecesores. Esta nueva generación es entonces alimentada al dispositivo el cual presentará un nuevo comportamiento. Su rendimiento es evaluado y el proceso se repite nuevamente. El aprendizaje por refuerzo es el segundo esquema de aprendizaje incorporado el EHW. Las entradas son cambiadas basándose en la retribución a continuación de la respuesta que exhibe el sistema (retroalimentación). Esta retribución es relacionada a la calidad de la respuesta y podría tardarse. La finalidad es maximizar o minimizar una retribución negativa. No hay ningún maestro o supervisor involucrado en este esquema de aprendizaje 12

17 Diseño Evolutivo Para el caso en el cual el EHW es aplicado como alternativa para el diseño de circuitos se presentan dos faces: 1. Diseño Evolutivo: Proceso en el cual por medio de técnicas evolutivas, se busca una arquitectura que represente un circuito determinado. 2. Ejecución: Consiste en la implementación física de la arquitectura encontrada. De lo anterior se desprende entonces una clasificación dependiente de la representación del cromosoma [1]: 1. Representación Directa: El cromosoma configura una arquitectura en bits de diferentes componentes hardware o de compuertas lógicas. 2. Representación Indirecta: El cromosoma es una representación de un lenguaje de alto nivel en forma de árboles gramaticales, los cuales son usados para generar los circuitos Ventajas del Diseño Evolutivo En esencia la aproximación convencional especifica como diseñar e implementar un circuito, mientras la aproximación evolutiva busca definir solamente el comportamiento del circuito. Las ventajas del método evolutivo, respecto al convencional son: Evalúa un mayor rango de alternativas de aquellas consideradas por el ser humano. El diseño evolutivo no asume conocimiento anterior de cualquier dominio en particular. Puede ser aplicado por cualquier usuario sin tener que referirse a un dominio determinado. La aproximación evolutiva puede trabajar con diferentes grados de restricción y requerimientos. Si existe cualquier conocimiento anterior este puede ser aplicado para mejorar la eficiencia del diseño. Es importante notar que los experimentos de EHW conducidos hasta el momento han sido a pequeña escala (es decir, que el EHW es pequeño en componentes en comparación a los circuitos diseñados por el método tradicional), y aun con esa pequeña cantidad de elementos, se ha experimentado el alto costo computacional del EHW Hardware Evolutivo: En Perspectiva Si se observara hacia el futuro, el desarrollo del EHW sería de la siguiente forma: 13

18 Inicialmente se tiene lo que es en esencia el diseño evolutivo, donde todas las operaciones se llevan a cabo en software, con la posibilidad de cargar la solución en un circuito real. Seguidamente, se encuentran trabajos en los que un circuito real es usado durante el proceso evolutivo, y la mayoría de las operaciones se realizan extrínsecamente, en software. Por ejemplo, el calculo de la aptitud se puede realizar en el circuito. En la siguiente fase se encuentran sistemas en los que todas las operaciones genéticas (selección, cruce, mutación, y calculo de aptitud) se llevan a cabo en hardware (intrínseco). El mayor elemento perdido en esta parte se refiere al hecho de que la evolución se lleva a cabo como un sistema cerrado, es decir, hay una meta predefinida y ningún entorno dinámico del cual tomar información. La última y más importante fase es en la cual una población de entidades hardware evoluciona en un entorno abierto. Ésta última fase para muchos investigadores es considerada como el verdadero hardware evolutivo. Una aplicación natural en estos sistemas es el área de los robots autónomos, que involucra maquinas capaces de operar en entornos desconocidos sin la intervención humana INTRODUCCION A LOS ALGORITMOS GENETICOS Generalidades Fueron inventados por John Holland (1975), cuya inspiración fue el proceso evolutivo presente en la naturaleza. Así, un Algoritmo Genético es una técnica de optimización basada en la selección natural (cruce, mutación y selección natural de individuos). Un Algoritmo Genético (GA) es un procedimiento interactivo que consiste en una población de tamaño constante de individuos, cada uno representado por una cadena finita de símbolos codificando una posible solución en algún espacio del problema. Este espacio también conocido como espacio de búsqueda, comprende todas las posibles soluciones del problema a mano. El alfabeto de símbolos es generalmente binario, gracias a su generalización y a otras propiedades matemáticas. El GA estándar trabaja de la siguiente manera: Inicialmente una población de individuos es generada aleatoria o heurísticamente. En cada paso evolutivo llamado generación, los individuos en la población actual son decodificados y evaluados de acuerdo a algunos criterios predefinidos de selección, referidos como aptitud. Para formar los individuos de la siguiente generación, los individuos son seleccionados con una probabilidad proporcional a su aptitud, esto asegura que el número de veces que un individuo es seleccionado es proporcional a su actuación dentro de la población; esto significa que a mayor aptitud tenga un individuo, mayor será el chance de que este se reproduzca. La selección no puede en si introducir nuevos individuos a la población; estos son generados por medio de operadores genéticos, de los cuales los más usados son: cruce y mutación. Combinando la supervivencia de los mejores individuos dentro de un conjunto, los más aptos, con un intercambio de información estructurado y aleatorio, que imita los procesos de evolución biológica. 14

19 Los Algoritmos Genéticos son algoritmos evolutivos ya que explotan eficientemente la información histórica, permitiendo especular sobre nuevos puntos de búsqueda, dentro del espacio de soluciones, esperando un mejor comportamiento a través de su evolución. El objetivo de los Algoritmos Genéticos es doble: (1) explicar rigurosamente los procesos adaptativos de los sistemas naturales, y (2) diseñar software de sistemas artificiales, que contengan los mecanismos más importantes de los sistemas naturales. El ingeniero, diseñador de sistemas artificiales, solo puede maravillarse ante la robustez, la eficiencia, y la flexibilidad de los sistemas biológicos. Características como autoreparación, autoguía, y reproducción, son la regla de los sistemas biológicos, características de las que generalmente carecen los sistemas artificiales más sofisticados. Así se llega a una conclusión interesante: donde se requiera un comportamiento robusto, la naturaleza lo ha hecho mejor. Los secretos de la adaptación y la supervivencia se aprenden mejor del estudio cuidadoso del ejemplo biológico Descripción de un Algoritmo Genético Simple Los mecanismos de un Algoritmo Genético Simple, A.G.S., son sorprendentemente sencillos, lo más complejo que incluyen son la copia de cadenas y el intercambio parcial de cadenas. A continuación se presenta, la implementación de un A.G.S. Un Algoritmo Genético Simple, que da buenos resultados en muchos problemas prácticos, se compone de tres operadores: Selección. Cruce. Mutación. Primero se estudiará un algoritmo genérico A.G.S. para luego continuar examinando detalladamente cada uno de los operadores anteriores Estructuras y Datos Se definen los principales parámetros de un A.G.S., como son: Número de generaciones (M). Tamaño de la población (K). Estructura del cromosoma, así como lo relacionado a él como son: su decodificación (su valor), su aptitud, y el porcentaje que su aptitud aporta a la aptitud total de la población, además de su longitud en bits (L). El último punto es en especial importante pues de él depende el éxito del método, ya que la estructura de datos del cromosoma define el espacio de soluciones del problema (en la mayoría de los casos, mas no en todos, como se vera mas adelante). Desde el punto de vista de la 15

20 estructura de datos las aplicaciones más comunes trabajan con listas lineales, con excepción de la programación genética, donde se trabaja con estructuras en árbol Codificación Binaria Es la más común por razones históricas, ya que Holland concentró su trabajo en dicha configuración y en la practica, muchos desarrolladores de algoritmos genéticos han tendido a seguir este esquema. Además, mucha de la teoría existente sobre algoritmos genéticos se basa en la suposición de codificación de longitud fija y codificación binaria. Otro aspecto a considerar, es que independientemente de cualquier consideración, toda codificación es digital y binaria en la base, por ejemplo en el caso de los fonemas de un idioma, una vez digitalizados es muy sencillo aplicar los operadores genéticos Codificación con Caracteres y Valores Reales Sin embargo, para muchos problemas, la codificación binaria no es natural y no es tan ampliamente utilizada, por ejemplo en aprendizaje evolutivo de Redes Neuronales Artificiales, para la representación de los pesos, o en la solución de problemas de Programación Lineal. Para muchas aplicaciones, es más natural usar un alfabeto de muchos caracteres o de números reales, para formar cromosomas. El Teorema del Algoritmo Genético, sin embargo, parece implicar que los GAs, presentan un comportamiento inferior cuando se hace la codificación con múltiples caracteres, que con codificación binaria. Sin embargo, esto es muy cuestionable, pues varias comparaciones empíricas entre codificación binaria y codificación de muchos caracteres o de valores reales han mostrado un mejor comportamiento de estas ultimas. Pero nuevamente, el comportamiento depende mucho del problema y de los detalles del algoritmo genético que se esta usando y en este momento aún no hay una guía rigurosa para predecir que codificación trabajará mejor Estructura en Árbol La codificación en árboles, como en la Programación Genética, de John Koza, donde cada cromosoma es un programa de computador, tiene varias ventajas, como la formación de soluciones más estructuradas y jerárquicas y que permiten que el espacio de búsqueda sea completamente abierto. Sin embargo, esta apertura lleva a algunos problemas potenciales, ya que los árboles pueden crecer tanto en formas no controladas, que los árboles resultantes son muy grandes y difíciles de comprender y simplificar. Hasta ahora, la comunidad de la programación genética ha comenzado experimentos sistemáticos, que evalúan la utilidad de la codificación de árboles, comparándolos con otras codificaciones. Hasta cuando la teoría de algoritmos genéticos y su codificación, se formule de una manera más eficaz, la mejor filosofía es estudiar los ejemplos presentados en la literatura y adecuarlos a la versión particular del algoritmo genético. 16

Desarrollo de un sistema capaz de optimizar rutas de entrega utilizando algoritmos genéticos

Desarrollo de un sistema capaz de optimizar rutas de entrega utilizando algoritmos genéticos MT 6 Desarrollo de un sistema capaz de optimizar rutas de entrega utilizando algoritmos genéticos Rosario Baltazar 1 Judith Esquivel Vázquez 2 Andrea Rada 3 Claudia Díaz 4 Resumen Durante los últimos 15

Más detalles

Programación Genética

Programación Genética Programación Genética Programación Genética consiste en la evolución automática de programas usando ideas basadas en la selección natural (Darwin). No sólo se ha utilizado para generar programas, sino

Más detalles

Algoritmos Genéticos. Introduccion a la Robótica Inteligente

Algoritmos Genéticos. Introduccion a la Robótica Inteligente Algoritmos Genéticos Introduccion a la Robótica Inteligente 7 Marzo 2014 (IRIN) AGs 7/03/2014 1 / 43 Índice 1 Introducción 2 Algoritmos Genéticos 3 Algunos Fundamentos Matemáticos 4 Conclusiones (IRIN)

Más detalles

TEMA 1: INTRODUCCIÓN

TEMA 1: INTRODUCCIÓN 1 DISEÑO Y DESARROLLO DE COMPILADORES TEMA 1: INTRODUCCIÓN Qué es un Compilador? Un compilador no es más que un traductor, es decir, un programa que nos permite pasar información de un lenguaje a otro.

Más detalles

Arquitectura de Aplicaciones

Arquitectura de Aplicaciones 1 Capítulo 13: Arquitectura de aplicaciones. - Sommerville Contenidos del capítulo 13.1 Sistemas de procesamiento de datos 13.2 Sistemas de procesamiento de transacciones 13.3 Sistemas de procesamiento

Más detalles

Algoritmos genéticos como métodos de aproximación analítica y búsqueda de óptimos locales

Algoritmos genéticos como métodos de aproximación analítica y búsqueda de óptimos locales Algoritmos genéticos como métodos de aproximación analítica y búsqueda de óptimos locales Jorge Salas Chacón A03804 Rubén Jiménez Goñi A93212 Juan Camilo Carrillo Casas A91369 Marco Vinicio Artavia Quesada

Más detalles

Problemas indecidibles

Problemas indecidibles Capítulo 7 Problemas indecidibles 71 Codificación de máquinas de Turing Toda MT se puede codificar como una secuencia finita de ceros y unos En esta sección presentaremos una codificación válida para todas

Más detalles

Figura 1. Símbolo que representa una ALU. El sentido y la funcionalidad de las señales de la ALU de la Figura 1 es el siguiente:

Figura 1. Símbolo que representa una ALU. El sentido y la funcionalidad de las señales de la ALU de la Figura 1 es el siguiente: Departamento de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Antioquia Arquitectura de Computadores y Laboratorio ISI355 (2011 2) Práctica No. 1 Diseño e implementación de una unidad aritmético

Más detalles

Introducción a la Computación Evolutiva

Introducción a la Computación Evolutiva Introducción a la Computación Evolutiva Sección de Computación CINVESTAV-IPN Av. IPN No. 2508 Col. San Pedro Zacatenco México, D.F. 07300 email: ccoello@cs.cinvestav.mx http: //delta.cs.cinvestav.mx/~ccoello

Más detalles

&$3Ì78/2 $/*25,7026 (92/87,926 $9$1=$'26 3$5$ 763 6.1. INTRODUCCIÓN

&$3Ì78/2 $/*25,7026 (92/87,926 $9$1=$'26 3$5$ 763 6.1. INTRODUCCIÓN &$3Ì78/2 6.1. INTRODUCCIÓN Los primeros avances para solucionar el TSP, por medio de Algoritmos Evolutivos han sido introducidos por Goldberg y Lingle en [68] y Grefenstette en [72]. En éste área muchos

Más detalles

Algoritmos Genéticos.

Algoritmos Genéticos. Algoritmos Genéticos. Miguel Cárdenas Montes, Antonio Gómez Iglesias Centro de Investigaciones Energéticas Medioambientales y Tecnológicas, Madrid, Spain miguel.cardenas@ciemat.es 15-19 de Octubre de 2011

Más detalles

Laboratorio de Diseño de Sistemas Digitales

Laboratorio de Diseño de Sistemas Digitales Proceso de Diseño Laboratorio de Diseño de Sistemas Digitales I Semestre 2008 Ing. Gabriela Ortiz L. Diseño Implementación Depuración Diseño: Concepto inicial. Cuál es la función que lleva a cabo el objeto?

Más detalles

Introducción a los Algoritmos Genéticos. Tomás Arredondo Vidal 17/4/09

Introducción a los Algoritmos Genéticos. Tomás Arredondo Vidal 17/4/09 Introducción a los Algoritmos Genéticos Tomás Arredondo Vidal 17/4/09 Esta charla trata de lo siguiente: Introducción a algunos aspectos de los algoritmos genéticos. Introducción a algunas aplicaciones

Más detalles

CONTENIDO. 1. Introducción. 2. Reseña histórica del computador. 3. Definición de computador.

CONTENIDO. 1. Introducción. 2. Reseña histórica del computador. 3. Definición de computador. CONTENIDO 1. Introducción. 2. Reseña histórica del computador. 3. Definición de computador. 4. Sistemas numéricos. 4.1 Generalidades. 42 Sistema binario. 4.3 Sistema octal,. 4.4 Sistema decimal. 4.5 Sistema

Más detalles

construcción de programas Prof. Eliana Guzmán U.

construcción de programas Prof. Eliana Guzmán U. Unidad II. Metodología para la construcción de programas Prof. Eliana Guzmán U. Semestre: A-2015 Introducción Resolver un problema con una computadora conduce a la escritura de un programa y a su ejecución.

Más detalles

SINTESIS Y DESCRIPCIÓN DE CIRCUITOS DIGITALES UTILIZANDO VHDL ANTECEDENTES

SINTESIS Y DESCRIPCIÓN DE CIRCUITOS DIGITALES UTILIZANDO VHDL ANTECEDENTES ANTECEDENTES En los últimos diez años la industria electrónica ha tenido una gran evolución en el desarrollo de sistemas digitales; desde computadoras personales, sistemas de audio y vídeo hasta dispositivos

Más detalles

Compiladores y Lenguajes de Programación. Maria de Guadalupe Cota Ortiz

Compiladores y Lenguajes de Programación. Maria de Guadalupe Cota Ortiz Compiladores y Lenguajes de Programación Maria de Guadalupe Cota Ortiz Organizaciones que rigen las normas para estandarización de Lenguajes de Programación IEEE (Instituto de Ingenieros Eléctricos y Electrónicos)

Más detalles

Algoritmos Genéticos

Algoritmos Genéticos Introducción a la Computación Evolutiva Tercera Clase: Algoritmos Genéticos Algoritmos Genéticos Desarrollados en USA durante los años 70 Autores principales: J. Holland, K. DeJong, D. Goldberg Aplicados

Más detalles

UNIDADES DE ALMACENAMIENTO DE DATOS

UNIDADES DE ALMACENAMIENTO DE DATOS 1.2 MATÉMATICAS DE REDES 1.2.1 REPRESENTACIÓN BINARIA DE DATOS Los computadores manipulan y almacenan los datos usando interruptores electrónicos que están ENCENDIDOS o APAGADOS. Los computadores sólo

Más detalles

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA INGENIERIA EN COMUNICACIONES Y ELECTRÓNICA ACADEMIA DE COMPUTACIÓN

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA INGENIERIA EN COMUNICACIONES Y ELECTRÓNICA ACADEMIA DE COMPUTACIÓN I. P. N. ESIME Unidad Culhuacan INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA UNIDAD CULHUACAN INGENIERIA EN COMUNICACIONES Y ELECTRÓNICA ACADEMIA DE COMPUTACIÓN LABORATORIO

Más detalles

Procesadores Superescalares: Paralelismo Explícito a Nivel de Instrucción

Procesadores Superescalares: Paralelismo Explícito a Nivel de Instrucción Tema 8 Procesadores Superescalares: Paralelismo Explícito a Nivel de Instrucción IA-64 es una arquitectura de 64 bits desarrollada conjuntamente por Intel y HP (Hewlett- Packard). Está basado en una tecnología

Más detalles

Algoritmos Genéticos. Algoritmos Genéticos. Introducción a la Computación Evolutiva. Tercera Clase: Algoritmos Genéticos

Algoritmos Genéticos. Algoritmos Genéticos. Introducción a la Computación Evolutiva. Tercera Clase: Algoritmos Genéticos Introducción a la Computación Evolutiva Tercera Clase: Algoritmos Genéticos Algoritmos Genéticos Desarrollados en USA durante los años 70 Autores principales: J. Holland, K. DeJong, D. Goldberg Aplicados

Más detalles

Simulín. Qué es Simulín? Características. Simulador de circuitos digitales para uso docente. v5.60 (Julio 2014) Función lógica (expresión algebraica)

Simulín. Qué es Simulín? Características. Simulador de circuitos digitales para uso docente. v5.60 (Julio 2014) Función lógica (expresión algebraica) Folleto de presentación Simulín Simulín Simulador de circuitos digitales para uso docente v5.60 (Julio 2014) Características Circuitos Combinacionales Puertas lógicas básicas (NOT, AND, OR, XOR, NAND,

Más detalles

Procesamiento Digital de Imágenes. Pablo Roncagliolo B. Nº 22. Algoritmos Genéticos. prb@2007 2

Procesamiento Digital de Imágenes. Pablo Roncagliolo B. Nº 22. Algoritmos Genéticos. prb@2007 2 Procesamiento Digital de Imágenes Pablo Roncagliolo B. Nº 22 prb@2007 2 1 El núcleo de cada célula humana contiene una base de datos química. Esta base de datos contiene todas las instrucciones que la

Más detalles

ELECTRÓNICA DIGITAL. Sistemas analógicos y digitales.

ELECTRÓNICA DIGITAL. Sistemas analógicos y digitales. ELECTRÓNICA DIGITAL El tratamiento de la información en electrónica se puede realizar de dos formas, mediante técnicas analógicas o mediante técnicas digitales. El analógico requiere un análisis detallado

Más detalles

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática Tema 1 Introducción. Arquitectura básica y Sistemas Operativos Fundamentos de Informática Índice Descripción de un ordenador Concepto básico de Sistema Operativo Codificación de la información 2 1 Descripción

Más detalles

PROGRAMACIÓN BÁSICA DE LA COMPUTADORA. 1 Introducción. Tabla 1: Instrucciones MIPS

PROGRAMACIÓN BÁSICA DE LA COMPUTADORA. 1 Introducción. Tabla 1: Instrucciones MIPS PROGRAMACIÓN BÁSICA DE LA COMPUTADORA 1 Introducción Un sistema de computadora total incluye tanto circuitería (hardware) como programación (software). El hardware consta de los componentes físicos y todo

Más detalles

FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL PROBLEMA DE PROGRAMACIÓN DE ÓRDENES DE TRABAJO DE UNA EMPRESA DE ARTES GRÁFICAS

FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL PROBLEMA DE PROGRAMACIÓN DE ÓRDENES DE TRABAJO DE UNA EMPRESA DE ARTES GRÁFICAS FORMULACIÓN DE UN ALGORITMO GENÉTICO PARA EL PROBLEMA DE PROGRAMACIÓN DE ÓRDENES DE TRABAJO DE UNA EMPRESA DE ARTES GRÁFICAS PROYECTO DE GRADO Javier mauricio gamboa salgado Código: 544004 John alexander

Más detalles

PROCESAMIENTO DIGITAL DE IMÁGENES MEDIANTE EL USO DE UN FPGA Y LENGUAJE VHDL

PROCESAMIENTO DIGITAL DE IMÁGENES MEDIANTE EL USO DE UN FPGA Y LENGUAJE VHDL PROCESAMIENTO DIGITAL DE IMÁGENES MEDIANTE EL USO DE UN FPGA Y LENGUAJE VHDL N. E. Chávez Rodríguez*, A. M. Vázquez Vargas** *Departamento de Computación **Departamento de Procesamiento Digital de Señales

Más detalles

ALGORITMOS GENÉTICOS

ALGORITMOS GENÉTICOS Arranz de la Peña, Jorge Universidad Carlos III 100025106@alumnos.uc3m.es ALGORITMOS GENÉTICOS Parra Truyol, Antonio Universidad Carlos III 100023822@alumnos.uc3m.es En este documento se pretende analizar

Más detalles

Tema 2 Conceptos básicos de programación. Fundamentos de Informática

Tema 2 Conceptos básicos de programación. Fundamentos de Informática Tema 2 Conceptos básicos de programación Fundamentos de Informática Índice Metodología de la programación Programación estructurada 2 Pasos a seguir para el desarrollo de un programa (fases): Análisis

Más detalles

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1.1 Introducción Este método proporciona un soporte para el diseño creativo de productos de software, inclusive a escala industrial.

Más detalles

TECNICO SUPERIOR UNIVERSITARIO EN MECATRÓNICA

TECNICO SUPERIOR UNIVERSITARIO EN MECATRÓNICA TECNICO SUPERIOR UNIVERSITARIO EN MECATRÓNICA HOJA DE ASIGNATURA CON DESGLOSE DE UNIDADES TEMÁTICAS 1. Nombre de la asignatura Sistemas digitales 2. Competencias Desarrollar y conservar sistemas automatizados

Más detalles

El conjunto de conocimientos científicos y técnicos que hacen posible la resolución de forma automática de problemas por medio de las computadoras.

El conjunto de conocimientos científicos y técnicos que hacen posible la resolución de forma automática de problemas por medio de las computadoras. 1 Conceptos Generales 1.1 Definición de Informática Una posible definición de informática podría ser: El conjunto de conocimientos científicos y técnicos que hacen posible la resolución de forma automática

Más detalles

PROGRAMA DE CURSO Modelo 2009

PROGRAMA DE CURSO Modelo 2009 REQUISITOS: HORAS: 3 Horas a la semana CRÉDITOS: PROGRAMA(S) EDUCATIVO(S) QUE LA RECIBE(N): IETRO PLAN: 2009 FECHA DE REVISIÓN: Mayo de 2011 Competencia a la que contribuye el curso. DEPARTAMENTO: Departamento

Más detalles

Estructura de Datos. Unidad I Tipos de Datos

Estructura de Datos. Unidad I Tipos de Datos Estructura de Datos Unidad I Tipos de Datos Conceptos Básicos Algoritmo: es una secuencia finita de pasos o instrucciones ordenadas crono-lógicamente que describen un método para resolver un problema específico.

Más detalles

UTgeNes - Framework para Implementación y Estudio de Algoritmos

UTgeNes - Framework para Implementación y Estudio de Algoritmos UTgeNes - Framework para Implementación y Estudio de Algoritmos Genéticos Abstract UTgeNes es un framework para la implementación y estudio de algoritmos genéticos propuesto para la realización de trabajos

Más detalles

7 herramientas imprescindibles para la calidad en la empresa. El camino más seguro hacia la excelencia

7 herramientas imprescindibles para la calidad en la empresa. El camino más seguro hacia la excelencia 7 herramientas imprescindibles para la calidad en la empresa Las principales característiques de los sectores de producción industrial 2 ÍNDICE Las 7 herramientas de calidad imprescindibles... 4 1...Diagrama

Más detalles

Metodologías de diseño de hardware

Metodologías de diseño de hardware Capítulo 2 Metodologías de diseño de hardware Las metodologías de diseño de hardware denominadas Top-Down, basadas en la utilización de lenguajes de descripción de hardware, han posibilitado la reducción

Más detalles

Dr.-Ing. Paola Vega Castillo

Dr.-Ing. Paola Vega Castillo EL-3310 DISEÑO O DE SISTEMAS DIGITALES Dr.-Ing. Paola Vega Castillo Información n General Curso: Diseño de Sistemas Digitales Código: EL-3310 Tipo de curso: Teórico Créditos/Horas por semana: 4/4 Requisito:

Más detalles

4. Programación Paralela

4. Programación Paralela 4. Programación Paralela La necesidad que surge para resolver problemas que requieren tiempo elevado de cómputo origina lo que hoy se conoce como computación paralela. Mediante el uso concurrente de varios

Más detalles

Redes de Kohonen y la Determinación Genética de las Clases

Redes de Kohonen y la Determinación Genética de las Clases Redes de Kohonen y la Determinación Genética de las Clases Angel Kuri Instituto Tecnológico Autónomo de México Octubre de 2001 Redes Neuronales de Kohonen Las Redes de Kohonen, también llamadas Mapas Auto-Organizados

Más detalles

Diseño Lógico I Facultad de Ciencias Exactas y Tecnología UNT. LENGUAJES DE DESCRIPCIÓN DE HARDWARE

Diseño Lógico I Facultad de Ciencias Exactas y Tecnología UNT. LENGUAJES DE DESCRIPCIÓN DE HARDWARE LENGUAJES DE DESCRIPCIÓN DE HARDWARE METODOS PARA DESCRIBIR CIRCUITOS LÓGICOS Descripción verbal Tablas de verdad Diagrama esquemático Expresiones del álgebra booleana Diagrama de tiempos Lenguajes de

Más detalles

RESUMEN INFORMATIVO PROGRAMACIÓN DIDÁCTICA CURSO 2012/2013

RESUMEN INFORMATIVO PROGRAMACIÓN DIDÁCTICA CURSO 2012/2013 RESUMEN INFORMATIVO PROGRAMACIÓN DIDÁCTICA CURSO 2012/2013 FAMILIA PROFESIONAL: ELECTRICIDAD-ELECTRÓNICA_ MÓDULO: Electrónica Digital y Microprogramable _ CURSO 1º E.E.C._ OBJETIVOS: Analizar funcionalmente

Más detalles

Algoritmos Genéticos Y

Algoritmos Genéticos Y Algoritmos Genéticos Y Optimización n Heurística Dr. Adrian Will Grupo de Aplicaciones de Inteligencia Artificial Universidad Nacional de Tucumán awill@herrera.unt.edu.ar Operadores de Mutación El operador

Más detalles

TECNICO SUPERIOR UNIVERSITARIO EN MECATRÓNICA ÁREA AUTOMATIZACIÓN

TECNICO SUPERIOR UNIVERSITARIO EN MECATRÓNICA ÁREA AUTOMATIZACIÓN TECNICO SUPERIOR UNIVERSITARIO EN MECATRÓNICA ÁREA AUTOMATIZACIÓN HOJA DE ASIGNATURA CON DESGLOSE DE UNIDADES TEMÁTICAS Pág. 1 de 23 1. Nombre de la asignatura Sistemas digitales II. 2. Competencias Implementar

Más detalles

Tema 16 ELECTRÓNICA DIGITAL LENGUAJES DE DESCRIPCIÓN DE LOS SISTEMAS DIGITALES (PARTE 1)

Tema 16 ELECTRÓNICA DIGITAL LENGUAJES DE DESCRIPCIÓN DE LOS SISTEMAS DIGITALES (PARTE 1) ELECTRÓNICA DIGITAL Tema 16 LENGUAJES DE DESCRIPCIÓN DE LOS SISTEMAS DIGITALES (PARTE 1) IMPORTANCIA DE LOS ESQUEMAS Los circuitos y sistemas electrónicos digitales cuya complejidad es limitada, se pueden

Más detalles

Operaciones Booleanas y Compuertas Básicas

Operaciones Booleanas y Compuertas Básicas Álgebra de Boole El álgebra booleana es la teoría matemática que se aplica en la lógica combinatoria. Las variables booleanas son símbolos utilizados para representar magnitudes lógicas y pueden tener

Más detalles

PLC CONTROLADOR LOGICO PROGRAMABLE

PLC CONTROLADOR LOGICO PROGRAMABLE PLC CONTROLADOR LOGICO PROGRAMABLE PLC Los Controladores Lógicos Programables o PLC (Programmable Logic Controller por sus siglas en inglés) son dispositivos ampliamente usados en la Automatización Industrial.

Más detalles

MODELACION Y ANALISIS DE PROCESOS EMPRESARIALES MAPE

MODELACION Y ANALISIS DE PROCESOS EMPRESARIALES MAPE MODELACION Y ANALISIS DE PROCESOS EMPRESARIALES MAPE Thomas A. Little Ph. D Traducción Autorizada por el Autor. Traductor: MANUEL H RAMIREZ Alta Via Consulting-América Latina La Modelación y Análisis de

Más detalles

1. Se establecen los conceptos fundamentales (símbolos o términos no definidos).

1. Se establecen los conceptos fundamentales (símbolos o términos no definidos). 1. ÁLGEBRA DE BOOLE. El álgebra de Boole se llama así debido a George Boole, quien la desarrolló a mediados del siglo XIX. El álgebra de Boole denominada también álgebra de la lógica, permite prescindir

Más detalles

Seis Sigma. Nueva filosofía Administrativa.

Seis Sigma. Nueva filosofía Administrativa. Seis Sigma. Nueva filosofía Administrativa. GIN. Filosofía de Calidad. El Seis Sigma es un parámetro cuya base principal es la desviación estándar y su enfoque es reducir la variación y/o defectos en lo

Más detalles

COMPUTACIÓN EVOLUTIVA (CE) PROGRAMACIÓN GENÉTICA EVOLUCIÓN GRAMATICAL PROGRAMACIÓN POR EXPRESIÓN GENÉTICA

COMPUTACIÓN EVOLUTIVA (CE) PROGRAMACIÓN GENÉTICA EVOLUCIÓN GRAMATICAL PROGRAMACIÓN POR EXPRESIÓN GENÉTICA COMPUTACIÓN EVOLUTIVA (CE) PROGRAMACIÓN GENÉTICA EVOLUCIÓN GRAMATICAL PROGRAMACIÓN POR EXPRESIÓN GENÉTICA Angel García Baños Escuela de Ingeniería de Sistemas y Computación Universidad del Valle 04 de

Más detalles

INGENIERÍA EN INFORMÁTICA. Ingeniero en Informática

INGENIERÍA EN INFORMÁTICA. Ingeniero en Informática Facultad de Ingeniería Av. Paseo Colón 850 (C1063ACV) Ciudad de Buenos Aires Tel.: (011) 4343-0893 Fax: (011) 4345-7262 Página web: www.ingenieria.uba.ar Correo electrónico: academica@fi.uba.ar INGENIERÍA

Más detalles

TEMA I: INTRODUCCIÓN A LA ELECTRÓNICA DIGITAL

TEMA I: INTRODUCCIÓN A LA ELECTRÓNICA DIGITAL TEMA I: INTRODUCCIÓN A LA ELECTRÓNICA DIGITAL 1. Electrónica Digital Antes de empezar en el tema en cuestión, vamos a dar una posible definición de la disciplina que vamos a tratar, así como su ámbito

Más detalles

Generalidades Computacionales

Generalidades Computacionales Capítulo 2 Generalidades Computacionales 2.1. Introducción a los Computadores Definición: Un computador es un dispositivo electrónico que puede transmitir, almacenar, recuperar y procesar información (datos).

Más detalles

GANTT, PERT y CPM. Figura 5.3: Carta GANTT 3.

GANTT, PERT y CPM. Figura 5.3: Carta GANTT 3. GANTT, PERT y CPM Características Conseguir una buena programación es un reto, no obstante es razonable y alcanzable. Ella debe tener el compromiso del equipo al completo, para lo cual se recomienda que

Más detalles

No se requiere que los discos sean del mismo tamaño ya que el objetivo es solamente adjuntar discos.

No se requiere que los discos sean del mismo tamaño ya que el objetivo es solamente adjuntar discos. RAIDS MODO LINEAL Es un tipo de raid que muestra lógicamente un disco pero se compone de 2 o más discos. Solamente llena el disco 0 y cuando este está lleno sigue con el disco 1 y así sucesivamente. Este

Más detalles

Electrónica digital IES GUADIANA 4º ESO

Electrónica digital IES GUADIANA 4º ESO Departamento de tecnología Electrónica digital IES GUADIANA 4º ESO Mª Cruces Romero Vallbona. Curso 2012-2013 Electrónica digital 4º ESO 1. Señales y tipos... 2 2. Ventajas y desventajas de los sistemas

Más detalles

Competencias generales vinculadas a los distintos módulos Módulo de Formación Básica

Competencias generales vinculadas a los distintos módulos Módulo de Formación Básica Competencias generales vinculadas a los distintos módulos Módulo de Formación Básica C1. Capacidad para la resolución de los problemas matemáticos que puedan plantearse en la ingeniería. Aptitud para aplicar

Más detalles

INGENIERIA DE SOFTWARE I INTRODUCCIÓN A LA INGENIERIA DE SOFTWARE

INGENIERIA DE SOFTWARE I INTRODUCCIÓN A LA INGENIERIA DE SOFTWARE INGENIERIA DE SOFTWARE I INTRODUCCIÓN A LA INGENIERIA DE SOFTWARE Agenda El software. Definición de software Dominios de aplicación Software heredado La naturaleza de las webapps Ingeniería del software

Más detalles

Tema 1: Computadores y Programas

Tema 1: Computadores y Programas Tema 1: Computadores y Programas Ingeniería Informática Ingeniería Técnica en Informática de Sistemas Ingeniería Técnica en Informática de Gestión Departamento de Ciencia de la Computación e I.A. Universidad

Más detalles

Capítulo 12: Indexación y asociación

Capítulo 12: Indexación y asociación Capítulo 12: Indexación y asociación Conceptos básicos Índices ordenados Archivos de índice de árbol B+ Archivos de índice de árbol B Asociación estática Asociación dinámica Comparación entre indexación

Más detalles

Proyecto de Diseño 2

Proyecto de Diseño 2 Altera University Program 1 Proyecto de Diseño 2 Números y Visualizadores El objetivo de esta práctica es diseñar circuitos combinacionales que realicen conversiones numéricas de binario a decimal y adición

Más detalles

SUMADOR BINARIO. Instituto Internacional de Investigación de Tecnología Educativa

SUMADOR BINARIO. Instituto Internacional de Investigación de Tecnología Educativa SUMADOR BINARIO INITE, S.C. no es responsable del contenido, de la veracidad de los datos, opiniones y acontecimientos vertidos en el presente caso práctico. La finalidad del presente es el desarrollo

Más detalles

Sistema Binario. Sistema Binario. Ing. José Alberto Díaz García. EL - 3307 Diseño Lógico. Página 1

Sistema Binario. Sistema Binario. Ing. José Alberto Díaz García. EL - 3307 Diseño Lógico. Página 1 Página Historia Página 2 George Boole [85, 864], fue un matemático y filósofo ingles. Inventor del álgebra de Boole, la base de la aritmética computacional moderna. Boole contribuyó con 22 artículos. A

Más detalles

TECNICO SUPERIOR UNIVERSITARIO EN TECNOLOGIAS DE LA INFORMACION Y COMUNICACIÓN ÁREA REDES Y TELECOMUNICACIONES.

TECNICO SUPERIOR UNIVERSITARIO EN TECNOLOGIAS DE LA INFORMACION Y COMUNICACIÓN ÁREA REDES Y TELECOMUNICACIONES. TECNICO SUPERIOR UNIVERSITARIO EN TECNOLOGIAS DE LA INFORMACION Y COMUNICACIÓN ÁREA REDES Y TELECOMUNICACIONES. HOJA DE ASIGNATURA CON DESGLOSE DE UNIDADES TEMÁTICAS 1. Nombre de la asignatura Sistemas

Más detalles

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3 UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3 INTRODUCCIÓN El elemento hardware de un sistema básico de proceso de datos se puede estructurar en tres partes claramente diferenciadas en cuanto a sus funciones:

Más detalles

TÉCNICO SUPERIOR UNIVERSITARIO EN MANTENIMIENTO ÁREA INDUSTRIAL

TÉCNICO SUPERIOR UNIVERSITARIO EN MANTENIMIENTO ÁREA INDUSTRIAL TÉCNICO SUPERIOR UNIVERSITARIO EN MANTENIMIENTO ÁREA INDUSTRIAL HOJA DE ASIGNATURA CON DESGLOSE DE UNIDADES TEMÁTICAS 1. Nombre de la asignatura Electrónica digital 2. Competencias Supervisar el reemplazo

Más detalles

3. CÁLCULOS Y FORMATOS CONDICIONALES

3. CÁLCULOS Y FORMATOS CONDICIONALES colores, tendremos las opciones Mínima y Máxima, con tres campos cada una: Tipo, Valor y Color. Con este formato podemos crear una regla que le asigne un color al menor valor y otro al mayor, y dé a los

Más detalles

Estructuras de Control - Diagrama de Flujo

Estructuras de Control - Diagrama de Flujo RESOLUCIÓN DE PROBLEMAS Y ALGORITMOS Ingeniería en Computación Ingeniería en Informática UNIVERSIDAD NACIONAL DE SAN LUIS DEPARTAMENTO DE INFORMÁTICA AÑO 2015 Índice 1. Programación estructurada 2 1.1.

Más detalles

Instituto Tecnológico de Celaya

Instituto Tecnológico de Celaya LENGUAJES Lenguaje es el empleo de notaciones, señales y vocales (voz, palabras) para expresar ideas, comunicarse, y establecer relaciones entre los seres humanos. Un lenguaje no sólo consta de palabras,

Más detalles

Materia: Informática. Nota de Clases Sistemas de Numeración

Materia: Informática. Nota de Clases Sistemas de Numeración Nota de Clases Sistemas de Numeración Conversión Entre Sistemas de Numeración 1. EL SISTEMA DE NUMERACIÓN 1.1. DEFINICIÓN DE UN SISTEMA DE NUMERACIÓN Un sistema de numeración es un conjunto finito de símbolos

Más detalles

Tema 2. La Información y su representación

Tema 2. La Información y su representación Tema 2. La Información y su representación 2.1 Introducción. Un ordenador es una máquina que procesa información. La ejecución de un programa implica la realización de unos tratamientos, según especifica

Más detalles

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE PRUEBAS DE SOFTWARE La prueba del software es un elemento crítico para la garantía de la calidad del software. El objetivo de la etapa de pruebas es garantizar la calidad del producto desarrollado. Además,

Más detalles

Introducción a los Algoritmos Genéticos

Introducción a los Algoritmos Genéticos Introducción a los Algoritmos Genéticos Francisco José Ribadas Pena INTELIGENCIA ARTIFICIAL 5 Informática ribadas@uvigo.es 17 de octubre de 2005 c FJRP 2005 ccia IA Métodos de 8 < : 1 Introducción 9 =

Más detalles

Entidad Formadora: Plan Local De Formación Convocatoria 2010

Entidad Formadora: Plan Local De Formación Convocatoria 2010 Entidad Formadora: Enterprise Architect Comenzando Puede iniciar Enterprise Architect desde el ícono que se creó en su escritorio de Windows durante la instalación, o alternativamente: 1. Abrir el menú

Más detalles

Introducción a los Tipos Abstractos de Datos

Introducción a los Tipos Abstractos de Datos Página 1 de 8 Introducción a los Tipos Abstractos de Datos Introducción: Concepto de abstracción Abstracción funcional y abstracción de datos Construcción de tipos abstractos de datos Especificación de

Más detalles

Determinación de primas de acuerdo al Apetito de riesgo de la Compañía por medio de simulaciones

Determinación de primas de acuerdo al Apetito de riesgo de la Compañía por medio de simulaciones Determinación de primas de acuerdo al Apetito de riesgo de la Compañía por medio de simulaciones Introducción Las Compañías aseguradoras determinan sus precios basadas en modelos y en información histórica

Más detalles

51 Int. CI.: G06F 17/30 (2006.01) TRADUCCIÓN DE PATENTE EUROPEA

51 Int. CI.: G06F 17/30 (2006.01) TRADUCCIÓN DE PATENTE EUROPEA 19 OFICINA ESPAÑOLA DE PATENTES Y MARCAS ESPAÑA 11 Número de publicación: 2 460 021 1 Int. CI.: G06F 17/ (06.01) 12 TRADUCCIÓN DE PATENTE EUROPEA T3 96 Fecha de presentación y número de la solicitud europea:

Más detalles

CONTENIDOS. 2. Entidades primitivas para el desarrollo de algoritmos.

CONTENIDOS. 2. Entidades primitivas para el desarrollo de algoritmos. Introducción a la ciencia de la computación y a la programación 1. La computadora CONTENIDOS 2. Entidades primitivas para el desarrollo de algoritmos. 3. Metodología a seguir para la resolución de problemas

Más detalles

INDICE Parte I. Conceptos 1. El estudio de los lenguajes de programación 2. Cuestiones de diseño de lenguajes

INDICE Parte I. Conceptos 1. El estudio de los lenguajes de programación 2. Cuestiones de diseño de lenguajes INDICE Parte I. Conceptos 1 1. El estudio de los lenguajes de programación 1.1. Por qué estudiar lenguajes de programación? 2 1.2. Breve historia de los lenguajes de programación 1.2.1. Desarrollo de los

Más detalles

Tema 2. Ingeniería del Software I feliu.trias@urjc.es

Tema 2. Ingeniería del Software I feliu.trias@urjc.es Tema 2 Ciclo de vida del software Ingeniería del Software I feliu.trias@urjc.es Índice Qué es el ciclo de vida del Software? El Estándar 12207 Modelos de proceso Qué es el Ciclo de Vida del SW? Definición

Más detalles

APLICABILIDAD DE MÉTODOS DE INTELIGENCIA ARTIFICIAL A LA CALIBRACIÓN DE REDES DE ACUEDUCTO

APLICABILIDAD DE MÉTODOS DE INTELIGENCIA ARTIFICIAL A LA CALIBRACIÓN DE REDES DE ACUEDUCTO APLICABILIDAD DE MÉTODOS DE INTELIGENCIA ARTIFICIAL A LA CALIBRACIÓN DE REDES DE ACUEDUCTO Juan Guillermo Saldarriga Valderrama * Profesor Titular del Departamento de Ingeniería Civil y Ambiental de la

Más detalles

Tema 11. Soporte del Sistema Operativo 11.1. REQUERIMIENTOS DE LOS SISTEMAS OPERATIVOS. 11.1.1. MULTIPROGRAMACIÓN.

Tema 11. Soporte del Sistema Operativo 11.1. REQUERIMIENTOS DE LOS SISTEMAS OPERATIVOS. 11.1.1. MULTIPROGRAMACIÓN. Tema 11 Soporte del Sistema Operativo 11.1. REQUERIMIENTOS DE LOS SISTEMAS OPERATIVOS. El sistema operativo es básicamente un programa que controla los recursos del computador, proporciona servicios a

Más detalles

Apuntes de Microcontroladores (Repaso de temas previos)

Apuntes de Microcontroladores (Repaso de temas previos) Apuntes de Microcontroladores (Repaso de temas previos) Por M. C. Miguelangel Fraga Aguilar Enero 2015 Representaciones numéricas En estos apuntes se usara el posfijo b para denotar un número escrito en

Más detalles

Glosario. actividad. 1. (tarea) 2. es un subproceso que no requiere mas descomposición.

Glosario. actividad. 1. (tarea) 2. es un subproceso que no requiere mas descomposición. Glosario Aclaraciones Los conceptos del glosario están ordenados alfabéticamente. Un concepto puede ser un único término como meta o una frase como ambiente de ingeniería de software centrado en procesos.

Más detalles

ETSIINGENIO 2009 DIBUJO DE GRAFOS MEDIANTE ALGORITMOS GENÉTICOS

ETSIINGENIO 2009 DIBUJO DE GRAFOS MEDIANTE ALGORITMOS GENÉTICOS ETSIINGENIO 2009 DIBUJO DE GRAFOS MEDIANTE ALGORITMOS GENÉTICOS EtsiIngenio Inteligencia Artificial 1 Raposo López Alejandro Sánchez Palacios Manuel Resumen dibujo de grafos mediante algoritmos genéticos

Más detalles

I SEMANA ELECTRONICA REDES NEURONALES

I SEMANA ELECTRONICA REDES NEURONALES UNIVERSIDAD NACIONAL SAN ANTONIO ABAD A DEL CUSCO CARRERA PROFESIONAL DE INGENIERIA ELECTRONICA I SEMANA ELECTRONICA REDES NEURONALES Ing. Avid idromán González Se trata de una nueva forma de computación

Más detalles

La complejidad de los automatismos y la necesidad de especificar con precisión las tareas => útiles simbólicos de representación

La complejidad de los automatismos y la necesidad de especificar con precisión las tareas => útiles simbólicos de representación PROGRAMACIÓN DEL AUTÓMATA Tiene una serie de pasos: Determinar qué debe hacer el sistema de control y en qué orden Identificar entradas y salidas al autómata Representar mediante un modelo el sistema de

Más detalles

ENTORNO DE TRABAJO PARA LA SIMULACIÓN HARDWARE DE UNA COMPUTADORA SENCILLA

ENTORNO DE TRABAJO PARA LA SIMULACIÓN HARDWARE DE UNA COMPUTADORA SENCILLA ENTORNO DE TRABAJO PARA LA SIMULACIÓN HARDWARE DE UNA COMPUTADORA SENCILLA Fco. Javier Quiles, Manuel A. Ortiz, Carlos D. Moreno, J. Ignacio Benavides, Vicente J. Fernández, Nicolás Martínez Área de Conocimiento

Más detalles

Por el rápido crecimiento de Internet la tecnología se ha tenido que adaptar para cubrir las

Por el rápido crecimiento de Internet la tecnología se ha tenido que adaptar para cubrir las Capítulo 1 Introducción Por el rápido crecimiento de Internet la tecnología se ha tenido que adaptar para cubrir las demandas de mayor ancho de banda. Para cubrir esta demanda los proveedores de Internet

Más detalles

Diseño orientado al flujo de datos

Diseño orientado al flujo de datos Diseño orientado al flujo de datos Recordemos que el diseño es una actividad que consta de una serie de pasos, en los que partiendo de la especificación del sistema (de los propios requerimientos), obtenemos

Más detalles

Programación Orientada a Objetos Profr. Pedro Pablo Mayorga

Programación Orientada a Objetos Profr. Pedro Pablo Mayorga Actividad 2 Unidad 1 Ciclo de vida del software y Diseño Orientado a Objetos Ciclo de Vida del Software Un modelo de ciclo de vida define el estado de las fases a través de las cuales se mueve un proyecto

Más detalles

Programación orientada a

Programación orientada a Programación orientada a objetos con Java Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Objetivos Presentar los conceptos de la programación

Más detalles

UNIDAD 2 Configuración y operación de un sistema de cómputo Representación de datos Conceptos El concepto de bit (abreviatura de binary digit) es fundamental para el almacenamiento de datos Puede representarse

Más detalles

Procesadores Superescalares: Paralelismo Implícito a Nivel de Instrucción

Procesadores Superescalares: Paralelismo Implícito a Nivel de Instrucción Tema 7 Procesadores Superescalares: Paralelismo Implícito a Nivel de Instrucción Se denomina arquitectura superescalar a aquella implementación capaz de ejecutar más de una instrucción por ciclo de reloj.

Más detalles

❷ Aritmética Binaria Entera

❷ Aritmética Binaria Entera ❷ Una de las principales aplicaciones de la electrónica digital es el diseño de dispositivos capaces de efectuar cálculos aritméticos, ya sea como principal objetivo (calculadoras, computadoras, máquinas

Más detalles

Mejores prácticas para el éxito de un sistema de información. Uno de los problemas de información dentro de las empresas es contar con datos

Mejores prácticas para el éxito de un sistema de información. Uno de los problemas de información dentro de las empresas es contar con datos ANEXO VI. Mejores prácticas para el éxito de un sistema de información Uno de los problemas de información dentro de las empresas es contar con datos importantes del negocio y que éstos estén aislados

Más detalles

LABORATORIO I DE CONTROL

LABORATORIO I DE CONTROL LABORATORIO I DE CONTROL CONTROLADOR LÓGICO PROGRAMABLE PLC Prof. Gerardo Torres - gerardotorres@ula.ve - Cubículo 003 Escuela de Ingeniería Eléctrica de la Facultad de Ingeniería de la Universidad de

Más detalles