• No results found

Chapter 6 Performance Outcomes of Work-Home Interference

6.5 Method

6.5.2 Measures

Los algoritmos evolutivos son procesos estocásticos con un alto grado de paralelización. Esta característica puede ser explotada con el fin de reducir el coste temporal de encontrar una solución a un problema o para tratar de generar mayor diversidad durante el proceso de búsqueda. Con estos dos objetivos en mente se han añadido varios componentes de parale- lización a la librería que hacen que el uso de sistemas distribuidos para la ejecución de los algoritmos sea una tarea sencilla.

Estos componentes posibilitan que la ejecución de algoritmos evolutivos distribuidos se realice de manera rápida, concisa y sencilla. En la librería están implementados tres de los cuatro tipos tradicionalmente identificados [Cantú-Paz, 1995]. Estos tres métodos son: la eva- luación distribuida de la población (modelo global), el modelo de islas, un modelo de grano grueso y la combinación de los modelos anteriores (modelo híbrido). Estos modelos son apropiados para arquitecturas con memoria distribuida como los clusters. Los modelos de grano fino, es decir, los modelos que requiere poblaciones superpuestas y para los cuales se recomienda el uso de una arquitectura memoria distribuida, no están implementaos en esta librería.

La clase que dirige el proceso de paralelización implementa el patrón decorador donde el objeto decorado es cualquier algoritmo evolutivo con evaluación en serie. Por lo tanto, todo algoritmo evolutivo implementado en la librería y los nuevos algoritmos desarrollados por los usuarios puede ser ejecutado de forma distribuida sin realizar ninguna codificación adicional. En la figura A.11 se muestra el diagrama de clases de las herramientas que permiten la paralelización de algoritmos evolutivos en esta librería.

OperatorChain T > Operator EvolutionaryAlgorithm EvaluationStrategy DistributedEvaluation EvaluationTopology MigrationTopology MigrationOperator EvaluationObject ReplaceOperator MigrationObject Operator Topology <<use>> <<use>> -pendingSendRequest 0..* <<use>> <<use>>

Figura A.11: Herramientas de paralelización de la librería JEAF

Las clases que permiten la paralelización de algoritmos están distribuidas en tres capas. La capa inferior es la responsable del paso de mensajes, actualmente se utiliza la librería MPJ express [Baker et al., 2006] para la implementación de esta capa. Esta librería está desarro- llada completamente en JAVA e implementa la especificación de MPI versión 1.2. Por encima de esta capa, la capa intermedia permite la abstracción de las comunicaciones y hace que la

188 A.3. Diseño e implementación capa superior sea independiente de la librería concreta de paso de mensajes minimizando el impacto que pudiera producir el reemplazo de esta librería. La capa intermedia define va- rias topologías que pueden ser utilizadas directamente o extendidas para implementar nuevos modelos de conexión.

Para terminar, la capa superior tiene las clases que implementan los modelos de parale- lización que se mencionaron anteriormente. Además permite que cada uno de los nodos que se utilicen pueda almacenar en disco la información de la evolución durante el proceso de búsqueda.

Actualmente existen predefinidas topologías para el modelo de islas (totalmente conec- tado y conexiones en anillo, en rejilla e hipercupo) y para el modelo de evaluación distribuida (topología maestro-esclavo). El modelo de islas permite tener una serie de poblaciones aisla- das que se comunican mediante la migración de individuos con el fin de mejorar la diversidad global. Para dar soporte a este modelo es necesario implementar un operador de migración (que es una subclase del operador de reemplazo) que permite al usuario escoger la topología de interconexión, si la migración es síncrona o asíncrona y qué individuos son aceptados y cuales son enviados a otros nodos. Implementando la migración como un operador de reem- plazo permite diseñar un algoritmo evolutivo con diferentes modelos de migración, cada uno de ellos representado por un operador.

En el modelo global, aquel que utiliza la topología maestro-esclavo como modelo de eva- luación distribuido, los recursos computacionales son explotados utilizando tanto el maestro como los nodos esclavos para evaluar la población. El nodo maestro comparte la población con el resto de los nodos bajo demanda, enviando sub-conjuntos (de un tamaño prefijado) de individuos de la población. Este método permite un uso más racional del sistema distribuido en el caso de ejecutar el algoritmo evolutivo en un sistema hardware heterogéneo porque mi- nimiza el tiempo de espera producido por nodos lentos. En la figura A.12 se muestran algunas de las posibles configuraciones para la distribución de la población durante la ejecución de un algoritmo evolutivo.

Figura A.12: Algunos de los modelos de paralelización implementados en JEAF. De izquierda a derecha: maestro-esclavo, islas con topología en rejilla e islas con una topología en islas combinado con un modelo maestro-esclavo.

En este apéndice ha sido explicado el diseño de la librería JEAF utilizada para el desarrollo de esta tesis y que se encuentra disponible en www.gii.udc.es/jeaf.

Apéndice B

Funciones objetivo utilizadas en esta tesis

