Algoritmos genticos paralelos Contenidos Introduccin a los algoritmos
- Slides: 35
Algoritmos genéticos paralelos
Contenidos ¬ Introducción a los algoritmos genéticos ¬ Paralelización de algoritmos genéticos 2
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 3
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 4
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. . . 5
Representación de individuos (II) ¬ Ejemplo: encontrar el máximo de la función: f(x, y, z) = -x 2 + 1000000 x –y 2 – 40000 y –z 2 En un dominio de – 1000000 y 1000000 ¬ Individuo: – x = 262408 001000001000 – y = 16544 00000010100000 – z = -1032 10000010000001000 – 00100000000010000001010000000001000 6
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 7
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 8
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 9
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 10
Operadores (II) 11
Operadores (III) ¬ Ejemplo cruce: Individuo 1: – x = 262408 001000001000 – y = 16544 00000010100000 – z = -1032 10000010000001000 – 00100000000010000001010000000001000 Individuo 2: – x = -3136 1000011000000 – y = 384 000000110000000 – z = -1162 1000001001010 – 100001100000000000110000000001001010 12
Operadores (IV) ¬ Máscara de cruce: – 11111111111000000000000000000000 ¬ Hijo 1: – 001000001000000000110000000001001010 – x = 262408 – y = 384 – z = -1162 ¬ Hijo 2: – 10000110000000010000001010000000001000 – x = -3136 – y = 16544 – z = -1032 13
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 14
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 15
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 16
Algoritmo concreto (II) 17
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 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”. 18
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. 19
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. 20
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. 21
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. 22
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). 23
Subpoblaciones aisladas. Modelos de migración ¬ En el modelo isla, se permite enviar los individuos a cualquier subpoblación: 24
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 25
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. 26
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); } 27
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. 28
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. 29
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. 30
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. 31
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. 32
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. 33
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. 34
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. 35
- Grafo dirigido
- Metodologia pcam
- Introduccin
- Introduccin
- Introduccin
- Introducción de las enzimas
- Introduccin
- Induccin
- Los contenidos de aprendizaje
- Todos los paralelos
- Objetivos de un texto paralelo
- Finito algoritmo
- Estrutura para
- Actitudinal procedimental y conceptual
- Contenidos actitudinales ejemplos
- Objetivos procedimentales ejemplos
- Enfoque pedagogico de conocimiento del medio primaria
- Contenidos procedimentales y actitudinales
- Integración y reelaboración de contenidos digitales
- Secuenciación de contenidos
- Repaso de contenidos
- Contenidos desarrollados
- Contenidos interdisciplinares
- Esquema del texto expositivo
- Introduccion de un trabajo
- Espacio vectorial
- Produto vetorial propriedades
- Paralelo e meridiano
- Plano concorrente
- Vectores fisica
- Teorema dos eixos paralelos
- Zonas climaticas planisferio
- Vetores antiparalelos
- Paralelos chão
- Inércia exemplos
- Casca cilindrica