Algoritmos genéticos paralelos

Slides:



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

Definición En un sistema de base de datos distribuida, los datos se almacenan en varios computadores. Los computadores de un sistema distribuido se comunican.
Diseño y análisis de algoritmos
Multiprocesadores 3.1 Dominios de aplicación
Algoritmo GENETICO.
COMPETENCIAS Y METODOLOGÍA
Investigación de Operaciones
Base de Datos Distribuidas FUNDAMENTOS DE BASES DE DATOS DISTRIBUIDAS
PROGRAMACIÓN PARALELA Tema 5: Análisis de algoritmos paralelos
Investigación de Operaciones
Tecnologías Cliente / Servidor Capitulo III Richard Jiménez V. clienteserver.wordpress.com.
“Impulsando la Sociedad
Combinadores SK.
COMPONENTIZACIÓN DE ALGORITMOS GENETICOS Y SU IMPLEMENTACIÓN EN UNA PLATAFORMA ABIERTA PARA APRENDIZAJE COMPUTACIONAL.
Tema 3 Revisión de diversos métodos robustos aplicados en algunos problemas fotogramétricos.
Clase # 8: Análisis Conformacional (II)
UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
Tema II Unidad de memoria. 2 Unidad de memoria 2.1 Definiciones y conceptos básicos Localización Capacidad Unidad de transferencia
Algorítmo de Mapeo Directo
Definición Los Algoritmos Genéticos son métodos adaptativos que pueden usarse para resolver problemas de búsqueda y optimización. los Algoritmos Genéticos.
“En lugar de envidiar la naturaleza debemos emularla” Holland
Sistemas Inteligentes Algoritmos Geneticos
Población y Capacidad de Carga
Scheduling and Mapping Introducción Marco de referencia Módulos independientes Tareas con precedencia sin costo Precedencia de tareas y retardos en la.
Optimización matemática Algoritmos Genéticos – Parte 2 Por: Antonio H
Algoritmos Genéticos (AG) Integrantes: Rubén Levineri Miguel Rozas Juan Yañez Faltan autores y bibliografía.
PROCESAMIENTO PARALELO.  Organización lógica ◦ Visión que tiene el programados  Capacidad de expresar tareas paralelas (Estructura de control)  Método.
Alumno: Jorge Ahumada A. Profesor Guía : Nelson Baloian T.
Temario 1. Medio ambiente y contaminación 1.1 Temas medioambientales
Capítulo 4 BUSQUEDA INFORMADA.
PROGRAMACIÓN PARALELA Tema 4: Metodología de la programación
Instituto Tecnológico de La Paz Ing. Fernando Ortiz Ahumada.
1 Paralelización del algoritmo de segmentación CM Martíno García Hernández UAM-I Noviembre 2007.
(Organización y Manejo de Archivos)
Propiedades de la población
COMPUTACION EVOLUTIVA Introducción. Computación Evolutiva: Computación Evolutiva: Enfoque alternativo para abordar problemas complejos de: Enfoque alternativo.
Algoritmos de Búsqueda Simulated Annealing Es un algoritmo de Hill­Climmbing estocástico. Inspirado en el proceso físico (Termodinámica) de enfriamiento.
Universidad de Panamá Escuela de Biología Departamento de genética Genética de Poblaciones Integrantes: Castellanos, Rebeca Robinson, Anine Robles, Jazmin.
MÉTODO DE PIXELES DE BORDE
Backtracking 1. Método general. 2. Análisis de tiempos de ejecución.
TEMA 10. SISTEMAS OPERATIVOS DISTRIBUIDOS
Análisis Cuantitativo de Datos (Básico)
Capacidad de Proceso.
Algoritmos genéticos Introducción Esquema básico Codificación
Sistema De Apoyo A La Asignación De Horarios De Clases Para El Colegio Piamarta UCINFSantiago, 18 de Noviembre 2006 Darío Díaz Videla iii. Teoría Enfoques.
Análisis y Diseño de Algoritmos
Clase 12 Computación Evolutiva
Una introducción a la computación evolutiva
Tema 5: Numéricas en varios grupos
Trabajo de Graduación “SISTEMA DE PLANEACIÓN AVANZADO (APS) PARA DETERMINAR LA UBICACIÓN ÓPTIMA DE CAPACITORES EN UNA RED DE DISTRIBUCIÓN DE ENERGÍA ELÉCTRICA.
Propuesta del algoritmo
Mary C. Jarur M. ww.udec.cl/~mjarur
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
Investigación Algorítmica ChasquiSoft. Integrantes Contreras Ames, Roy Carlos Gaspar Calle, Ronald Urlich Ames, Rafael Paredes.
EVOLUCIÓN DE UNA POBLACIÓN DE CURVAS EN EL TIEMPO Y EN EL ESPACIO Francisco Antonio González Salas Luis Valencia Cabrera.
INSTITUTO TECNOLÓGICO DE TIJUANA Maestría en Ciencias en Ciencias De La Computación Tema: Operadores genéticos Alumnas: Leticia Mendoza Reyes. Rosalinda.
Investigación Algorítmica ChasquiSoft. Integrantes Contreras Ames, Roy Carlos Gaspar Calle, Ronald Urlich Ames, Rafael Paredes.
ALGORITMOS GENETICOS.
Taller: Inteligencia Computacional
BASE DE DATOS DISTRIBUIDAS

