Service oriented architecture for adaptive evolutionary algorithmsimplementation and applications
- Jesús González Peñalver Codirector
- Alberto Prieto Espinosa Codirector
- Juan Julián Merelo Guervós Codirector
Universidad de defensa: Universidad de Granada
Fecha de defensa: 16 de junio de 2014
- Julio Ortega Lopera Presidente
- M. I. García Arenas Secretaria
- Anna Isabel Esparcia Alcázar Vocal
- Juan Luis Jiménez Laredo Vocal
- Carlos Cotta Porras Vocal
Tipo: Tesis
Resumen
El objetivo de esta tesis es crear una metodología para adaptar Algoritmos Evolutivos (AEs) a entornos dinámicos, heterogéneos y basados en estándares. Esta metodología propone el uso de Arquitectura Orientada a Servicios (AOS) como un nuevo paradigma para desarrollar AEs. Para validar esta metodología se usará para crear un framework que use todas las ventajas de este paradigma (enlace dinámico y distribución y publicación de interfaces utilizando estándares). Finalmente, esta metodología se usará para crear Algoritmos Evolutivos Orientados a Servicios (AEOS) en diferentes escenarios, donde se reflejarán estas ventajas. Los objetivos que esta tesis quiere validar son los siguientes: 1) Probar que el paradigma de la Arquitectura Orientada a Servicios puede ser utilizada para crear entornos para AEs distribuidos, dinámicos y basados en estándares Los AEs definen un área en la que se aplican distintas ramas de las ciencias de la computación, como el paralelismo y sistemas distribuidos, la adaptación de parámetros y el desarrollo de aplicaciones y herramientas. En consecuencia, el primer objetivo propone un nuevo paradigma que permita tratar con algunos de los problemas presentes en este área: falta de estandarización y mecanismos para facilitar la integración, el dinamismo y la interoperatibilidad de sus componentes. En primer lugar, la clasificación tradicional de AEs y AEs distribuidos será presentada para clarificar sus elementos comunes. A continuación, se explicarán las nuevas tendencias en AEs (como P2P y basadas en pools), mostrando sus ventajas y deficiencias. Un nuevo paradigma, los Algoritmos Evolutivos Orientados a Servicios (AEOSs) será propuesto para tratar de paliar las desventajas detectadas en otros paradigmas. 2) Proponer una metodología que sea capaz de adaptar exitosamente algoritmos evolutivos en sistemas distribuidos, dinámicos, heterogéneos y basados en estándares Esta metodología deberá facilitar la identificación, especificación, implementación y despliegue de servicios para crear AEOS. Esta metodología también tendrá que tratar con las restricciones propias de los AE y SOA identificadas en el objetivo previo, para facilitar el desarrollo, integración y dinamismo. 3) Validar la metodología usando una tecnología SOA Para validar la metodología presentada en el objetivo anterior, ésta será aplicada para la creación de un framework (llamado OSGiLiath) utilizando un tecnología SOA específica: OSGi. Este framework será utilizado para abordar algunos de los problemas previamente detectados: enlace dinámico de servicios, publicación de interfaces de servicio usando estándares públicas y el ahorro de tiempo, eliminando la necesidad de escribir código específico para la distribución. En este objetivo, distintas tecnologías SOA se compararán para seleccionar la más apropiada para cada problema a resolver. 3) Probar que una implementación basada en SOA de algoritmos evolutivos distribuidos, dinámicos y basados en estándares tiene la capacidad de resolver de forma eficiente distintos problemas El objetivo final de esta tesis es demostrar que los AEOSs pueden ser utilizados para obtener resultados de relevancia científica en distintos campos. La metodología y el framework serán usados en una serie de experimentos en adaptación dinámica de parámetros al hardware y la creación de bots competitivos para videojuegos. Estructura de la tesis El primer capítulo ofrece una introducción a esta tesis, incluyendo su motivación y las preguntas a abordar. A continuación se expone la estructura del resto de capítulos: El primer paso de esta tesis es probar que la Arquitectura Orientada a Servicios puede ser utilizado para crear entornos para AEs que sean distribuidos, dinámicos y basados en estándares (Objetivo 1). La razón para utilizar este tipo de entornos será explicada en el Capítulo 3, donde se muestra cómo las nuevas tendencias en AEs distribuidos, como P2P y algoritmos basados en pool, requieren ciertos mecanismos que proporcionen control dinámico de los nodos y arquitecturas heterogéneas. Además, serán explicados otros defectos de este tipo de entornos que pueden abordarse, como la falta de integración de los lenguajes y protocolos de comunicación. SOA se explicará en el Capítulo 4 como un posible paradigma para el desarrollo de este tipo de entornos distribuidos, dinámicos y basados en estándares, al ofrecer mecanismos que facilitan la estandarización, integración, la ciencia abierta y el dinamismo. Diferentes tecnologías y metodologías para SOA serán explicadas. Por otra parte, se presentarán los requerimientos en SOA aplicados a la genericidad de los AEs, así como las directrices para la creación de servicios para AEs que permitirán cumplir con el próximo objetivo: proponer una metodología que pueda adaptar con éxito algoritmos evolutivos a sistemas distribuidos, dinámicos y basados en estándares. Esta metodología, llamada SOA-EA, será presentada en el Capítulo 5. SOA-EA propone varios pasos para crear Algoritmos Evolutivos Orientados a Servicios (AEOSs). Los pasos para la identificación, especificación, implementación y desarrollo de servicios serán también presentados en este capítulo, junto con algunas directrices acerca de cómo deberá ser diseñado como un servicio cada elemento de un AE. Para validar SOA-EA (objetivo 3), esta metodología será aplicada en el Capítulo 6 para crear un framework (OSGiLiath) para el desarrollo de AEOSs utilizando una tecnología específica. Con el objetivo de mostrar el enlace automático de servicios, se presenta un experimento en el cual se activa y enlaza de forma adaptativa servicios para incrementar el rendimiento de un AEOS. Se mostrarán diferentes formas de publicar servicios utilizando diferentes estándares, comparando los tiempos de transmisión de cada tecnología de distribución. Finalmente, se presenta un estudio comparativo de los tiempos de desarrollo con distintos frameworks para AE. OSGiLiath se utilizará en el Capítulo 7 para desarrollar un nuevo método para la adaptación de parámetros de un AE distribuido (tamaño de la población) a la potencia computacional de los diferentes nodos en los que se ejecuta el algoritmo. Para efectuar este experimento, SOA-EA será utilizado para diseñar servicios para la creación de un AEOS descentralizado y basado en islas. De esta forma, se alcanzará el objetivo 4: probar que una implementación basada en SOA de algoritmos evolutivos distribuidos, dinámicos y basados en estándares tiene la capacidad de resolver de forma eficiente distintos problemas. En el siguiente capítulo 8, se utilizará OSGiLiath para crear AEOSs que generan bots competitivos para juegos RTS. SOA-EA será aplicada para la creación de servicios dinámicos, obteniendo resultados relevantes. Finalmente, el Capítulo 9 resumirá la principales contribuciones de esta tesis y las futuras líneas de investigación.