1. Función Ackley's 𝑓(𝑥) = −20.0 exp⎛⎜ ⎜ ⎝ −0.2 ∗    ⎷ 1.0 𝑛 𝑛  𝑖=1 𝑥2 𝑖 ⎞ ⎟ ⎟ ⎠ − exp  1.0 𝑛 𝑛  𝑖=1 𝑐𝑜𝑠(2.0𝜋𝑥𝑖) + 20.0 − 𝑒 (B.1)

donde los límites de las variables son−30.0 ≤ 𝑥𝑖 ≤ 30.0. El óptimo global de la fun- ción está situado en el punto𝑥∗ = (0, … , 0)y su valor de calidad es𝑓(𝑥) = 0.

2. Función Aluffi-Pentini's

𝑓(𝑥) = 0.25𝑥41− 0.5𝑥21+ 0.1𝑥1+ 0.5𝑥22 (B.2) donde los límites de las variables son−10.0 ≤ 𝑥𝑖 ≤ 10.0. El óptimo global de la función está situado en el punto𝑥∗ = (−1.0465, 0)y su valor de calidad es𝑓(𝑥∗) ≈ −0.3523.

3. Función Axis Parallel Hyperellipsoid

𝑓(𝑥) =

𝑛

𝑖=1

𝑖𝑥2 (B.3)

donde los límites de las variables son−100.0 ≤ 𝑥𝑖 ≤ 100.0. El óptimo global de la función está situado en el punto𝑥∗ = (0, … , 0)y su valor de calidad es𝑓(𝑥∗) = 0.

4. Función Beale 𝑓(𝑥) = (1.5 − 𝑥1(1.0 − 𝑥2))2 + (2.25 − 𝑥1(1 − 𝑥22))2 + (2.625 − 𝑥1(1.0 − 𝑥3 2)) 2 (B.4)

donde los límites de las variables son−4.5 ≤ 𝑥𝑖 ≤ 4.5. El óptimo global de la función está situado en el punto𝑥∗ = (3.0, 0.5)y su valor de calidad es𝑓(𝑥) = 0.

190

5. Función Becker and Lago

𝑓(𝑥) = (𝑥1− 5.0)2+ (𝑥2− 5.0)2 (B.5) donde los límites de las variables son−10.0 ≤ 𝑥𝑖 ≤ 10.0. El óptimo global de la fun- ción está situado en el punto𝑥∗ = (±5, ±5)y su valor de calidad es𝑓(𝑥) = 0.

6. Función Bohachevsky 1

𝑓(𝑥) = 𝑥21+ 2𝑥22− 0.3𝑐𝑜𝑠(3𝜋𝑥1) − 0.4𝑐𝑜𝑠(4𝜋𝑥2) + 0.7 (B.6) donde los límites de las variables son−50.0 ≤ 𝑥𝑖 ≤ 50.0. El óptimo global de la fun- ción está situado en el punto𝑥∗ = (0, 0)y su valor de calidad es𝑓(𝑥∗) = 0.

7. Función Bohachevsky 2

𝑓(𝑥) = 𝑥2

1+ 2𝑥22− 0.3𝑐𝑜𝑠(3𝜋𝑥1)𝑐𝑜𝑠(4𝜋𝑥2) + 0.3 (B.7)

donde los límites de las variables son−50.0 ≤ 𝑥𝑖 ≤ 50.0. El óptimo global de la fun- ción está situado en el punto𝑥∗ = (0, 0)y su valor de calidad es𝑓(𝑥∗) = 0.

8. Función Colville 𝑓(𝑥) = 100(𝑥2 1− 𝑥2))2+ (𝑥1− 1.0)2 + (𝑥3− 1.0)2+ 90.0 ∗ (𝑥23− 𝑥4)2 + 10.1 ∗ ((𝑥2− 1.0)2+ (𝑥4− 1.0)2) + 19.8 ∗ (𝑥−21.0) ∗ (𝑥4− 1.0) (B.8) donde los límites de las variables son−10.0 ≤ 𝑥𝑖 ≤ 10.0. El óptimo global de la fun- ción está situado en el punto𝑥∗ = (1.0, … , 1.0)y su valor de calidad es𝑓(𝑥∗) = 0.

9. Función Cosine Mixture

𝑓(𝑥) = 0.1 𝑛  𝑖=1 𝑐𝑜𝑠(5.0𝜋𝑥𝑖) − 𝑛  𝑖=1 𝑥2𝑖 (B.9)

donde los límites de las variables son−1.0 ≤ 𝑥𝑖 ≤ 1.0. El óptimo global de la función está situado en el punto𝑥∗ = (0, … , 0)y su valor de calidad es𝑓(𝑥∗) = 1/𝑛.

10. Función Dekkers and Aarts

𝑓(𝑥) = 104𝑥2 1+ 𝑥 2 2− (𝑥 2 1+ 𝑥 2 2) 2+ (𝑥 2 1+ 𝑥 2 2) 4 104 (B.10)

donde los límites de las variables son −20.0 ≤ 𝑥𝑖 ≤ 20.0. El óptimo global de la función está situado en el punto 𝑥∗ = (0, 15) and (0, −15) y su valor de calidad es

Related documents