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

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

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

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

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

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

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 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

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

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

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

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

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

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

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

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

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

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

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

Computación Evolutiva: Técnicas de Selección

Computación Evolutiva: Técnicas de Selección Computación Evolutiva: Técnicas de Selección Dr. Gregorio Toscano Pulido Laboratorio de Tecnologías de Información Centro de Investigación y de Estudios Avanzados del IPN Cinvestav-Tamaulipas Dr. Gregorio

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

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

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

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

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

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

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

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

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

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

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

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

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

Contenido. Capítulo 1. Capítulo 3. Capítulo 2. Alfaomega. Arquitectura de computadoras - Patricia Quiroga

Contenido. Capítulo 1. Capítulo 3. Capítulo 2. Alfaomega. Arquitectura de computadoras - Patricia Quiroga XI Contenido Capítulo 1 Evolución del procesamiento de datos... 1 1.1 Organización y arquitectura de una computadora... 2 1.2 Estratificación del software... 3 1.3 Evolución del procesamiento de datos...

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

Divisor de Frecuencias en Hardware Evolutivo

Divisor de Frecuencias en Hardware Evolutivo Divisor de Frecuencias en Hardware Evolutivo Christian José Devia 1 christiandevia@hotmail.com José Marcio Luna 2 marciol@terra.com.co Alvaro Betancourt MIng, MSc 3 abetancourt@udistrital.edu.co RESUMEN

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

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

UNIDAD 1: Introducción a la arquitectura de computadoras.

UNIDAD 1: Introducción a la arquitectura de computadoras. UNIDAD 1: Introducción a la arquitectura de computadoras. 1.1 Introducción La tecnología de computadoras ha progresado increíblemente en los últimos cincuenta años. En 1945 no había computadoras con programa

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

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

Capítulo 1. Introducción. 1.1. Antecedentes

Capítulo 1. Introducción. 1.1. Antecedentes Capítulo 1. Introducción En este capítulo se presenta una descripción general del problema a investigar y el enfoque con el que se aborda. Se establece la necesidad de incorporar técnicas de análisis novedosas

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

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

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

9.1.Los sistemas expertos. 9.2.Las redes neuronales artificiales. 9.3.Sistemas de inducción de reglas y árboles de decisión.

9.1.Los sistemas expertos. 9.2.Las redes neuronales artificiales. 9.3.Sistemas de inducción de reglas y árboles de decisión. TEMA 9 TÉCNICAS DE INTELIGENCIA ARTIFICIAL PARA EL ANÁLISIS DE LA INFORMACIÓN CONTABLE 9.1.Los sistemas expertos. 9.2.Las redes neuronales artificiales. 9.3.Sistemas de inducción de reglas y árboles de

Más detalles

SIMULACIÓN CAPITULO 3 LECTURA 6.3. SIMULACIÓN Y ANÁLISIS DE MODELOS ESTOCÁSTICOS Azarang M., Garcia E. Mc. Graw Hill. México 3.

SIMULACIÓN CAPITULO 3 LECTURA 6.3. SIMULACIÓN Y ANÁLISIS DE MODELOS ESTOCÁSTICOS Azarang M., Garcia E. Mc. Graw Hill. México 3. LECTURA 6.3 SIMULACIÓN Y ANÁLISIS DE MODELOS ESTOCÁSTICOS Azarang M., Garcia E. Mc. Graw Hill. México CAPITULO 3 SIMULACIÓN 3.1 INTRODUCCIÓN Simulación es el desarrollo de un modelo lógico-matemático de

Más detalles

U i n d id d a 3. El Element os á bá i s cos de un programa

U i n d id d a 3. El Element os á bá i s cos de un programa Programación Digital U id d 3 El t bá i Unidad 3. Elementos básicos de un programa 1. Concepto de Programa Es un conjunto de instrucciones (órdenes dadas a la computadora), que producirán la ejecución

Más detalles

Introducción a compiladores. Universidad Autónoma de Aguascalientes Prof. Eduardo Serna-Pérez Correo-e: eduardo.serna@gmail.com

Introducción a compiladores. Universidad Autónoma de Aguascalientes Prof. Eduardo Serna-Pérez Correo-e: eduardo.serna@gmail.com Introducción a compiladores Universidad Autónoma de Aguascalientes Prof. Eduardo Serna-Pérez Correo-e: eduardo.serna@gmail.com Introducción a compiladores Definición de compilador Historia de los compiladores

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 5. Implementación y Tecnologías Utilizadas

