Algoritmos genéticos paralelos. 2 Contenidos Introducción a los algoritmos genéticos ...

35
Algoritmos genéticos paralelos

Transcript of Algoritmos genéticos paralelos. 2 Contenidos Introducción a los algoritmos genéticos ...

Page 1: Algoritmos genéticos paralelos. 2 Contenidos  Introducción a los algoritmos genéticos  Paralelización de algoritmos genéticos.

Algoritmos genéticos paralelos

Page 2: Algoritmos genéticos paralelos. 2 Contenidos  Introducción a los algoritmos genéticos  Paralelización de algoritmos genéticos.

2

Contenidos

Introducción a los algoritmos genéticosParalelización de algoritmos genéticos

Page 3: Algoritmos genéticos paralelos. 2 Contenidos  Introducción a los algoritmos genéticos  Paralelización de algoritmos genéticos.

3

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

Page 4: Algoritmos genéticos paralelos. 2 Contenidos  Introducción a los algoritmos genéticos  Paralelización de algoritmos genéticos.

4

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

Page 5: Algoritmos genéticos paralelos. 2 Contenidos  Introducción a los algoritmos genéticos  Paralelización de algoritmos genéticos.

5

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

Page 6: Algoritmos genéticos paralelos. 2 Contenidos  Introducción a los algoritmos genéticos  Paralelización de algoritmos genéticos.

6

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

Page 7: Algoritmos genéticos paralelos. 2 Contenidos  Introducción a los algoritmos genéticos  Paralelización de algoritmos genéticos.

7

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

Page 8: Algoritmos genéticos paralelos. 2 Contenidos  Introducción a los algoritmos genéticos  Paralelización de algoritmos genéticos.

8

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

Page 9: Algoritmos genéticos paralelos. 2 Contenidos  Introducción a los algoritmos genéticos  Paralelización de algoritmos genéticos.

9

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

Page 10: Algoritmos genéticos paralelos. 2 Contenidos  Introducción a los algoritmos genéticos  Paralelización de algoritmos genéticos.

10

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

Page 11: Algoritmos genéticos paralelos. 2 Contenidos  Introducción a los algoritmos genéticos  Paralelización de algoritmos genéticos.

11

Operadores (II)

Page 12: Algoritmos genéticos paralelos. 2 Contenidos  Introducción a los algoritmos genéticos  Paralelización de algoritmos genéticos.

12

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

Page 13: Algoritmos genéticos paralelos. 2 Contenidos  Introducción a los algoritmos genéticos  Paralelización de algoritmos genéticos.

13

Operadores (IV)

Máscara de cruce:– 111111111111111111111000000000000000000000000000000000000000000

Hijo1:– 001000000000100001000000000000000110000000100000000010010001010

– x = 262408– y = 384– z = -1162

Hijo2:– 100000000110001000000000000100000010100000100000000010000001000

– x = -3136 – y = 16544 – z = -1032

Page 14: Algoritmos genéticos paralelos. 2 Contenidos  Introducción a los algoritmos genéticos  Paralelización de algoritmos genéticos.

14

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

Page 15: Algoritmos genéticos paralelos. 2 Contenidos  Introducción a los algoritmos genéticos  Paralelización de algoritmos genéticos.

15

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

Page 16: Algoritmos genéticos paralelos. 2 Contenidos  Introducción a los algoritmos genéticos  Paralelización de algoritmos genéticos.

16

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

Page 17: Algoritmos genéticos paralelos. 2 Contenidos  Introducción a los algoritmos genéticos  Paralelización de algoritmos genéticos.

17

Algoritmo concreto (II)

Page 18: Algoritmos genéticos paralelos. 2 Contenidos  Introducción a los algoritmos genéticos  Paralelización de algoritmos genéticos.

18

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

Page 19: Algoritmos genéticos paralelos. 2 Contenidos  Introducción a los algoritmos genéticos  Paralelización de algoritmos genéticos.

19

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.

Page 20: Algoritmos genéticos paralelos. 2 Contenidos  Introducción a los algoritmos genéticos  Paralelización de algoritmos genéticos.

20

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.

Page 21: Algoritmos genéticos paralelos. 2 Contenidos  Introducción a los algoritmos genéticos  Paralelización de algoritmos genéticos.

21

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.

Page 22: Algoritmos genéticos paralelos. 2 Contenidos  Introducción a los algoritmos genéticos  Paralelización de algoritmos genéticos.

22

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.

Page 23: Algoritmos genéticos paralelos. 2 Contenidos  Introducción a los algoritmos genéticos  Paralelización de algoritmos genéticos.

23

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

Page 24: Algoritmos genéticos paralelos. 2 Contenidos  Introducción a los algoritmos genéticos  Paralelización de algoritmos genéticos.

24

Subpoblaciones aisladas. Modelos de migración

En el modelo isla, se permite enviar los individuos a cualquier subpoblación:

Page 25: Algoritmos genéticos paralelos. 2 Contenidos  Introducción a los algoritmos genéticos  Paralelización de algoritmos genéticos.

25

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

Page 26: Algoritmos genéticos paralelos. 2 Contenidos  Introducción a los algoritmos genéticos  Paralelización de algoritmos genéticos.

26

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.

Page 27: Algoritmos genéticos paralelos. 2 Contenidos  Introducción a los algoritmos genéticos  Paralelización de algoritmos genéticos.

27

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

}

Page 28: Algoritmos genéticos paralelos. 2 Contenidos  Introducción a los algoritmos genéticos  Paralelización de algoritmos genéticos.

28

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.

Page 29: Algoritmos genéticos paralelos. 2 Contenidos  Introducción a los algoritmos genéticos  Paralelización de algoritmos genéticos.

29

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.

Page 30: Algoritmos genéticos paralelos. 2 Contenidos  Introducción a los algoritmos genéticos  Paralelización de algoritmos genéticos.

30

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.

Page 31: Algoritmos genéticos paralelos. 2 Contenidos  Introducción a los algoritmos genéticos  Paralelización de algoritmos genéticos.

31

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.

Page 32: Algoritmos genéticos paralelos. 2 Contenidos  Introducción a los algoritmos genéticos  Paralelización de algoritmos genéticos.

32

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.

Page 33: Algoritmos genéticos paralelos. 2 Contenidos  Introducción a los algoritmos genéticos  Paralelización de algoritmos genéticos.

33

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.

Page 34: Algoritmos genéticos paralelos. 2 Contenidos  Introducción a los algoritmos genéticos  Paralelización de algoritmos genéticos.

34

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.

Page 35: Algoritmos genéticos paralelos. 2 Contenidos  Introducción a los algoritmos genéticos  Paralelización de algoritmos genéticos.

35

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.