Algoritmos genticos paralelos Contenidos Introduccin a los algoritmos

  • Slides: 35
Download presentation
Algoritmos genéticos paralelos

Algoritmos genéticos paralelos

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

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

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.

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

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,

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

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

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 –

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

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 (II) 11

Operadores (III) ¬ Ejemplo cruce: Individuo 1: – x = 262408 001000001000 – y

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 –

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

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

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

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

Algoritmo concreto (II) 17

Teorema del esquema ¬ Justifica teóricamente la convergencia del proceso de búsqueda ¬ Esquema:

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

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

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

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

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:

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

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

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

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

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,

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

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

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

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

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

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,

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

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