Capítulo 5. Implementación y Tecnologías Utilizadas Capítulo 5. Implementación y Tecnologías Utilizadas Cada vez más, se está utilizando Flash para desarrollar aplicaciones basadas en Web, pues permite la construcción de ambientes con mayor interacción.

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

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

CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIPLATAFORMA

CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIPLATAFORMA CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIPLATAFORMA PROGRAMACIÓN DIDACTICA ANUAL Parte específica del módulo: 0485. Programación Departamento de Familia Profesional de Informática Curso: 2014-15

Más detalles

Organización del Computador 1. Máquina de von Neumann Jerarquía de Niveles

Organización del Computador 1. Máquina de von Neumann Jerarquía de Niveles Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles Inicios de la computación Turing y Church sientan las bases teóricas de la computación Máquina de Turing Máquina teórica compuesta

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

Programación en lenguaje C++

Programación en lenguaje C++ Programación en Lenguaje C++ Objetivos Unidad Tema Subtema Objetivos VI 6.1 Metodología de la programación Metodologías Diseños de algoritmos Creación de algoritmos Entender y aplicar los pasos a seguir

Más detalles

FUNCIONES ARITMÉTICAS Y

FUNCIONES ARITMÉTICAS Y Tema 3 FUNCIONES ARITMÉTICAS Y LÓGICAS 3.. INTRODUCCIÓN Hasta ahora hemos visto como se podían minimizar funciones booleanas, y como se podían implementar a partir de puertas discretas. En los temas siguientes

Más detalles

Introducción a los algoritmos genéticos y sus aplicaciones

Introducción a los algoritmos genéticos y sus aplicaciones Introducción a los algoritmos genéticos y sus aplicaciones Autora: Piedad Tolmos Rodríguez-Piñero Dirección: Paseo de los Artilleros s/n Madrid 28032 Teléfono: 91-3019901 E-Mail: tolmos@poseidon.fcjs.urjc.es

Más detalles

Selección usando Algoritmos

Selección usando Algoritmos Capítulo 3 Selección usando Algoritmos Genéticos 3.1. Introducción En esta sección se aborda el uso de Algoritmos Genéticos (GA del inglés Genetic Algorithms) para selección de características. Así como

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

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

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

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

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

CIDEAD. 2º BACHILLERATO. Tecnología Industrial II. Tema 17.- Los circuitos digitales. Resumen

CIDEAD. 2º BACHILLERATO. Tecnología Industrial II. Tema 17.- Los circuitos digitales. Resumen Tema 7.- Los circuitos digitales. Resumen Desarrollo del tema.. Introducción al tema. 2. Los sistemas de numeración.. El sistema binario. 4. Códigos binarios. 5. El sistema octal y hexadecimal. 6. El Álgebra

Más detalles

Nombre de la asignatura : Sistemas Digitales. Carrera : Ingeniería en Sistemas Computacionales. Clave de la asignatura : SCC-9335

Nombre de la asignatura : Sistemas Digitales. Carrera : Ingeniería en Sistemas Computacionales. Clave de la asignatura : SCC-9335 1. D A T O S D E L A A S I G N A T U R A Nombre de la asignatura : Sistemas Digitales Carrera : Ingeniería en Sistemas Computacionales Clave de la asignatura : SCC-95 Horas teoría-horas práctica-créditos

Más detalles

Algoritmos Evolutivos

Algoritmos Evolutivos Algoritmos Evolutivos 2003-11-20 Cristóbal Romero, Pedro González y Sebastián Ventura 1.1 Introducción En general, cualquier tarea abstracta a realizar puede considerarse como la resolución de un problema

Más detalles

Inicio de MO Inicio de MD Inicio de MF. Documento de Análisis. Base de datos de las especificaciones OMT. MO, MD, MF Detallados. Librería de Clases

