Computación Evolutiva: un repaso a las técnicas más utilizadas y su aplicación en MASS. Carlos Cervigón.

Slides:



Advertisements
Presentaciones similares
ALGORITMOS GENETICOS EVOLUCIÓN DE UNA POBLACIÓN DE
Advertisements

Algoritmos Genéticos.
ALGORITMOS GEN É TICOS: DETECCI Ó N DE BORDES EN IM Á GENES Daniel Mej í as Pinto Luis Manuel Merino Su á rez.
Grid Initiatives for e-Science virtual communities in Europe and Latin America Algoritmo Genético para la solución del problema SAT.
COMPUTACION PARALELA GLORIA PATRICIA FLOREZ ANGIE PAOLA ANCHICO.
Cómo evolucionan los organismos
PROGRAMACIÓN I CENTRO DE ESTUDIOS INTEGRADOS EL MARISCAL - CEIM Ing. Luisa Fernanda Arenas Castañeda Feb 6 de 2016.
1 Primer Semana del Posgrado del ITLP Efectos de los Parámetros Migratorios en Algoritmos Genéticos Distribuidos Marco Antonio Castro Liera
* Parte del punto 3 está basado en las presentaciones del Curso de Enfoques Metodológicos de Fernando Cartes M.
Contenidos Orígenes y antecedentes biológicos
Introducción a los Algoritmos Genéticos en Python
Unidad 4. Estrategias para promover el aprendizaje significativo
TERMINOLOGÍA BÁSICA Informática: conjunto de conocimientos científicos y técnicas que hacen posible el tratamiento automático y racional de la información,
INTELIGENCIA ARTIFICIAL
La Célula Niveles de organización en los seres vivos
Fundamentos de programación
Apuntes Matemáticas 2º ESO
MAESTRÍA EN CONTROL DE OPERACIONES Y GESTIÓN LOGÍSTICA
SISTEMAS DE PRODUCCIÓN
Genética mendeliana en poblaciones: el equilibrio de Hardy-Weinberg
informática y convergencia
ENFOQUES DE CONSERVACIÓN
Teorías de la Evolución de los seres Vivos
TÍTULO DEL PROYECTO Plataformas Computacionales de Entrenamiento, Experimentación, Gestión y Mitigación de Ataques a la Ciberseguridad.
Inteligencia Artificial
ROBÒTICA COLABORATIVA BIENVENIDOS Séptimo grado.
Descripción e interpretación de la estadística
UNIVERSIDAD ALONSO DE OJEDA FACULTAD DE CIENCIAS ADMINISTRATIVAS
INNOVACIONES TECNICAS A LO LARGO DE LA HISTORIA
INFORME DE RENDICION DE CUENTAS 2016
Algoritmos Genéticos Inteligencia Artificial Universidad del Magdalena Ing. De Sistemas.
Algoritmos Evolutivos Multiobjetivos
PLANES DE MUESTREO Prof. Simón Cabrera.
ESTADISTICA GENERAL.
Salir de la presentación
Métodos de muestreo.
METODO DE TRANSPORTE APROXIMACION DE VOGEL
Simulador modular secuencial basado en ecuaciones
Pilar Echegaray Maldonado. 4ºC E.S.O.
2 Cariotipo humano: qué es y cómo se obtiene
En la evaluación familiar
Diseñar y elaborar algoritmos
Scratch Presentado por: Valentina Agudelo Huerfano J.M.
Origen del hombre correodelasculturas.wordpress.com/.../
UNIVERSIDAD ALONSO DE OJEDA FACULTAD DE CIENCIAS ADMINISTRATIVAS
Diferencias programador vs Ingeniero de software
ESTADÍSTICA BÁSICA.
Evolución y desarrollo Interacción de factores genéticos y ambientales
CURSO PROGRAMACIÓN BÁSICA SEMANA 2
Área de Matemática.
LA EVOLUCIÓN DE LOS SERES VIVOS
LAS VARIABLES EN LA INVESTIGACIÓN
Metodología de la Programación
Evolución LA EVOLUCIÓN COMO NÚCLEO PRINCIPAL DE LA BIOLOGÍA
GENERACIÓN DE COMPUTADORAS
Optimización de Procesos.
Tema 3: Operadores Antonio J. Sierra.
Expositores: María Gracia León Nelson Arol Ruiz
“Algoritmos en Inteligencia Artificial” Rogelio Ferreira Escutia
INSTITUTO TECNOLOGICO DE VERACRUZ
Expresiones algorítmicas
TIPOS DE HERENCIA Herencia Cualitativa Herencia Cuantitativa.
Capítulo 1: Introducción a la Biología
cencia/mmcc/docs/temageneticos.p df /algoritmo-genetico
UNIDAD 2 MODELO DE DATOS.
SISTEMA ROBÓTICO MÓVIL AUTÓNOMO COOPERATIVO PARA MAPEO 2D DE OBSTÁCULOS Y NIVELES DE TEMPERATURA EN UN AMBIENTE CONTROLADO Autor: Illanes Tibanlombo,
ALGORITMOS GENÉTICOS DE OPTIMIZACIÓN MULTIOBJETIVO.
Tema 8. Estructuras de decisión. Clases 1 y 2.
Estrategias de Búsquedas y Uso de Bases de Datos
INSTITUTO TECNOLOGICO DE VERACRUZ
Transcripción de la presentación:

Computación Evolutiva: un repaso a las técnicas más utilizadas y su aplicación en MASS. Carlos Cervigón

Contenidos Orígenes y antecedentes biológicos Estructura general de un algoritmo evolutivo AE Modelos sobre el esquema general Algoritmo genético simple Mejoras y alternativas al AGS Programación genética Programación automática. Arte Evolutivo Extensiones de un AE Algoritmos Evolutivos Multiobjetivo Algoritmos Evolutivos Paralelos Algoritmos Evolutivos Meméticos, híbridos Algoritmos Evolutivos

Contenidos Vida artificial Inteligencia colectiva: Optimización basada en colonias de hormigas ACO Optimización basada en partículas PSO EC (Evolutionary Computation) y MASS (Multi-Agent System and Simulaton) Métodos de computación evolutiva aplicados a la simulación con sistemas multi-agente Ejemplos ECOMASS Algoritmos Evolutivos

* Purposive Multi-Agent Systems * What is an Agent ? External Definition : a real or virtual entity that evolves in an environment, that is able to perceive this environment, that is able to act in this environment, that is able to communicate with other agents, and that exhibits an autonomous behaviour autonomous agents, robots the autonomy principle * Purposive Multi-Agent Systems Yves DEMAZEAU Algoritmos Evolutivos

Orígenes Los Algoritmos Evolutivos recogen un conjunto de modelos basados en la evolución de los seres vivos. Inspirados en la Naturaleza. Basados en la teoría de la evolución de Darwin: cambio adaptativo de las especies por el principio de la selección natural Se favorece la supervivencia y evolución de aquellas especies que están mejor adaptadas a las condiciones de su entorno. Algoritmos Evolutivos

Antecedentes biológicos Cromosoma : cadena de ADN que se encuentra en el núcleo de las células Gen: sección de ADN Alelo es cada una de las formas del gen Algoritmos Evolutivos

Estructura de un algoritmo evolutivo Un AE trabaja con una población de individuos, que representan soluciones candidatas a un problema. Esta población se somete a ciertas transformaciones y a un proceso de selección, que favorece a los mejores, según su aptitud. En la población tiene que haber diversidad. Cada ciclo de transformación y selección constituye una generación. Se espera que después de cierto número de generaciones el mejor individuo de la población esté cerca de la solución buscada. Algoritmos Evolutivos

Estructura de un algoritmo evolutivo Población inicial Selección Cruce Mutación Algoritmos Evolutivos

Esquema general Algoritmos Evolutivos

Esquema Algoritmo Genético Simple Inicializar aleatoriamente una población P con soluciones candidatas Evaluar cada individuo de P Mientras no se cumpla condición de parada 1. Seleccionar progenitores S de P 2. Recombinar progenitores seleccionados obteniendo descendencia D 3. Mutar descendencia D 4. Evaluar nuevos candidatos ¿Selección = Competencia ? ¿Recombinación = Cooperación ? Algoritmos Evolutivos

Modelos sobre el esquema general Algoritmos Genéticos: Población de individuos como cadenas binarias. Estrategias Evolutivas: Población de individuos como valores con codificación real Programas Evolutivos: Población de individuos representados mediante estructuras de datos Programas Genéticos: Población de individuos como programas o expresiones Algoritmos Evolutivos

Modelos sobre el esquema general De Jong dice que estas variantes son realmente instancias concretas de un Sistema Evolutivo General que incluye: Una o más poblaciones de individuos compitiendo por recursos limitados. Poblaciones cambiantes por el nacimiento y muerte de individuos El concepto de fitness (aptitud) que refleja la capacidad de un individuo de sobrevivir y reproducirse El concepto de herencia modificada: los descendientes se parecen a sus padres pero no son idénticos Algoritmos Evolutivos

Aspectos implicados Búsqueda Optimización: El objetivo es encontrar un conjunto de parámetros tales que maximicen o minimicen cierto criterio de calidad. Optimización Numérica Optimización Combinatoria Algoritmos Evolutivos