MUESTREO : Generalidades
NORMA INTERNACIONAL DE AUDITORÍA 530
Investigación Algorítmica ChasquiSoft. Integrantes Contreras Ames, Roy Carlos Gaspar Calle, Ronald Urlich Ames, Rafael Paredes.
ANTECEDENTES “Teoría de la Generación espontanea”
PROCESADOR.- El procesador es el cerebro del sistema, encargado de procesar toda la información. Básicamente, es el "cerebro" de la computadora. Prácticamente,
SISTEMAS DISTRIBUIDOS II DESEMPEÑO. DESEMPEÑO Cuando se ejecuta una aplicación en un sistema distribuido no debe parecer peor que su ejecución en un único.
Fundamentos de Computación
Algoritmo Genético para la solución del problema SAT René Clemente Juárez Angel Felipe Lara Valladares Junio 2012.
Transcripción de la presentación:

Algoritmos genéticos paralelos

Contenidos Introducción a los algoritmos genéticos Paralelización de algoritmos genéticos

Introducción “algoritmo genético” algoritmos inspirados en los mecanismos de adaptación de los seres vivos Aplicación problemas de búsqueda y optimización Búsqueda beam  población de individuos Individuo: posible solución a un problema Cada individuo presenta un nivel de adaptación al entorno Los mejores adaptados tienen más probabilidades de reproducirse

Algoritmo general Basado en tres operaciones: selección, cruce y mutación Pasos: 1. Crea una población inicial 2. Evalúa la adaptación de los individuos 3. Selecciona un subconjunto de la población 4. Produce una nueva generación a partir de ese subconjunto usando cruce y mutación 5. Si no se cumple la condición de terminación volvemos al paso 2

Representación de individuos (I) Basado en el concepto de cromosoma Inicialmente cadena de bits Actualmente cadenas de enteros, números en punto flotante, etc...

Representación de individuos (II) Ejemplo: encontrar el máximo de la función: f(x,y,z) = -x2 + 1000000x –y2 –40000y –z2 En un dominio de –1000000 y 1000000 Individuo: x = 262408  001000000000100001000 y = 16544  000000100000010100000 z = -1032  100000000010000001000 001000000000100001000000000100000010100000100000000010000001000

Función de adaptación Indica la bondad de la solución Los más adaptados sobreviven Dependiente del problema Ejemplo: valor de la función

Selección de individuos (I) Los más adaptados tienen más probabilidades de ser seleccionados Cuidado con problema de la “presión selectiva” Métodos: Selección por torneo Selección basada en la ruleta Selección por ranking

Selección de individuos (II) Selección por torneo Seleccionar k individuos aleatoriamente Escoger el más adaptado de los k Selección basada en la ruleta Pr(hi) = Adaptación(hi) /  Adaptación (hk) Selección por ranking Ordenar todas los individuos según su adaptación Escoger con probabilidad proporcional al ranking

Operadores (I) Dos tipos de operadores: Cruce: mezcla el cromosoma de los dos individuos Mutación: cambio aleatorio en el cromosoma de un individuo Comprobar adecuación del nuevo individuo  solución válida

Operadores (II)

