algoritmos genéticos paralelos. 2 contenidos introducción a los algoritmos genéticos ...
Post on 29-Jan-2016
237 Views
Preview:
TRANSCRIPT
Algoritmos genéticos paralelos
2
Contenidos
Introducción a los algoritmos genéticosParalelizació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) = -x2 + 1000000x –y2 –40000y –z2
En un dominio de –1000000 y 1000000 Individuo:
– x = 262408 001000000000100001000
– y = 16544 000000100000010100000
– z = -1032 100000000010000001000– 001000000000100001000000000100000010100000100000000010000001000
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 = 262408 001000000000100001000
– y = 16544 000000100000010100000
– z = -1032 100000000010000001000– 001000000000100001000000000100000010100000100000000010000001000
Individuo2:
– x = -3136 100000000110001000000
– y = 384 000000000000110000000
– z = -1162 100000000010010001010– 100000000110001000000000000000000110000000100000000010010001010
13
Operadores (IV)
Máscara de cruce:– 111111111111111111111000000000000000000000000000000000000000000
Hijo1:– 001000000000100001000000000000000110000000100000000010010001010
– x = 262408– y = 384– z = -1162
Hijo2:– 100000000110001000000000000100000010100000100000000010000001000
– 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: 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”.
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. 1999.
Van-dat Cung, Simone L.Artins, Celso C.Ribeiro, Catherine Roucairol: Strategies for the parallel implementation of metaheuristics. 2001.
top related