AG simple: operadores genéticos 23/04/2019 AG simple: operadores genéticos Hacen evolucionar a la población y permiten la convergencia Se aplican con una determinada probabilidad Selección : Ruleta, Torneo, Ranking … Cruce: Un punto, Varios … Mutación: Fija , Variable … Parámetros típicos de un Algoritmo genético: Criterio de terminación, número máximo de generaciones Tamaño de la población Probabilidad de cruce, Pc Probabilidad de mutación, Pm Política de reemplazo . . . Algoritmos Evolutivos

Operadores genéticos Operador de cruce: actúa sobre parejas de individuos y los descendientes combinan características de los progenitores. Operador de mutación: operador básico de alteración y se aplica a algunos individuos realizando una pequeña modificación en alguno de sus genes o en el conjunto. Algoritmos Evolutivos

Otras mejoras y alternativas Asegurar diversidad de aptitudes e individuos Mecanismos de selección mejorados Desplazamiento o escalado de la aptitud Elitismo: se reservan los k mejores individuos de la generación anterior. Mecanismo fundamental para alcanzar el valor óptimo y acelerar la convergencia Inclusión de conocimiento específico del problema Codificación adaptada al problema Introducción de restricciones a las soluciones Construcción de nuevos operadores Creación de algoritmos híbridos con otras técnicas heurísticas Algoritmos Evolutivos

Codificación adaptada al problema Representación TSP: Enumeración de las ciudades en orden. Para un problema con nueve ciudades el recorrido 7  8  3 1  6  4  2  5 Se representa con el individuo: Los operadores de cruce son más complejos y son específicos de cada representación: PMX, OX, CX, ERX, ordinal. . . Intercambio, inserción, heurístico… 7 8 3 1 6 4 2 5 Algoritmos Evolutivos

Programación genética Hacer evolucionar programas o instrucciones representadas en forma de árbol Aplica un proceso evolutivo a una población de programas Los individuos se almacenan en un árbol los nodos representan funciones Las hojas representan símbolos terminales Todos los programas en la población inicial han de ser sintácticamente correctos (ejecutables) y los operadores genéticos (cruce, mutación, …) también han de producir programas sintácticamente correctos Algoritmos Evolutivos

Ejemplo : Representación Representamos cada individuo se representa mediante un árbol. Por ejemplo: Algoritmos Evolutivos

Operador cruce Algoritmos Evolutivos

Operador mutación La mutación consiste en generar un nuevo programa a partir de un único individuo. Mutación terminal Mutación funcional Mutación de árbol Algoritmos Evolutivos

Ejemplo: Apilamiento de bloques (Koza) El objetivo es encontrar un programa que a partir de una configuración inicial de bloques los coloque en el orden correcto en la pila. Objetivo: UNIVERSAL. Algoritmos Evolutivos

Ejemplo: Apilamiento de bloques (Koza) Terminales: CP (cima pila): BS (bloque superior correcto) SN (siguiente necesario) Funciones MP <x>(Mover a pila) MM <x>(Mover a mesa.) DU(acción, predicado) (“do until”) NOT(expresión1) EQ(expresión1, expresión2) Algoritmos Evolutivos

Ejemplo: Apilamiento de bloques (Koza) El algoritmo trabaja con árboles que representan programas construidos con los terminales y funciones descritos. El programa: (EQ(MP SN) (EQ (MP SN) (MP SN))) Mueve el siguiente bloque que se necesite a la pila tres veces: La aptitud de cada programa es número de casos de prueba en los que se produce el resultado correcto Algoritmos Evolutivos

Ejemplo: Apilamiento de bloques (Koza) (EQ (MM CP) SN) Mover la cima actual de la pila a la mesa, y ver si es igual al siguiente necesario. Aptitud 0. (MP BS) Mover a la pila el bloque más alto correcto de la pila. Aptitud 1 (EQ(MP SN) (EQ (MP SN) (MP SN))) Mover el siguiente bloque que se necesite a la pila tres veces. Aptitud 4 (EQ (DU (MM CP) (NOT CP)) (DU (MP SN) (NOT SN))) Vacía la pila sobre la mesa y después mueve el siguiente bloque que se necesita a la pila hasta que ya no se necesitan más bloques. Aptitud 166 Algoritmos Evolutivos

Ejemplo: Rastro de Santa Fe Se trata de buscar la estrategia de movimientos de una hormiga artificial capaz de encontrar toda la comida situada a lo largo de un rastro irregular. Algoritmos Evolutivos

Ejemplo: Rastro de Santa Fe Terminales: AVANZA (A) DERECHA (D) IZQUIERDA (I) Funciones SIC (a,b) PROG2 (a,b) PROG3 (a,b,c) (SIC (PROG3N (AVANZA IZQUIERDA AVANZA)) (PROG2N (IZQUIERDA AVANZA))) SIC PROG3 A PROG2 Algoritmos Evolutivos