Operadores (III) Ejemplo cruce: Individuo1: x = 262408  001000000000100001000 y = 16544  000000100000010100000 z = -1032  100000000010000001000 001000000000100001000000000100000010100000100000000010000001000 Individuo2: x = -3136  100000000110001000000 y = 384  000000000000110000000 z = -1162  100000000010010001010 100000000110001000000000000000000110000000100000000010010001010

Operadores (IV) Máscara de cruce: Hijo1: Hijo2: x = 262408 y = 384 111111111111111111111000000000000000000000000000000000000000000 Hijo1: 001000000000100001000000000000000110000000100000000010010001010 x = 262408 y = 384 z = -1162 Hijo2: 100000000110001000000000000100000010100000100000000010000001000 x = -3136 y = 16544 z = -1032

Condición de terminación Posibilidades Número fijo de iteraciones El mejor individuo tiene una adaptación lo suficientemente buena (umbral de adaptación) Todos los individuos son el mismo

Variaciones Permitir que algunos de los individuos más adaptados de esta generación sean parte de la siguiente generación Crear nuevos individuos aleatoriamente en algunas generaciones Permitir que el tamaño de la población varíe de generación en generación

Algoritmo concreto (I) Características: Selección de los individuos: basada en la ruleta Condición de terminación: umbral de adaptación Tamaño de la población igual en cada generación Algunos de los miembros más adaptados forman parte de la siguiente generación

Algoritmo concreto (II)

Teorema del esquema Justifica teóricamente la convergencia del proceso de búsqueda Esquema: cadena conteniendo 0, 1 o * (cualquiera de los dos) Ejemplo de esquema: 10**0* Instancias de ese esquema: 101100, 100000, .... Enunciado: “Los esquemas pequeños de bajo orden arriba del promedio reciben un incremento exponencial de representantes en las siguientes generaciones de un algoritmo genético”.

Algoritmos genéticos paralelos Podemos seguir tres enfoques distintos a la hora de paralelizar un algoritmo genético: Cada procesador opera independientemente en una población aislada de individuos, compartiendo los “mejores” con los otros procesadores mediante el operador migración. Se suelen llamar algoritmos de grano grueso. Cada procesador hace una parte de cada paso del algoritmo (selección, cruce y mutación) sobre la población común. Llamados algoritmos de grano fino. Utilizar una implementación híbrida que sea combinación de las dos anteriores.

Subplobaciones aisladas Cada procesador genera de forma independiente su propia subpoblación inicial de individuos. Después cada procesador lleva a cabo k generaciones de individuos, para lo que debe: Evaluar la capacidad. Seleccionar los padres de la siguiente generación. Realizar los cálculos de cruce y mutación en su subpoblación. Después de k generaciones los procesadores comparten sus mejores individuos con los otros procesadores.

Subpoblaciones aisladas. Operador de migración Debido a la incorporación de la migración, ahora los cambios en una población no sólo proceden del cruce y la mutación, sino también de la introducción de nuevas especies. El operador de migración es responsable de varias tareas necesarias para realizar el intercambio de individuos: Seleccionar los emigrantes. Enviar los emigrantes. Recibir los inmigrantes. Integrar los inmigrantes.

Subpoblaciones aisladas. Operador de migración El envío y recepción de individuos es sencillo en un entorno de paso de mensajes. Las tareas de selección e integración pueden causar una convergencia más rápida del algoritmo si se realizan de forma adecuada: Podríamos pensar que enviar los mejores individuos de una subpoblación a otra subpoblación, en la que se eliminarían los peores, es una buena estrategia. Sin embargo, esto puede llevar a alcanzar un óptimo local, y no un óptimo global. La migración introduce una sobrecarga de comunicación. Debemos por tanto considerar la frecuencia y el volumen de la información comunicada para que la comunicación no domine a la computación.

Subpoblaciones aisladas. Modelos de migración Los dos enfoques de migración más populares son: El modelo de la isla. El modelo de la ‘pasarela’ o ‘trampolín’ (stepping stone).

Subpoblaciones aisladas. Modelos de migración En el modelo isla, se permite enviar los individuos a cualquier subpoblación:

Subpoblaciones aisladas. Modelos de migración En el modelo de la ‘pasarela’ (stepping stone), la migración está limitada, ya que sólo se permite que los emigrantes se desplacen a las subpoblaciones vecinas

