2. Algoritmos Genéticos (AGs)
2.2. Algoritmos genéticos Paralelos
2.2.3. AGPs de Grano grueso
Las características fundamentales de un AGP de grano grueso son: la utilización de varias subpoblaciones relativamente grandes, y la migración o intercambio de individuos entre las distintas subpoblaciones [80, 81].
Éste es el tipo de paralelización más empleado, debido principalmente a las siguientes ventajas:
• La forma de implementar un AGP de grano grueso a partir de una versión secuencial es muy sencilla: Únicamente hay que tomar un conjunto de AGs secuenciales , ponerlos en varios procesadores y, cada cierto número de generaciones, intercambiar individuos. La mayoría del código de la versión secuencial queda exactamente igual después de paralelizar.
• La presencia de los computadores paralelos de grano grueso es habitual en l mayoría de los centros de investigación, y allí donde no están disponibles son fácilmente simulables mediante software como MPI (Message Passing Interface) o PVM (Parallel Virtual Machine).
Los AGPs de grano grueso también suelen llamarse AGs distribuidos, debido a que se suelen implementar sobre máquinas de memoria distribuida. En ocasiones se les llama
AGP de "isla" (island model), ya que consisten en un modelo de poblaciones en el que las subpoblaciones están relativamente aisladas. En la siguiente figura se incluye un diagrama en forma de grafo de un AGP de grano grueso.
En él se representan las poblaciones por nodos, y las aristas representan líneas de intercambio de individuos al realizar la migración:
En principio, podría parecer que, dado que utilizamos subpoblaciones de menor tamaño que en un AG secuencial, un AGP de grano grueso debería converger en un número menor de generaciones. Sin embargo, aunque es cierto que con una población menor un AG converge más rápido, también es cierto que la calidad de la solución no tiene porqué ser la misma si el problema tratado es complejo.
Los AGP de grano grueso simulan el aislamiento geográfico de las diferentes civilizaciones, y el intercambio esporádico de características que se realiza con la emigración.
A continuación se puede ver un esquema en pseudocódigo de un AGP de grano grueso, en el que la frecuencia es el número de generaciones que pasa entre dos intercambios de individuos:
inicializar P subpoblaciones con N individuos cada una Numero de generacion = 1
while (no se cumpla la condicion de fin) do for (cada subpoblacion) do in parallel
evaluar y seleccionar individuos por su funcion de coste if (Numero de generacion mod frecuencia) = 0 then
enviar K<N mejores individuos a poblacion vecina recibir K mejores individuos de poblacion vecina reemplazar K individuos de la poblacion
end if
producir nuevos individuos aplicar operador de mutacion end parallel do
Numero de generacion++ end while
Como se indicó anteriormente, hay tres parámetros importantes que influyen en la eficiencia de un AGP:
• La topología que define la comunicación entre las subpoblaciones.
• La proporción de intercambio, es decir el número de individuos a intercambiar.
• Los intervalos de migración, es decir la periodicidad con la que se intercambian los individuos.
En los siguientes apartados analizaremos la influencia de cada uno de estos factores en el funcionamiento de un AGP de grano grueso, y las distintas alternativas que se presentan.
Topologías de comunicación
La topología es un factor fundamental en el rendimiento de un AGP, puesto que determina la velocidad con que una buena solución se propaga de una subpoblación al resto.
Si la topología tiene muchas conexiones entre las subpoblaciones, las buenas soluciones se transmiten rápidamente de una población a otra. Es evidente que también lo harán las malas soluciones, pero precisamente el proceso de selección - gobernado por la función de coste - controla este esparcimiento, limitándolo a la pura probabilidad de selección que pueda tener una mala solución.
Por el contrario, si las poblaciones tienen poca comunicación entre ellas, las soluciones se extienden más lentamente, permitiendo la aparición de varias soluciones, así como una evolución más aislada de cada grupo. Estas distintas soluciones se pueden utilizar posteriormente para generar individuos que superen a los obtenidos mediante una convergencia más homogénea.
Otro factor en el que interviene la topología es el coste de las comunicaciones. Aunque normalmente no se realizan tantos intercambios como para ralentizar el AGP, es necesario buscar un compromiso entre la topología elegida y el costo de las comunicaciones, para no perder las ventajas obtenidas sobre el rendimiento con la paralelización.
La forma general es utilizar una topología estática que se mantiene constante a lo largo de toda la ejecución del algoritmo. Muchas de estas topologías estáticas aprovechan la propia topología de la red de comunicaciones entre procesadores.
Otra opción es la implementación de una topología dinámica. En este tipo, el intercambio entre subpoblaciones se realiza entre procesadores distintos cada vez, en función de un criterio que suponga una mejora para el algoritmo. Uno de los factores que más se tiene en cuenta para este tipo de AGP es la diversidad de la población, es decir, se trata de favorecer el intercambio con aquellas subpoblaciones con un mayor número de individuos iguales.
Tres de las topologías más usadas en la implementación del modelo de islas son:
• Topología en anillo: las poblaciones están distribuidas en un anillo, y sólo hay intercambio de individuos entre vecinos.
• Topología maestro-esclavo: todos los procesadores esclavos intercambian sus mejores individuos con el maestro.
M E
• Comunicación todos con todos (all-to-all): todos los procesadores intercambian información con cada uno de los otros.
Proporción y frecuencia de intercambio
Tanto la frecuencia como la proporción de intercambio son muy importantes para la convergencia del algoritmo y para la calidad de las poblaciones. Aunque en principio se puede suponer que cuanto mayor sea el intercambio mejor se propagan las buenas soluciones, esto no es cierto totalmente, ya que puede suceder que el excesivo intercambio de individuos entre las poblaciones convierta el AGP en una búsqueda prácticamente aleatoria, al no permitir que el algoritmo se desarrolle con normalidad. Algunas implementaciones realizan el proceso de migración únicamente cuando las poblaciones han convergido totalmente [82, 69]. Con ello se trata de introducir una diversidad en las poblaciones, y aliviar así problemas de convergencia prematura. Otras aproximaciones utilizan distintas políticas de intercambio y lo realizan después de un determinado número de generaciones, o bien con una periodicidad fijada a priori, y que se mantiene constante a lo largo de toda la ejecución del programa.
Si la migración se produce muy pronto, puede suceder que las propiedades de los individuos intercambiados sean débiles e influyan muy levemente en el proceso de búsqueda.
Por todo lo dicho anteriormente, queda patente que es conveniente realizar un estudio de distintas políticas de migración, teniendo en cuenta a la vez la topología de las poblaciones, al afrontar un problema concreto. En nuestro caso, este estudio constituye una línea de trabajo que dejamos abierta para el futuro.