Inicio de MO Inicio de MD Inicio de MF. Documento de Análisis. Base de datos de las especificaciones OMT. MO, MD, MF Detallados. Librería de Clases 3.2 TÉCNICA DE MODELADO DE OBJETOS (OMT) (JAMES RUMBAUGH). 3.2.1 Introducción. En este documento se trata tanto el OMT-1 como el OMT-2, el primero contenido en el Libro Modelado y Diseño Orientado (Metodología

Más detalles

Maria José González/ Dep. Tecnología

Maria José González/ Dep. Tecnología Señal analógica es aquella que puede tomar infinitos valores para representar la información. Señal digital usa solo un número finito de valores. En los sistemas binarios, de uso generalizado en los circuitos

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

Introducción a la Computación

Introducción a la Computación UNIVERSIDAD RAFAEL BELLOSO CHACÍN FACULTAD DE INGENIERIA INTRODUCCIÓN A LA COMPUTACION UNIDAD II: DATOS, ALGORITMOS Y PSEUDOCODIGOS http://www.urbe.edu/info-consultas/web-profesor/12697883/ ALGORITMO Un

Más detalles

LENGUAJES DE PROGRAMACIÓN POR QUÉ HAY TANTOS Y APARECEN NUEVOS? Por: Hanna Oktaba

LENGUAJES DE PROGRAMACIÓN POR QUÉ HAY TANTOS Y APARECEN NUEVOS? Por: Hanna Oktaba LENGUAJES DE PROGRAMACIÓN POR QUÉ HAY TANTOS Y APARECEN NUEVOS? Por: Hanna Oktaba La computadora, a diferencia de otras herramientas que en general apoyan el esfuerzo físico de los humanos, fue inventada

Más detalles

ELO211: Sistemas Digitales. Tomás Arredondo Vidal

ELO211: Sistemas Digitales. Tomás Arredondo Vidal ELO211: Sistemas Digitales Tomás Arredondo Vidal Este material está basado en: textos y material de apoyo: Contemporary Logic Design 1 st / 2 nd edition. Gaetano Borriello and Randy Katz. Prentice Hall,

Más detalles

DIAGRAMA DE FLUJO DE DATOS

DIAGRAMA DE FLUJO DE DATOS DIAGRAMA DE FLUJO DE DATOS AUTOR: CORDOVA NERI, TEODORO Lima Perú Córdova Neri, Teodoro 2 Diagrama de Flujo de Datos INTRODUCCIÓN La presente guía denominada DIAGRAMA DE FLUJO DE DATOS, ilustra una de

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

ESCUELA POLITÉCNICA NACIONAL

ESCUELA POLITÉCNICA NACIONAL ESCUELA POLITÉCNICA NACIONAL FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA OPTIMIZACIÓN DE CONTROLADORES DIGITALES PID EN SISTEMAS DINÁMICOS USANDO ALGORITMOS GENÉTICOS PROYECTO PREVIO A LA OBTENCIÓN

Más detalles

CAPÍTULO I 1. SISTEMAS DE NUMERACIÓN

CAPÍTULO I 1. SISTEMAS DE NUMERACIÓN CAPÍTULO I 1. SISTEMAS DE NUMERACIÓN Un sistema de numeración es el conjunto de símbolos y reglas que se utilizan para la representación de datos numéricos o cantidades. Un sistema de numeración se caracteriza

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

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

SAGE (ENTORNO DE CÁLCULOS MATEMÁTICOS)

SAGE (ENTORNO DE CÁLCULOS MATEMÁTICOS) SAGE (ENTORNO DE CÁLCULOS MATEMÁTICOS) PRESENTACIÓN El siguiente texto forma parte de una guía acerca del Programa SAGE que tiene por finalidad actuar como un material de asesoramiento en la instalación

Más detalles

INDICE 1. Conceptos Introductorias 2. Sistemas Numéricos y Códigos 3. Compuertas Lógicas y Álgebras Booleana 4. Circuitos Lógicos Combinatorios

INDICE 1. Conceptos Introductorias 2. Sistemas Numéricos y Códigos 3. Compuertas Lógicas y Álgebras Booleana 4. Circuitos Lógicos Combinatorios INDICE 1. Conceptos Introductorias 1 1.1. Representaciones numéricas 3 1.2. Sistemas digitales y analógicos 4 1.3. Sistemas numéricos digitales 6 1.4. Representación de cantidades binarias 10 1.5. Circuitos

Más detalles

Técnicas de Programación Hardware: CAD para FPGAs y CPLDs

Técnicas de Programación Hardware: CAD para FPGAs y CPLDs Técnicas de Programación Hardware: CAD para FPGAs y CPLDs Clase 4: FPGAs Por: Nelson Acosta & Daniel Simonelli UNICEN - Tandil - 1999 1 Implementación de Sistemas Procesador convencional. Economico, conjunto

Más detalles

1 LA INFORMACION Y SU REPRESENTACION

1 LA INFORMACION Y SU REPRESENTACION 1 LA INFORMACION Y SU REPRESENTACION 1.1 Sistemas de numeración Para empezar a comprender cómo una computadora procesa información, debemos primero entender cómo representar las cantidades. Para poder

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

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

El tamaño, estructura, número de bloques y la cantidad y conectividad de las conexiones varian en las distintas arquitecturas.

El tamaño, estructura, número de bloques y la cantidad y conectividad de las conexiones varian en las distintas arquitecturas. Que es una FPGA? Las FPGA s (Field Programmable Gate Array) Son dispositivos lógicos de propósito general programable por los usuarios, compuesto de bloques lógicos comunicados por conexiones programables.

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

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

Tabla de verdad. La función lógica es aquella que relaciona las entradas y salidas de un circuito lógico. Puede expresarse mediante:

Tabla de verdad. La función lógica es aquella que relaciona las entradas y salidas de un circuito lógico. Puede expresarse mediante: T-2 Álgebra de oole. ógica combinacional TM - 2 ÁGR D OO. ÓGI OMINION. l control digital, y en particular el binario, está presente en todos los campos de la vida, desde los sistemas de refrigeración hasta

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

Algoritmos de multiplicación y división.

Algoritmos de multiplicación y división. Capítulo 11. 1 Algoritmos de multiplicación y división. A continuación se estudiarán algoritmos para efectuar las operaciones de multiplicación y división entera. Usualmente estas operaciones están soportadas

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

Capítulo 1. Introducción

Capítulo 1. Introducción Capítulo 1. Introducción El WWW es la mayor fuente de imágenes que día a día se va incrementando. Según una encuesta realizada por el Centro de Bibliotecas de Cómputo en Línea (OCLC) en Enero de 2005,

Más detalles

INTRODUCCIÓN A LA INTELIGENCIA ARTIFICIAL: LOS SISTEMAS EXPERTOS

INTRODUCCIÓN A LA INTELIGENCIA ARTIFICIAL: LOS SISTEMAS EXPERTOS Introducción a los Sistemas Expertos 1 INTRODUCCIÓN A LA INTELIGENCIA ARTIFICIAL: LOS SISTEMAS EXPERTOS ÍNDICE 1. INTRODUCCIÓN. EVOLUCIÓN HISTÓRICA 2. DEFINICIÓN Y CARACTERÍSTICAS DE LOS SE. 3. TIPOS Y

Más detalles

Capítulo 2. Las Redes Neuronales Artificiales

Capítulo 2. Las Redes Neuronales Artificiales Capítulo 2. Las Redes Neuronales Artificiales 13 Capitulo 2. Las Redes Neuronales Artificiales 2.1 Definición Redes Neuronales Artificiales El construir una computadora que sea capaz de aprender, y de

Más detalles

Introducción 7. Introducción

Introducción 7. Introducción Introducción 7 Introducción En las últimas décadas hemos asistido a un rápido desarrollo de los sistemas electrónicos digitales, origen y consecuencia del crecimiento de las redes de comunicaciones, de

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 de Hardware con VHDL

Diseño de Hardware con VHDL Diseño de Hardware con VHDL Facultad de Ingeniería Laboratorio Electrónica Segundo Semestre, 2015 Field Programmable Gate Array (FPGA) De una manera superficial podemos decir que las FPGA son chips de

Más detalles

Denominación de la materia. N créditos ECTS = 36 carácter = MIXTA INGENIERIA DE COMPUTADORAS

Denominación de la materia. N créditos ECTS = 36 carácter = MIXTA INGENIERIA DE COMPUTADORAS Denominación de la materia INGENIERIA DE COMPUTADORAS N créditos ECTS = 36 carácter = MIXTA Ubicación dentro del plan de estudios y duración La materia Ingeniería de Computadoras está formada por 6 asignaturas

Más detalles