Subpoblaciones aisladas. Modelos de migración La principal ventaja de ambos enfoques es que son altamente paralelos: Usando p procesadores, cada uno operando independientemente en (tamaño de la población/p) subpoblaciones, el speed up potencial en la computación de k generaciones podría ser de un factor p. En realidad el speed up es menor ya que hay que tener en cuenta el envío de los mejores individuos. Bajo este punto de vista, el modelo stepping stone es mejor ya que reduce las comunicaciones. Las desventajas son: el relativo aislamiento de las subpoblaciones podría hacer que se alcanzara un óptimo local. el reducido número de individuos que conforman cada subpoblación incrementa el número de generaciones necesarias para alcanzar la convergencia.

Subpoblaciones aisladas. Implementación paralela set generation_no to 0; initialize Population(generation_no); evaluate fitness of Population(generation_no); while (not termination_condition) { generation_no++; select Parents(generation_no) from Population(generation_no – 1); apply crossover to Parents(generation_no) to produce Offspring(generation_no); apply mutation to Offspring(generation_no) to get Population(generation_no); apply migration to Population(generation_no); evaluate Population(generation_no); }

Paralelizar una población común En este caso se implementan los operadores genéticos (selección, cruce y mutación) en paralelo en la población global. Si utilizamos selección mediante torneo los procesadores pueden operar sobre pares independientes de individuos. Cada procesador podría trabajar independientemente en un subconjunto de los individuos seleccionados para desarrollar las operaciones. De nuevo las comunicaciones pueden limitar la mejora alcanzada.

Implementación híbrida La forma de combinar las estrategias de subpoblaciones aisladas y una única población es tener una jerarquía: Los niveles más bajos consisten en algoritmos genéticos paralelos de grano fino que manipulan las subpoblaciones. Un nivel más alto implementa un algoritmo de grano grueso que distribuye las subpoblaciones a los hilos de nivel más bajo y controla la migración. Cuatro estrategias de paralelización: Centralizada. Semi-distribuida. Distribuida. Totalmente distribuida.

Implementación híbrida En el método centralizado, el maestro envía algunos individuos a los procesadores esclavos, los cuales calculan un número conocido de generaciones y envían sus resultados de vuelta al maestro, que ejecuta el algoritmo de cruce para la población completa. El método semi-distribuido consiste en clusters de procesadores trabajando con el método centralizado e intercambiando soluciones entre ellos.

Implementación híbrida El método distribuido es la estrategia de grano grueso tradicional, donde cada procesador tiene su propia subpoblación e intercambia los mejores individuos cada cierto tiempo. La implementación totalmente distribuida consiste en el método distribuido sin ningún intercambio de individuos, cada procesador ejecutando su propio algoritmo secuencial sobre una subpoblación sin comunicación.

Implementación híbrida. Resultados experimentales Todas las estrategias presentan resultados similares en términos de calidad de la solución, presentando los métodos centralizado y semi-distribuido resultados ligeramente mejores. El speedup alcanzado por la estrategia totalmente distribuida es casi linear, mientras que las implementaciones centralizada y semi-distribuida muestran speedups más pequeños, debido al cuello de botella que supone el proceso maestro.

Sistemas de memoria compartida Cada procesador tiene acceso a la población y puede leer/modificar los individuos. Asignando individuos a procesadores específicos minimizamos la discusión por acceder a memoria que requeriría la sincronización, con lo que se evitan los efectos de la serialización: Todavía habrá serialización cuando se realice la sincronización entre generaciones. Importante: Las comunicaciones entre procesadores ocurren a la velocidad de acceso a memoria, por lo que el tiempo de resolución es menor que con un enfoque distribuido.

Sistemas distribuidos Si todas las estaciones de trabajo están en la misma subred, habrá competencia por los recursos de red. Solución: Minimizar la intercomunicación entre subpoblaciones mediante el uso de subpoblaciones aisladas. Distribuir los procesadores en subredes diferentes. Interconectar los procesadores mediante un anillo bi o tridimensional o mediante un toro: corresponde al modelo stepping stone de subpoblaciones aisladas.

Bibliografía Barry Wilkinson, Michael Allen: Parallel programming. Prentice-Hall. 1999. Van-dat Cung, Simone L.Artins, Celso C.Ribeiro, Catherine Roucairol: Strategies for the parallel implementation of metaheuristics. 2001.