Aplicación De Algoritmos ACO a Planet Wars
Total Page:16
File Type:pdf, Size:1020Kb
Departamento de Informática PROYECTO FIN DE CARRERA Aplicación de algoritmos ACO a Planet Wars Autor: María González Evstrópova Tutor: Yago Sáez Leganés, 21 junio de 2015 ii Título: Aplicación de algoritmos ACO a Planet Wars Autor: María González Evstrópova Director: Yago Sáez EL TRIBUNAL Presidente: Pedro Isasi Vocal: Manuel Velasco Secretario: Dolores Cuadra Realizado el acto de defensa y lectura del Proyecto Fin de Carrera el día 30 de junio de 2015 en Leganés, en la Escuela Politécnica Superior de la Universidad Carlos III de Madrid, acuerda otorgarle la CALIFICACIÓN de VOCAL SECRETARIO PRESIDENTE iii Agradecimientos Quiero agradecer de todo corazón el apoyo que me han brindado mi pareja y mi familia durante todos estos años, ya que sin ellos no habría sido posible. Por último, agradecer a mi tutor la paciencia infinita con la que me ha guiado en todo este largo proceso y gracias a cuyo apoyo he conseguido finalizar este proyecto. iv Resumen El objetivo de este proyecto es el estudio y la aplicación de los algoritmos de optimización de colonias de hormigas (ACO) a un problema multiobjetivo complejo presentado en forma de un videojuego llamado Planet Wars, inspirado a su vez en el popular videojuego Galcon. A lo largo de este trabajo se hace un estudio de la problemática planteada, con las características propias de Planet Wars, así como el diseño de la solución desarrollada. Por último, se hace un análisis de los resultados obtenidos, identificando los puntos fuertes y los aspectos de mejora para desarrollos futuros. Palabras clave: ACO, optimización de colonias de hormigas, Inteligencia artificial, videojuegos, Planet Wars, Galcon, Google AI Challenge. v Abstract The main objective of this Project is the study and practical application of Ant Colony Optimization algorithms to solving a complex multiobjective task posed as a videogame called Planet Wars, based on a popular videogame known as Galcon. In this document an analysis of the initial situation and problem restrictions, taking into account constraints specific to Planet Wars, is made and the design of the proposed solution is described. Finally, the developed solution is tested and the obtained results are analyzed, focusing on the successful achievements and areas of improvement that may be addressed in the future. Keywords: ACO, ant colony optimization, Artificial Intelligence, videogames, Plane Wars, Galcon, Google AI challenge. vi Índice general 1. INTRODUCCIÓN Y OBJETIVOS ....................................................................................... 15 1.1 Introducción ............................................................................................................ 15 1.2 Objetivos ................................................................................................................. 16 1.3 Fases del desarrollo ................................................................................................. 17 1.4 Medios empleados ................................................................................................... 17 1.5 Estructura de la memoria ........................................................................................ 18 2. ESTADO DEL ARTE ........................................................................................................ 20 2.1 Optimización ........................................................................................................... 20 2.1.1 Problema de Optimización .......................................................................................... 20 2.1.2 Métodos de Optimización ............................................................................................ 22 2.2 Algoritmos basados en Poblaciones ........................................................................ 24 2.2.1 Computación Evolutiva ................................................................................................ 24 2.2.2 Optimización por Colonias de Hormigas (ACO) ......................................................... 26 2.3 Aplicaciones en Videojuegos .................................................................................. 37 2.3.1 S-ACO y Combat .......................................................................................................... 39 2.3.2 Pac-mAnt...................................................................................................................... 41 3. PLANET WARS .............................................................................................................. 43 3.1 Análisis del problema .............................................................................................. 43 3.2 Modelado ................................................................................................................. 46 3.2.1 Expansión ..................................................................................................................... 46 3.2.2 Defensa ........................................................................................................................ 51 3.2.3 Balanceo de Tropas ..................................................................................................... 54 4. IMPLEMENTACIÓN ........................................................................................................ 58 4.1 Diagrama de clases .................................................................................................. 58 5. VALIDACIÓN DEL MODELO: EXPERIMENTACIÓN ........................................................ 67 5.1 Evaluación de las heurísticas planteadas. ................................................................ 67 5.1.1 Validación del modelo: Expansión. ............................................................................. 68 5.1.2 Validación del modelo: Defensa. ................................................................................. 78 5.1.3 Validación del modelo: Balanceo de tropas. ............................................................... 83 5.1.4 Validación del modelo: Planet Wars. .......................................................................... 87 ÍNDICE general 6. CONCLUSIONES Y LÍNEAS FUTURAS ............................................................................ 100 6.1 Conclusiones ......................................................................................................... 100 6.2 Líneas futuras. ....................................................................................................... 102 ANEXOS........................................................................................................................... 109 viii Índice de figuras Figura 1: Cadena de valor de la industria de los videojuegos (Raposo, 2008). ................ 16 Figura 2: Taxonomía de la computación evolutiva (Muñoz, López, & Caicedo, 2008). .. 25 Figura 3: Optimización de distancia por rastro de feromona (Guerra Marrero, 2010) ..... 26 Figura 4: Algoritmo ACO ................................................................................................. 27 Figura 5: Ejemplo de construcción de la solución en ACO .............................................. 28 Figura 6: Pseudocódigo para el algoritmo ACS. ............................................................... 30 Figura 7: Ejemplo de escenario para Combat, lanzado en 1982 para Atari ...................... 39 Figura 8: Escenario para Combat modelado para ACO (I) ............................................... 40 Figura 9: Escenario para Combat modelado para ACO (II).............................................. 41 Figura 10: Pantalla del video juego Ms. Pac-Man ............................................................ 42 Figura 11: Mapa inicial para una partida de Planet Wars para dos jugadores. ................. 44 Figura 12: Defensa de un planeta en Planet Wars ............................................................. 46 Figura 13: Funciones heurísticas para la expansión del agente. ....................................... 48 Figura 14: Ejemplo mapa Planet Wars .............................................................................. 49 Figura 15: Ejemplo batalla Planet Wars. ........................................................................... 55 Figura 16: Mapa de IP para Planet Wars .......................................................................... 57 Figura 17: Clase Ant ......................................................................................................... 59 Figura 18: Clases Ant, DefensorAnt y ConquerorAnt. ..................................................... 60 Figura 19: Clase ConquerorAnt ........................................................................................ 60 Figura 20: Clase DefensorAnt ........................................................................................... 61 Figura 21: Clase NodeInfo ................................................................................................ 62 Figura 22: Clase Planet ..................................................................................................... 63 Figura 23: Clase Fleet ....................................................................................................... 63 Figura 24: Clase PlanetWars ............................................................................................. 64 Figura 25: Clase AgentZ ................................................................................................... 65 Figura 26: Pseudocódigo para el método DoTurn().