La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Algoritmos genéticos paralelos

Presentaciones similares


Presentación del tema: "Algoritmos genéticos paralelos"— Transcripción de la presentación:

1 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

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

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

6 Representación de individuos (II)
Ejemplo: encontrar el máximo de la función: f(x,y,z) = -x x –y2 –40000y –z2 En un dominio de – y Individuo: x =  y =  z = 

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

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

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

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

11 Operadores (II)

12 Operadores (III) Ejemplo cruce: Individuo1:
x =  y =  z =  Individuo2: x =  y =  z = 

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

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

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

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

17 Algoritmo concreto (II)

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

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.

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.

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.

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.

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

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

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

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.

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

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.

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.

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.

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.

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.

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.

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.

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


Descargar ppt "Algoritmos genéticos paralelos"

Presentaciones similares


Anuncios Google