Ejemplo: Rastro de Santa Fe Algoritmos Evolutivos

Arte Evolutivo La idea es utilizar algoritmos evolutivos para hacer evolucionar las imágenes, música, etc, sobre una base estética, en lugar de una función de aptitud estricta. La función de aptitud la proporciona el usuario que selecciona sus individuos "favoritos" para la reproducción. Evolving Assemblages, by Fernando Graça and Penousal Machado Algoritmos Evolutivos

Arte Evolutivo Se genera una población aleatoria de imágenes El usuario las evalúa y asigna un valor de aptitud La selección se realiza según la aptitud o “calidad” : las imágenes con los valores de aptitud más altos tienen mayores probabilidades de ser seleccionadas para reproducción El programa crea una nueva población de imágenes mediante el cruce y mutación de los individuos (imágenes) de la población actual Algoritmos Evolutivos

Arte Evolutivo Los individuos son imágenes y el genotipo es un árbol con funciones y terminales. Se utilizan funciones simples: operaciones aritméticas, trigonométricas, lógicas, etc. El conjunto de terminales serán variables y constantes La imágenes son representaciones gráficas de expresiones matemáticas. Cruce y mutaciones de la imágenes (árboles) Algoritmos Evolutivos

Arte Evolutivo La expresión en formato de árbol / + 2 x y f (x) = (x + y) / 2 en formato de árbol Gráfica 3-d de la expresión f (x) = (x + y) / 2 Imagen generada por la asignación de un valor de escala de grises a cada valor de f(x). / + 2 x y Algoritmos Evolutivos

Arte Evolutivo : ejemplos Algoritmos Evolutivos

Otras extensiones del algoritmo genético Algoritmos Evolutivos Multiobjetivo Algoritmos Evolutivos Paralelos Algoritmos meméticos, híbridos Algoritmos de Estimación de Distribuciones Algoritmos Evolutivos

Algoritmo Evolutivo Multiobjetivo Optimizar simultáneamente varias funciones El óptimo global ya no es inmediato: ¿Optimizar una función sacrificando el resto, la media de todas las funciones …? Óptimo de Pareto: una solución xX es un óptimo de Pareto cuando no existe ninguna solución mejor en ningún objetivo: soluciones no dominadas Algoritmos Evolutivos

Algoritmos evolutivos Multiobjetivo Algoritmos que no utilizan el concepto de dominancia Funciones agregativas lineales Algoritmos que sí utilizan el concepto de dominancia VEGA: selección proporcional según las funciones a optimizar MOGA (Multi-Objective Genetic Algorithm) NSGA-II (Elitist Non-Dominated Sorting Genetic Algorithm) SPEA, SPEA2, MOMGA, MOMGA-II, PAES. . . Aplicaciones: Planificación, empaquetado, diseño de circuitos, diseño de sistemas de control, detección de ataques en redes, procesamiento de imágenes, problemas de predicción, optimización de párametros en mercados financieros*, etc. * Multiobjective optimization of technical market indicators. Diego J. Bodas-Sagi, Pablo Fernández, José Ignacio Hidalgo, Francisco J. Soltero, José Luis Risco-Martín. Algoritmos Evolutivos

Algoritmos Evolutivos Paralelos 23/04/2019 Algoritmos Evolutivos Paralelos Paralelización Global (Misma estructura del AG) Ejecución de varios AGs en Paralelo Sólo la Evaluación en paralelo Grano Grueso (Islas) Subpoblaciones que evolucionan por separado (Cambia la estructura del AG) Grano Fino (AC) Híbrido (grano fino y grueso) Algoritmos Evolutivos

Grano grueso: Modelos de Islas Se divide la población en subpoblaciones mas pequeñas que evolucionan independientemente en cada procesador o isla. En cada procesador se lleva a cabo un Algoritmo Evolutivo Cada cierto número de generaciones (época) intercambian individuos entre las poblaciones: migraciones. Esto genera diversidad genética. Diferentes topologías que define como se intercambian individuos Anillo Maestro-esclavo Todos con todos Algoritmos Evolutivos

Grano fino: modelo celular Simula relaciones personales entre individuos de una misma localidad. Los individuos se disponen en una parrilla de dos dimensiones con un individuo en cada una de las posiciones de la rejilla. La evaluación se realiza simultáneamente para todos los individuos La selección, reproducción y cruce de forma local con un reducido número de vecinos. Con el tiempo se van formando grupos de individuos que son homogéneos genéticamente como resultado de la lenta difusión de individuos. aislamiento por distancia Algoritmos Evolutivos

MUCHAS GRACIAS