Grado en Ingenier´ıaInform´atica

TRABAJO FIN DE GRADO

BUSQUEDA´ DE CAMINOS EN MAPAS DE VIDEOJUEGOS

Desarrollo de t´ecnicasde b´usquedade caminos con preprocesamiento para mapas de videojuegos

Autor: Alvaro´ Parra de Miguel Tutor: Carlos Linares L´opez

22 de junio de 2015 Universidad Carlos III de Madrid “Hell, it’s about time.”

Tychus Findlay

i Agradecimientos

Quiero mostrar mi agradecimiento a todas aquellas personas que de una forma u otra me han ayudado a realizar este proyecto.

A Carlos Linares L´opez y Alvaro´ Torralba Arias de Reyna, porque sin su ayuda y dedicaci´on inestimables este proyecto no hubera sido posible.

A toda mi familia y en especial a mis padres, por todo el apoyo y cari˜noque siempre me han brindado.

A mi novia Sayuri, por llenar de ilusi´onmi vida.

A todos los profesores que me han impartido clase a lo largo de estos a˜nos,por transmitirme sus conocimientos y ayudar a formarme como persona.

A todos mis jefes y compa˜neroscon los que he tenido el placer y la suerte de trabajar.

Y a todos mis amigos a los que tanto quiero y con los he compartido tan gratos momentos.

ii ´Indice

Agradecimientos II

´Indice III

´Indice de Figuras VI

´Indice de Tablas VII

1. Introducci´on1

2. Estado de la Cuesti´on3 2.1. Videojuegos...... 3 2.1.1. Industria del videojuego...... 3 2.1.1.1. El inicio de la industria...... 3 2.1.1.2. La crisis del 83...... 6 2.1.1.3. Evoluci´onhasta nuestros d´ıasy situaci´onactual...... 8 2.2. G´enerosen los videojuegos...... 10 2.2.1. Acci´on...... 10 2.2.2. Aventuras...... 11 2.2.3. RPG (role-playing game)...... 11 2.2.4. Estrategia...... 12 2.2.5. Simulaci´on...... 12 2.2.6. Casual...... 12 2.3. Inteligencia Artificial en videojuegos...... 13 2.3.1. T´ecnicasde IA aplicables en los videojuegos...... 13 2.3.1.1. Pathfinding o b´usquedade caminos...... 13 2.3.1.2. M´aquinasde estado...... 13 2.3.1.3. Aprendizaje por refuerzo...... 14 2.3.1.4. L´ogicadifusa o fuzzy logic...... 14 2.3.2. Metas a conquistar...... 14 2.3.2.1. Pathfinding o b´usquedade caminos...... 14 2.3.2.2. Conversaciones...... 14 2.3.2.3. Historias din´amicas...... 15 2.3.2.4. Modelar el comportamiento de los jugadores...... 15 2.3.2.5. Relaciones sociales...... 15 2.3.2.6. Escalabilidad...... 15 2.4. Competici´on...... 16

iii Indice´ Alvaro´ Parra de Miguel

2.4.1. Definici´ondel problema...... 16 2.5. Pathfinding...... 19 2.5.1. Grafo...... 19 2.5.1.1. Waypoint o puntos de referencia...... 20 2.5.1.2. Navigation mesh o malla de navegaci´on...... 20 2.5.1.3. Voronoi...... 21 2.5.1.4. Quadtree o ´arbol cuaternario...... 21 2.5.2. Heur´ıstica...... 22 2.5.2.1. Distancia Manhattan...... 23 2.5.2.2. Distancia euclidiana...... 23 2.5.2.3. Distancia diagonal...... 24 2.5.3. Algoritmo de b´usqueda...... 24 2.5.3.1. Dijkstra...... 24 2.5.3.2. A*...... 25 2.5.4. Trabajos previos...... 26

3. Objetivos 27

4. Desarrollo 28 4.1. An´alisisdel sistema...... 28 4.1.1. Requisitos del sistema...... 28 4.1.2. Casos de uso...... 31 4.2. Dise˜nodel sistema...... 34 4.2.1. Diagramas de clases...... 34 4.2.2. Diagramas de secuencia...... 36 4.3. Pruebas de software...... 37 4.4. Algoritmo de b´usqueda...... 39 4.4.1. Regiones convexas...... 41 4.4.2. Algoritmo para dividir el mapa...... 42 4.4.3. B´usquedade los caminos...... 46 4.4.3.1. Centroides...... 47 4.4.3.2. Portales...... 47 4.4.3.3. Versi´onfinal...... 48

5. Evaluaci´on 49 5.1. N´umerode regiones...... 50 5.2. Comparaci´oncon el caso base...... 51 5.3. Competici´on...... 52

6. Conclusiones 54 6.1. Objetivos...... 54 6.1.1. Desarrollar un agente de pathfinding para la GPPC...... 54 6.1.2. Reducir el espacio de b´usqueda...... 54 6.1.3. Algoritmo de b´usqueda...... 54 6.1.4. Entorno gr´aficode pruebas...... 55 6.2. Conclusiones finales...... 55

7. L´ıneasFuturas 56

iv Indice´ Alvaro´ Parra de Miguel

8. Planificaci´ony Presupuesto 57 8.1. Planificaci´on...... 57 8.1.1. Planificaci´onestimada...... 58 8.1.2. Planificaci´onreal...... 58 8.2. Hardware y software usado...... 59 8.2.1. Hardware...... 59 8.2.2. Software...... 59 8.3. An´alisisecon´omico...... 60 8.3.1. Recursos humanos...... 60 8.3.2. Recursos de hardware...... 61 8.3.3. Resumen...... 61

Bibliograf´ıa 62

v ´Indice de Figuras

2.1. Recreativa Pong de Atari...... 4 2.2. Videoconsola Atari Pong...... 5 2.3. Videoconsola Magnavox Odyssey...... 5 2.4. Nintendo Entertainment System...... 7 2.5. Evoluci´onde las videoconsolas...... 8 2.6. Tipos de mapas...... 17 2.7. Movimientos permitidos...... 18 2.8. Representaci´onde un mapa con un grafo...... 19 2.9. Navigation mesh...... 20 2.10. Regiones de Voronoi...... 21 2.11. Quadtree...... 22 2.12. Distancia Manhattan...... 23 2.13. Distancia euclidiana...... 23 2.14. Distancia diagonal...... 24 2.15. Algoritmo Dijkstra...... 25 2.16. Algoritmo A*...... 26

4.1. Diagrama de casos de uso...... 32 4.2. Diagrama de clases de la interfaz gr´aficade pruebas...... 34 4.3. Diagrama de clases del agente...... 35 4.4. Diagrama de secuencia del preprocesamiento...... 36 4.5. Diagrama de secuencia de la b´usqueda...... 37 4.6. Interfaz gr´afica...... 38 4.7. Representaci´onde un mapa con un grafo...... 39 4.8. Regiones convexas...... 41 4.9. Regiones c´oncavas...... 41 4.10. Comparaci´onentre regiones convexas y regiones c´oncavas...... 42 4.11. Diagram de flujo para generar regiones...... 43 4.12. Mapa de tipo videojuego dividido en 128 regiones...... 44 4.13. Mapa de tipo laberinto dividido en 128 regiones...... 44 4.14. Mapa de tipo aleatorio dividido en 128 regiones...... 45 4.15. Mapa de tipo habitaciones dividido en 128 regiones...... 45 4.16. Uso de centroides...... 47 4.17. Uso de portales...... 47 4.18. Comparativa entre Dijkstra y A*...... 48

8.1. Diagrama de Gantt - Planificaci´onestimada...... 58 8.2. Diagrama de Gantt - Planificaci´onreal...... 59

vi ´Indice de Tablas

4.1. Requisito AGE-F-01 Preprocesamiento de mapas...... 29 4.2. Requisito AGE-F-02 Almacenar informaci´on...... 29 4.3. Requisito AGE-F-03 Cargar informaci´on...... 29 4.4. Requisito AGE-F-04 Buscar caminos...... 29 4.5. Requisito AGE-NF-01 Dimensiones de los mapas...... 30 4.6. Requisito AGE-NF-02 L´ımitede tiempo en la fase de preprocesamiento.. 30 4.7. Requisito AGE-NF-03 L´ımitede tama˜nodel fichero resultante de la fase de preprocesamiento...... 30 4.8. Requisito AGE-NF-04 L´ımitede hilos en la fase de preprocesamiento.... 30 4.9. Requisito AGE-NF-05 L´ımitede memoria en la fase de b´usqueda...... 30 4.10. Requisito AGE-NF-06 L´ımitede hilos en la fase de b´usqueda...... 30 4.11. Requisito AGE-NF-07 Prohibidas las comunicaciones...... 31 4.12. Requisito GRA-F-01 Representar adecuadamente el estado del mapa.... 31 4.13. Requisito GRA-NF-01 Dimensiones de los mapas...... 31 4.14. Caso de Uso CU01 Preprocesar mapa...... 32 4.15. Caso de Uso CU02 Preparar la b´usqueda...... 33 4.16. Caso de Uso CU03 Realizar la b´usqueda...... 33

5.1. Experimentos con diferentes regiones...... 50 5.2. Comparaci´ondel agente con el caso base...... 51 5.3. Resultados competici´on- Map Set: All...... 52 5.4. Resultados competici´on- Map Set: Game Maps...... 52 5.5. Resultados competici´on- Map Set: Mazes...... 52 5.6. Resultados competici´on- Map Set: Random...... 53 5.7. Resultados competici´on- Map Set: Rooms...... 53

8.1. Planificaci´onestimada...... 58 8.2. Planificaci´onreal...... 58 8.3. Recursos humanos estimados...... 60 8.4. Recursos humanos reales...... 60 8.5. Recursos hardware estimados...... 61 8.6. Recursos hardware reales...... 61 8.7. Coste total estimado...... 61 8.8. Coste total real...... 61

vii Cap´ıtulo1

Introducci´on

Hoy en d´ıael pathfining o b´usquedade caminos es un problema muy importante que aplica a dominios tales como el de la rob´oticao el de los videojuegos. Aunque es conocido que el problema puede resolverse en tiempo polinomial en el tama˜nodel grafo, este planteamiento no resulta viable para los sistemas que carecen de los recursos de tiempo y memoria nece- sarios. Esta problem´aticaa˜nadidahace necesario el estudio de nuevas t´ecnicas que tengan en cuenta dichas restricciones.

El crecimiento de la industria de la rob´oticay de los videojuegos ha impulsado la investi- gaci´onen esta ´area.Con el fin construir un foro donde poder compartir las investigacio- nes realizadas en la materia, investigadores de diveras universidades han organizado una competici´ondonde poder comparar y discutir las diversas alternativas en las que est´an investigando.

A lo largo de este proyecto se construye un agente que particip´oen dicha competici´onpara resolver el problema de pathfinding teniendo en cuenta extrictas restricciones de tiempo y memoria. Los resultados obtenidos fueron muy satisfactorios porque acab´osiendo declarado como uno de los ganadores de la edici´onde 2012 y ha seguido siendo competitivo en las subsiguientes ediciones.

En el resto de cap´ıtulos de la memoria se desgranan los pasos que se han ido dando para la construcci´onde dicho agente. Estos est´anorganizados de la siguiente manera:

- Cap´ıtulo2. Estado de la Cuesti´on: En este cap´ıtulose tratan los componentes que conforman el marco del proyecto. Se habla de la industria de los videojuegos y de su relaci´oncon la Inteligencia Artificial. Explicamos en qu´econsiste la Grid-Based Path Planning Competition y cu´alesson sus reglas. Y terminamos revisando algunas

1 Cap´ıtulo1. Introducci´on Alvaro´ Parra de Miguel

t´ecnicasde pathfindig desde las que podemos partir para solucionar el problema que se nos plantea.

- Cap´ıtulo3. Objetivos: En este apartado damos a conocer cu´ales la motivaci´onde este proyecto y los objetivos que nos planteamos cumplir.

- Cap´ıtulo4. Desarrollo: En este cap´ıtulo exponemos el trabajo realizado, teniendo en cuenta las distintas fases del desarrollo de software: an´alisis,dise˜noe implementa- ci´on.

- Cap´ıtulo5. Evaluaci´on: En este apartado evaluamos el funcionamiento de nuetro agente y los resultados obtenidos en la Grid-Based Path Planning Competition de 2012.

- Cap´ıtulo6. Conclusiones: En este cap´ıtulose comprueba si se han alcanzado los objetivos marcados al principio de este proyecto y se incluyen las conclusiones que se han obtenido sobre los resultados.

- Cap´ıtulo7. L´ıneasFuturas: En este apartado se contemplan las posibles l´ıneas futuras que podr´ıansurgir a partir de este proyecto y algunas propuestas para mejorar el funcionamiento del agente.

- Cap´ıtulo8. Planificaci´ony Presupuesto: En este cap´ıtulose detalla la planifi- caci´ony el presupuesto del proyecto.

2 Cap´ıtulo2

Estado de la Cuesti´on

En este cap´ıtulose abordan los distintos elementos que definen el marco del proyecto. Se trata de enfocar el problema desde varios puntos de vista, como pueden ser el social, el econ´omico,el tecnol´ogicoo el t´ecnico.

2.1. Videojuegos

Los videojuegos se han consolidado como una de las principales industrias del arte y el entretenimiento, actuando como un motor cultural y econ´omicode la sociedad. La relaci´on entre la Inteligencia Artificial y los videojuegos es doble. Por un lado los videojuegos son un mercado en constante evoluci´onque halla en las t´ecnicasde Inteligencia Artificial un factor diferenciador. Por otro lado los videojuegos suponen una fuente inagotable de nue- vos problemas que ponen a prueba los l´ımitesde la Inteligencia Artificial, favoreciendo la b´usquedade nuevas soluciones.

2.1.1. Industria del videojuego

2.1.1.1. El inicio de la industria

El primer gran ´exitocomercial de la industria de los videojuegos fue la m´aquina recreativa Pong (Atari, Inc.1, 1972). Parte del ´exitode Pong se debi´oa que por primera vez se tuvo en cuenta la experiencia de usuario, consiguiendo un juego muy sencillo que cualquier jugador sin experiencia pudiera disfrutar desde la primera partida. Los creadores de Pong hab´ıanaprendido la lecci´onde su anterior t´ıtulo,Computer Space (Syzygy Co.2, 1971), la

1Compa˜n´ıafundada en 1972 por Nolan Bushnell y Ted Dabney. 2Compa˜n´ıafundada en 1969 por Nolan Bushnell y Ted Dabney.

3 Cap´ıtulo2. Estado de la Cuesti´on Alvaro´ Parra de Miguel primera recreativa en ser distribuida a gran escala. Si bien Computer Space fue popular en los campus universitarios, no consigui´oconectar con el gran p´ublico debido a su excesiva complejidad y dif´ıcilmanejo. Por el contrario, Pong s´ıconsigui´oatraer la atenci´onde la gente, marcando un antes y un despu´esen la cultura del entretenimiento. [Kent, 2010]

Figura 2.1: Una m´aquinarecreativa original del Pong de Atari

Pero para vislumbrar el comienzo de los videojuegos hay que viajar en el tiempo hasta la d´ecadade 1940, cuando empezaron a surgir los primeros videojuegos experimentales. Como cuando Thomas T. Goldsmith Jr. y Estle Ray Mann fabricaron y patentaron el primer videojuego de la historia [Goldsmith and Ray, 1948]. El Dispositivo de Entretenimiento de Tubos de Rayos Cat´odicosera un simulador de misiles que usaba circuitos anal´ogicospara su funcionamiento. En los a˜nosposteriores aparecieron multitud de contribuciones, en su mayor´ıaacad´emicassin una explotaci´oncomercial, que sentaron las bases de la industria del videojuego. Sus creadores sol´ıanser f´ısicosy matem´aticosque ten´ıanacceso, gracias a las universidades, a los mastod´onticos computadores de la ´epoca. Un caso destacable fue el del juego Spacewar (1962), desarrollado en el MIT1 por Steve Russell, Martin Graetz y Wayne Wiitanen. Juego que m´asadelante fue clonado por Syzygy Company bajo el nombre de Computer Space (1971), por Bill Pitts y Hugh Tuck bajo el nombre de Galaxy Game (1971) y por Cinematronics Incorporated bajo el nombre de Space Wars (1977).

Atari consolid´oel negocio de las recreativas gracias a Pong (Atari, 1972). Y unos a˜nos despu´eshizo lo propio con las videoconsolas gracias a Atari Pong (Atari, 1975), videoconsola que permit´ıajugar al juego de recreativa del mismo nombre. No fue la primera videoconsola

1Massachusetts Institute of Technology

4 Cap´ıtulo2. Estado de la Cuesti´on Alvaro´ Parra de Miguel comercial porque varios a˜nosantes sali´oal mercado Magnavox Odyssey (Magnavox1, 1972), consola creada por Ralph H. Bear. Pero la videoconsola Atari Pong, a diferencia de la Magnavox Odyssey, fue un rotundo ´exito de ventas. Las razones del ´exitode Atari Pong frente a Magnavox Odyssey fueron: la publicidad que le proporcion´ola recreativa Pong, un producto final mejor acabado y compatibilidad con un mayor n´umerode televisores.

Figura 2.2: Atari Pong Figura 2.3: Magnavox Odyssey

Los juegos de ordenador tardaron m´asen consolidarse como una forma de negocio, ganando cuota de mercado de una forma m´aspaulatina que las recreativas o videoconsolas. Durante la d´ecadade 1970 aparecieron multitud de t´ıtuloscuyo c´odigofue escrito para funcionar en las computadoras centrales de las universidades. La difusi´onde estos juegos era limitada, pero supusieron un punto de apoyo muy importante para las compa˜n´ıasde videojuegos. Muchos de estos t´ıtulosfueron adaptados a˜nosm´astarde para funcionar en ordenadores personales y sus programadores contratados por las primeras compa˜n´ıasde videojuegos. Si bien los primeros juegos de ordenador sol´ıanfuncionar con una interfaz de comandos, esto no supuso un impedimento para que afloraran multitud de g´eneros.Simuladores de deportes como Baseball (Don Daglow, 1971), juegos de estrategia como Star Trek (Mike Mayfield, 1971), aventuras de texto como Hunt the Wumpus (Gregory Yob, 1972), juegos de disparos en primera persona como Maze War (Steve Colley, 1974), etc. Las ideas y conceptos que se forjaron durante estos a˜nosdejaron una impronta que hoy en d´ıatodav´ıaperdura. Por ejemplo, el juego Multi-User Dungeon o MUD (Roy Trubshaw y Richard Bartle, 1978) fue el primero en plantear un juego de aventuras para multitud de jugadores simult´aneos.Los MMORPG2 modernos son descendientes directos de este juego, si bien han cambiado la interfaz textual a una de gr´aficos,la mec´anicadel juego apenas se ha visto afectada. Hoy en d´ıatodav´ıapersisten versiones de aquel primer MUD como Reinos de Leyenda3

Microchess (Peter R. Jennings, 1976) fue de los primeros juegos en venderse al p´ublicoque consigui´ocierto ´exito.Este videojuego de ajedrez, cuya primera versi´onocupaba un ´unico kilobyte, lleg´oa conseguir vender m´asde 50.000 copias a los largo de los a˜nos.Tiempo

1Compa˜n´ıafundada en 1917 por Edwin Pridham y Peter L. Jensen. 2Massively multiplayer online role-playing game 3Reinos de Leyenda - www.reinosdeleyenda.es

5 Cap´ıtulo2. Estado de la Cuesti´on Alvaro´ Parra de Miguel despu´essal´ıaal mercado Zork I (Infocom, 1980), versi´ondel juego desarrollado a˜nosatr´as por Dave Lebling, Marc Blank, Tim Anderson y Bruce Daniels. Zork fue un rotundo ´exito de ventas que super´oel medio mill´onde unidades vendidas, dando un impulso de gigante a la compa˜n´ıaInfocom que a˜nosm´astarde ser´ıacomprada por Activision. Empresa de la que procede la actual Activision Blizzard, una de las mayores empresas de videojuegos de hoy en d´ıa.

2.1.1.2. La crisis del 83

Hemos repasado c´omoen esta primera etapa de la industria del videojuego las recreativas, las videoconsolas y, en menor medida, los ordenadores personales se asentaron como plata- formas de entretenimiento. Pero para poder enlazar con el momento actual de la industria hay que repasar un momento clave en la historia de la misma, la crisis del videojuego de 1983. La industria del videojuego hab´ıavivido un crecimiento sin precedentes, Atari era la empresa que m´asr´apidohab´ıacrecido hasta la fecha en la historia de los EEUU1, lo que dio rienda a la especulaci´ony a la aparici´onde infinidad de nuevas empresas dedica- das al sector. La crisis golpe´ocon m´asfuerza en los EEUU, lo cual es l´ogicoporque era donde se encontraba el mayor n´umerode empresas dedicadas a este sector. Sin embargo esta problem´aticano afect´oa todas las plataformas por igual, siendo las m´asafectadas las recreativas y las videoconsolas. Repasemos las causas que dieron pie al comienzo de la crisis.

Por un lado el mercado de las videoconsolas estaba saturado, hab´ıainfinidad de diferentes modelos cada uno con su propio cat´alogode juegos. La compatibilidad brillaba por su ausencia, incluso entre los diferentes modelos de una misma compa˜n´ıa.La calidad de muchos de estos videojuegos dej´ode ser una prioridad frente a la necesidad de conseguir beneficios a corto plazo. Dos juegos de la consola Atari 2600 (1977) ejemplifican esta tendencia:

- Pac-Man (1982). Basado en el m´ıticojuego de recreativas. A su creador Tod Frye se le dieron unos plazos demasiado ajustados, lo que unido a que la videoconsola dispon´ıade menos memoria que la recreativa, dio como resultado una versi´onmuy inferior. Aunque Atari lleg´oa vender 7 millones de copias, la empresa hab´ıafabricado 12 millones esperando una mayor repercusi´on.

- E.T. the Extra-Terrestrial (1982). Un juego sacado a toda prisa para que su lanza- miento coincidiera con la campa˜nade Navidad siguiente al estreno de la pel´ıcula.De los 5 millones de copias fabricadas solo pudieron colocar un mill´ony medio de copias2.

1M´asinformaci´onen Today’s Atari Corp.: A close-up look inside 2M´asinformaci´onen Five Million E.T. Pieces

6 Cap´ıtulo2. Estado de la Cuesti´on Alvaro´ Parra de Miguel

Por otro lado los ordenadores personales eran cada vez m´asasequibles y potentes, m´as familias pod´ıanpermitirse tener uno en casa. Estos nuevos ordenadores ten´ıanm´aspres- taciones que las videoconsolas y sus juegos pod´ıanser mucho m´ascomplejos. Por ello los juegos de ordenador fueron ganando terreno poco a poco a las videoconsolas. Aunque mu- chas empresas de juegos para ordenador cerraron por culpa de la crisis, la peor parte se la llevaron las empresas de videoconsolas. La venta de videoconsolas es una importante fuente de ingresos que no percib´ıanlas empresas de juegos para ordenador, pero eso se convirti´oen una ventaja cuando el mercado se satur´oy fue imposible colocar una parte importante del stock acumulado.

Las m´aquinasrecreativas no se libraron de la crisis. Al igual que con las videoconsolas, afloraron multitud de juegos de baja calidad. Pero sin duda, lo que m´asafect´oa la indus- tria de m´aquinasrecreativas fue la devaluaci´ondel d´olar.La m´aquinasrecreativas segu´ıan funcionando con monedas de un cuarto de d´olar,pero la inflacci´onhab´ıareducido conside- rablemente las ganancias. En Jap´onusaban monedas de Y100, lo que confiri´ouna mayor estabilidad a la industria japonesa respecto de la americana.

Los efectos de la crisis fueron devastadores, en los tres a˜nosque dur´ola crisis la recaudaci´on anual baj´ode los 3200 millones de d´olaresa 100 millones de d´olares1. Muchas empresas, incluida Atari, entraron en banca rota. El mercado americano no se recuper´ohasta que en 1985 la empresa japonesa Nintendo trajo consigo la videoconsola NES2 (Nintendo, JP 1983, NA 1985, EU 1986). La mejora tecnol´ogicarespecto de sus rivales y la calidad de sus videojuegos dejaron atr´asa todos sus competidores. La empresa Nintendo hab´ıarefundado la industria de las videoconsolas y cambiado para siempre el concepto de los videojuegos. Jap´onse convirti´oen la potencia hegem´onicade las videoconsolas.

Figura 2.4: Videoconsola NES

1M´asinformaci´onen The Famicom rules the world! – (1983–89) 2Nintendo Entertainment System

7 Cap´ıtulo2. Estado de la Cuesti´on Alvaro´ Parra de Miguel

Un efecto inesperado de la crisis a largo plazo fue el incremento en el n´umerode jugadores. Durante la crisis se acumul´oun gran stock de videoconsolas que las tiendas no consegu´ıan vender. En muchos casos era imposible devolver las videoconsolas al fabricante porque este hab´ıaquebrado y la competencia japonesa hac´ıaque el stock quedara obsoleto. Muchas tiendas optaron por liquidar el stock a precios muy bajos, lo que abri´oel mercado de los videojuegos a mucha gente que antes no se hab´ıaanimado a probarlos.

2.1.1.3. Evoluci´onhasta nuestros d´ıas y situaci´onactual

Una vez que la industria se hubo recuperado de la crisis el mercado se estabiliz´o,adoptando un modelo que se ha mantenido hasta nuestros d´ıasen el que los grandes protagonistas han sido las videoconsolas y los juegos de ordenador. Por su parte las m´aquinasrecreativas han ido perdiendo importancia gradualmente en favor del juego dom´estico,aunque han experimentado breves repuntes gracias a juegos como el Street Fighter II (Capcom, 1991) o Time Crisis (Namco, 1996).

Pasada la crisis, la industria de las videoconsolas qued´oen manos de unas pocas empresas japonesas. Primero de Nintendo gracias a la NES (Nintendo, JP 1983, NA 1985, EU 1986), seguida de Sega con su Master System (Sega, JP 1985 ,NA 1986, EU 1987) y unos a˜nos m´astarde de Sony y su PlayStation (Sony, JP 1994, NA 1995, EU 1995). No fue hasta el cambio de siglo cuando una compa˜n´ıaamericana, , volviera a posicionarse en lo alto de la industria gracias a la (Microsoft, JP 2002, NA 2001, EU 2002).

Figura 2.5: Evoluci´onde las consolas de sobremesa y port´atiles

8 Cap´ıtulo2. Estado de la Cuesti´on Alvaro´ Parra de Miguel

Desde entonces y cada pocos a˜noslos fabricantes sacan al mercado una nueva generaci´onde videoconsolas. En cada generaci´onse plasman las ideas en las que han estado trabajando los ´ultimosa˜nos.Buscan diferenciarse de la competencia y convencer a los jugadores a dar el salto desde sus propios modelos anteriores. Ahora mismo nos encontramos en la octava generaci´onde videoconsolas, integrada por la Wii U (Nintendo, 2012), Playstation 4 (Sony, 2013) y Xbox One (Microsoft, 2013). Como se puede observar, las compa˜n´ıassuelen sincronizarse a la hora de sacar al mercado las nuevas videoconsolas.

Por otro lado, la din´amicaen la industria de los juegos de ordenador es muy distinta ya que no tienen una plataforma fija con unas especificaciones que no van a cambiar hasta dentro de unos a˜nos. La evoluci´on,tanto del hardware como del software, es incesante, por lo que los fabricantes se ven obligados a elegir entre un amplio espectro de jugadores o una mayor complejidad del juego. Lo normal es especificar unos requisitos m´ınimosque garanticen poder jugar y unos requisitos recomendados con los que poder disfrutar de todo el potencial del videojuego. Por ejemplo, la versi´onde PC del juego Grand Theft Auto V (Rockstar North, 2013) pide como m´ınimo4GB de RAM y recomienda 8GB de RAM.

Ahora mismo nos encontramos en un momento muy interesante de la historia de los vi- deojuegos. Nuevas plataformas como los navegadores web, los tel´efonos inteligentes y las tabletas empiezan a ganar cuota de mercado a las plataformas tradicionales. El modelo de negocio se est´aorientando a la distribuci´ondigital en sustituci´onde la compra f´ısica. La desaceleraci´onen la evoluci´onde los microprocesadores retrasa la salida al mercado de nuevas generaciones de videoconsolas. La latencia en los juegos online multijugador sigue siendo un problema. Las conexiones dom´esticasa internet est´anpreparadas para la descar- ga de grandes cantidades de informaci´on,no para minimizar la latencia en el intercambio de peque˜nospaquetes de datos. Existe la incertidumbre de que se genere una burbuja financie- ra si proliferan las grandes producciones como el juego Destiny (, 2014). Este tuvo un presupuesto de 500 millones de d´olares,de los cuales 140 millones fueron a desarrollo y 360 millones a marketing y distribuci´on.

Seg´unNewzoo1 los ingresos a nivel global durante el a˜no2014 fueron aproximadamente de $81.600.000.000, con un crecimiento anual estimado del 8 %2. Los ingresos en la zona Asia- Pac´ıficoigualaron a los ingresos combinados de Am´ericadel Norte y Europa Occidental, pero en la zona Asia-Pac´ıfico se da una tasa de crecimiento anual del 15.2 % frente al estancamiento de los mercados occidentales3. Segun PwC4 el mercado global de videojuegos crecer´ahasta los $93.100.000.000 en 20195.

1Newzoo games market research - www.newzoo.com 2M´asinformaci´onen Top 100 Countries Represent 99.8% of $81.5Bn Global Games Market 3M´asinformaci´onen Asia-Pacific Contributes 82% of the $6Bn Global Games Market Growth in 2014 4PricewaterhouseCoopers - www.pwc.com 5M´asinformaci´onen Global entretainment and media outlook 2015-2019

9 Cap´ıtulo2. Estado de la Cuesti´on Alvaro´ Parra de Miguel

La Asociaci´onEspa˜nolade Videojuegos (AEVI)1 publica que los ingresos en Espa˜nadurante el a˜no2014 fueron de 996 millones de euros2. Si bien el consumo f´ısico ha descendido ligeramente debido al descenso en la venta de videoconsolas hasta los 755 millones desde los 763 del 2013, el consumo digital ha aumentado dr´asticamente hasta los 241 millones desde los 170 millones del 2013. Por desgracia nos tenemos que remontar hasta el a˜no2011 para encontrar el ´ultimoinforme publicado por AEVI sobre la penetraci´ondel videojuego en Espa˜na3. Seg´undicho informe el volumen de jugadores en Espa˜naes del 24 % frente al 25.4 % de Europa. En Espa˜nael porcentaje de jugadores aumenta hasta un 45.3 % en la franja de edad de los 7 a los 34 a˜nos.Del total de jugadores un 59 % son hombres y un 41 % mujeres; desde la fecha del informe existe una tendencia al aumento de jugadoras debido en gran parte al ´exitode los juegos para m´oviles.

2.2. G´enerosen los videojuegos

Los videojuegos proporcionan a la Inteligencia Artificial (IA) un campo de pruebas muy interesante de cara a la investigaci´on.Tanto si se plantea resolver el juego desde el punto de vista del jugador, como entorno para una infinidad de problemas aislados [Laird and van Lent, 2001].

Cuando un investigador quiere usar un videojuego para probar una t´ecnica de IA, podr´aser de utilidad conocer los distintos tipos de juegos y qu´eposibilidades ofrece cada uno de ellos. Vamos a presentar una clasificaci´onbastante cl´asicatratando los principales g´enerosy sus problem´aticas.Si bien lo normal es encontrar un juego dentro de un ´unicog´enero,existen casos que toman elementos de varios g´eneros.

2.2.1. Acci´on

En este tipo de videojuegos el jugador debe hacer uso de sus reflejos, punter´ıay habilidad, a menudo en un contexto de combate o de superaci´onde obst´aculosy peligros. Dentro de este g´enero se agrupan los juegos de disparos, de lucha, de plataformas, etc.

Los juegos de acci´onplantean problemas que por lo general deben resolverse en tiempo real. Siendo el comportamiento de los bots4 uno de los principales focos de investigaci´on. Se busca que los enemigos se comporten de forma natural y racional, evitando patrones que

1Asociaci´on Espa˜nolade Videojuegos - www.aevi.org.es 2M´asinformaci´onen El consumo global de videojuegos en Espa˜nafue de 996 millones de euros en 2014 3M´asinformaci´onen El videojugador espa˜nol:perfil, h´abitose inquietudes de nuestros gamers 4En el ambiente de los videojuegos, se conoce como bot a programas que son capaces de jugar por s´ımismos el juego en cuesti´on.

10 Cap´ıtulo2. Estado de la Cuesti´on Alvaro´ Parra de Miguel los jugadores puedan aprovechar en su beneficio. La competici´on2K BotPrize1 premia el desarrollo de bots cuyo comportamiento sea indistinguible del de jugadores humanos.

2.2.2. Aventuras

En los videojuegos de aventuras el jugador encarna a un protagonista que debe avanzar por la trama interactuando con diversos personajes y objetos.

Aunque este tipo de juegos no se han usado tradicionalmente para el estudio de la IA, ofrece, sin embargo, interesantes posibilidades en el desarrollo de t´ecnicasde lenguaje natural para interactuar con los personajes no jugadores o de t´ecnicasde planificaci´onpara el desarrollo autom´aticode tramas.

2.2.3. RPG (role-playing game)

En un principio los juegos de RPG se encontraban en un limbo entre los juegos de acci´on y los de aventura, seg´unel ´enfasispuesto en la acci´ono en la historia, pero con el tiempo se han ido consolidando como un g´eneropropio de pleno derecho. Este tipo de juegos se caracterizan por una historia profunda y una evoluci´ondel personaje a medida que la historia avanza. La exploraci´ony la interacci´oncon otros personajes son claves en los RPG.

Si bien parece que el pathfinding o b´usquedade caminos est´aresuelto desde hace a˜nos, a´unhoy podemos encontrar casos en que los pnjs2 quedan atascados. Esto ha ocurrido en juegos tan famosos como el Diablo 2 (Blizzard North, 2000), Neverwinter Nights (BioWare, 2002) o V: Skyrim (, 2011).

La tendencia en este tipo de juegos es la de generar mundos abiertos cada vez m´asgrandes, donde los jugadores pueden explorar libremente e interactuar con el entorno a su antojo. Las dimensiones de este tipo de juegos parecen no tener l´ımites,hac´ıapoco que el juego Grand Theft Auto V (Rockstar North, 2013) bati´otodos los r´ecordscon un mapa de 81 kil´ometroscuadrados, pero este mismo a˜noel juego The Witcher 3: Wild Hunt (CD Projekt RED, 2015) trae un mapa de 136 kil´ometroscuadrados. Lo interesante de estos mundos abiertos es que son din´amicosy van cambiando y evolucionando sin necesidad de interacci´on por parte del jugador.

1M´asinformaci´onen botprize.org 2personajes no jugadores

11 Cap´ıtulo2. Estado de la Cuesti´on Alvaro´ Parra de Miguel

2.2.4. Estrategia

Los juegos de estrategia se caracterizan por la necesidad de manipular a un numeroso grupo de personajes, objetos o datos, haciendo uso de la inteligencia y la planificaci´onpara lograr los objetivos. Aunque la mayor´ıade estos juegos son fundamentalmente de tem´aticab´elica, los hay tambi´ende estrategia econ´omica,empresarial o social.

Cuando se habla de juegos de estrategia hay que diferenciar los juegos en tiempo real como StarCraft II (Blizzard Entertainment), de los que son por turnos como Sid Meier’s Civilization V (Firaxis Games). En este tipo de juegos suele haber un agente que compite contra el jugador humano, este agente deber´atomar decisiones y planificar una estrategia a seguir para hacerse con la victoria.

En los juegos b´elicosde estrategia en tiempo real, el movimiento de las unidades por el mapa ha supuesto un serio problema a resolver. Buscar el camino m´ascorto, no entorpecer el paso de unidades aliadas o adaptarse a los cambios del terreno son problemas habituales de los juegos de estrategia. En el juego StarCraft II se emple´ouna t´ecnicapara mover a la vez a varias unidades de forma coordinada emulando el comportamiento de un enjambre1.

2.2.5. Simulaci´on

Este g´enerose caracteriza por recrear situaciones o actividades del mundo real, dejando al jugador tomar el control de lo que ocurre. Lo habitual es que este tipo de juegos simulen la conducci´onde veh´ıculos,la gesti´onde negocios o el manejo de situaciones cotidianas. Iconos del g´eneroson juegos como Simulator (ACES Game Studio), SimCity (Maxis) o The Sims (Maxis).

Un juego de simulaci´onpuro tiene como prioridad el desarrollo de un buen motor f´ısico, pero lo normal es que estos juegos entren tambi´endentro de los g´enerosde acci´ono de estrategia, permitiendo desarrollar las t´ecnicaspropias de estos otros g´enerosen un entorno m´asrealista.

2.2.6. Casual

Cualquier juego que sea sencillo de jugar y que no requiera de mucho tiempo puede con- siderarse un juego casual. Si bien este tipo de juegos, orientados en especial a los p´ublicos m´asj´ovenes, son f´acilesde manejar pero no de desarrollar.

1M´asinformaci´onen http://www.teamliquid.net/forum/starcraft-2/132171-the-mechanics-of-sc2-part- 1The Mechanics of Starcraft 2

12 Cap´ıtulo2. Estado de la Cuesti´on Alvaro´ Parra de Miguel

Por ejemplo, muchos de estos juegos usan interfaces no convencionales como puede ser la c´amaraKinect. La IA puede ayudar a desarrollar programas de reconocimiento facial, reconocimiento de movimientos, reconocimiento de voz, etc.

2.3. Inteligencia Artificial en videojuegos

El objetivo que persigue la Inteligencia Artificial es la aplicaci´onde t´ecnicasautom´aticas que permitan resolver problemas para los cuales ser´ıapreciso el razonamiento humano. La IA se ha centrado generalmente en la elaboraci´onde sistemas complejos, los cuales suelen conllevar un fuerte componente algor´ıtmico y un elevado coste computacional. Primero mencionaremos algunas de las t´ecnicasde IA que se emplean en los videojuegos recogidas en [Millington and Funge, 2009], para despu´esrepasar algunas metas que a´unquedan por conquistar seg´un[Rabin, 2015].

2.3.1. T´ecnicas de IA aplicables en los videojuegos

2.3.1.1. Pathfinding o b´usquedade caminos

Consiste en determinar el camino a seguir para ir de un punto a otro en un entorno dado. Teniendo un entorno convenientemente representado y decididos los puntos de origen y destino, un algoritmo de b´usquedadevuelve una lista de vectores que indican las acciones o movimientos necesarios para alcanzar la meta. El algoritmo m´asempleado en la actualidad es el A*.

2.3.1.2. M´aquinasde estado

Usar aut´omatasfinitos es una de las t´ecnicasm´asempleadas, define un conjunto finito de estados y unas transiciones entre ellos, con un ´unicoestado activo en cada momento. Lo normal es que cada estado represente un comportamiento, cambiando de estado en respuesta a determinados eventos. Por ejemplo, si un bot est´aen un estado vigilar y se dispara un evento enemigo cercano, esa acci´oncambiar´ıael estado a atacar.

Si en vez de usar aut´omatas finitos usamos aut´omatasa pila, al contrario que suced´ıaantes, se podr´aguardar informaci´onsobre las acciones y estados previos. Por ejemplo, cuando un bot sufre una amenaza puntual y se genera un evento que interrumpe una tarea programada, una vez pasada la amenaza la pila aporta la informaci´onnecesaria para retomar su actividad anterior.

13 Cap´ıtulo2. Estado de la Cuesti´on Alvaro´ Parra de Miguel

2.3.1.3. Aprendizaje por refuerzo

Se trata de una t´ecnicaque permite generar funciones de decisi´ona base de prueba y error, recompensando los resultados positivos y penalizando los negativos. Un ejemplo muy representativo de esta t´ecnicaest´aen el juego Black & White (, 2001), en el cual el jugador debe ense˜nara su mascota gigante c´omodebe comportarse, premiando o castigando sus acciones.

2.3.1.4. L´ogicadifusa o fuzzy logic

Se trata de una extensi´onde la l´ogicacl´asicaen la cual los hechos no son estrictamente ciertos o falsos. Por ejemplo, en la l´ogicacl´asicauna cerveza puede estar fr´ıao caliente, mientras que en la l´ogicadifusa puede estar fr´ıacon una certeza de un 40 % (templada), de un 90 % (muy fr´ıa)o cualquier otro valor porcentual entre 0 (nada) y 100 (todo).

2.3.2. Metas a conquistar

2.3.2.1. Pathfinding o b´usquedade caminos

Implementar en un juego el movimiento de agentes suele implicar encontrar caminos que conecten dos localizaciones a trav´esdel espacio del mundo representado. Afortunadamente existen soluciones a las formas m´asb´asicasde este problema, como Dijkstra o A*. Pero el problema a´unest´alejos de estar resuelto cuando: las dimensiones del entorno son demasiado grandes, resulta dif´ıcil encontrar una buena heur´ıstica,el mundo es din´amicoo haya que manejar coordinadamente a varios agentes.

Por otra parte tambi´enqueda mucho trabajo por delante, no solo por conseguir una ruta ´optimaen el menor tiempo posible, sino en darle sentido y coherencia a los movimientos de los bots.

2.3.2.2. Conversaciones

T´ıpicamente las conversaciones en los videojuegos se reducen a cinem´aticasque siguen un gui´ono conversaciones en las que solo se pueden elegir frases preestablecidas. Estos ´arboles de di´alogosson muy costosos de construir pues deben tener en cuenta todos los posibles escenarios, hacen falta guionistas que den forma a los textos y dobladores que pongan las voces.

14 Cap´ıtulo2. Estado de la Cuesti´on Alvaro´ Parra de Miguel

Explorando un poco nos adentramos en el territorio del lenguaje natural. Se nos plantea un futuro en el que las conversaciones no est´enpredeterminadas y puedan surgir conversaciones de forma autom´aticateniendo en cuenta el contexto de la situaci´on.

2.3.2.3. Historias din´amicas

De forma similar a lo que ocurre con las conversaciones, las historias en los videojuegos siguen unos guiones fijos de los que el jugador no puede salirse. En este caso en vez de aden- trarnos en el mundo del lenguaje natural nos adentramos en el terreno de la planificaci´on.

Es posible que dentro de unos a˜nosno haya necesidad de guiones prefijados, que la historia se desarrolle de forma din´amicaen funci´onde la interacci´ondel jugador con el entorno que lo rodea.

2.3.2.4. Modelar el comportamiento de los jugadores

Un juego que sea capaz de adaptarse al jugador es el sue˜node muchas compa˜n´ıas de videojuegos. Adaptarse a sus gustos, a su forma de jugar, a su nivel de habilidad, etc. Hoy en d´ıamuchas compa˜n´ıasrecolectan datos on-line sobre el uso de los jugadores en sus videojuegos para modificarlos en consecuencia en posteriores actualizaciones.

La idea que se plantea es que los juegos, autom´aticamente, sean capaces de adaptarse a los gustos personalizados de cada jugador.

2.3.2.5. Relaciones sociales

Cada vez son m´asfrecuentes los videojuegos que albergan un mundo abierto. Estos suelen estar plagados de pnjs1 que “viven sus propias vidas”. Por desgracia estas interacciones sociales son muy limitadas. Ser´ıamuy interesante la aparici´onde mundos abiertos, donde las interacciones entre sus habitantes fuesen lo m´asrealista posible e influyeran en el estado del mundo sin necesidad de que influya el jugador.

2.3.2.6. Escalabilidad

Las t´enicasde IA deben adaptarse a las nuevas plataformas que se usan en los videojuegos. Estas plataformas, por lo general navegadores web y dispositivos m´oviles,cuentan con menos recursos que las plataformas cl´asicas.La IA no debe centrar todos sus esfuerzos

1personajes no jugadores

15 Cap´ıtulo2. Estado de la Cuesti´on Alvaro´ Parra de Miguel en resolver problemas cada vez m´ascomplejos, tambi´endebe buscar formas de refinar las t´ecnicasexistentes para que consuman menos recursos.

2.4. Competici´on

La motivaci´onprincipal de este proyecto fue participar en la primera edici´onde la com- petici´onGrid-Based Path Planning Competition (GPPC)1. Dicha edici´onse celebr´oen el marco de la conferencia Symposium on Combinatorial Search (SoCS) de 2012 [Borra- jo et al., 2012]. El organizador de la competici´ones Nathan Sturtevant2, actualmente es Profesor Ayudante Doctor de la Universidad de Denver. Tambi´enha colaborado como con- sultor para la compa˜n´ıade videojuegos BioWare en temas relacionados con la b´usquedade caminos para juegos como el Dragon Age.

El objetivo de la competici´ones el de crear un punto de encuentro donde los investigadores puedan comparar sus trabajos sobre b´usqueda. Para ello se provee de una bater´ıade pro- blemas de mapas de cuadr´ıcula3, se emplean este tipo de mapas porque son usados tanto en investigaci´oncomo en aplicaciones comerciales.

2.4.1. Definici´ondel problema

La competici´onest´aorientada al problema del pathfinding en los videojuegos, para el caso particular en el que los mapas est´anpredefinidos y la b´usqueda deba realizarse en el menor tiempo posible para no restar recursos al motor gr´afico.Se ha simplificado el problema para un ´unicoagente, siendo el mapa est´aticoy con costes uniformes.

Los mapas que se usan en la competici´onson abstracciones de mapas reales de videojuegos y mapas generados aleatoriamente. Todos los mapas son cuadr´ıculasrectangulares, siendo cada celda de la cuadr´ıculatransitable o no transitable. El tama˜nom´aximode los mapas ser´ade 2048 por 2048 celdas. Como un agente solo puede estar en una celda a la vez, el n´umerode estados de cada mapa ser´ael n´umerode celdas transitables. El n´umero m´aximo de estados que puede tener un mapa es de 222 estados, algo m´asde cuatro millones.

Los tipos de mapas que se van a usar en la competici´onson:

- Mapas de videojuegos: Mapas reales de videojuegos que han sido adaptados a las caracter´ısticasde la competici´on.Pueden representar edificios o espacios abiertos.

1M´asinformaci´onen movingai.com/GPPC 2M´asinformaci´onen www.cs.du.edu/˜sturtevant 3M´asinformaci´onen www.movingai.com/benchmarks

16 Cap´ıtulo2. Estado de la Cuesti´on Alvaro´ Parra de Miguel

- Laberintos: Laberintos generados aleatoriamente. El ancho de los pasillos en un mapa puede ser de 1, 2, 4, 8, 16 o 32 celdas.

- Aleatorios: Dado un mapa con todas las celdas transitables, se ponen obst´aculosen el mapa de forma aleatoria. Si hay varias regiones inconexas en el mapa, se selecciona la regi´onm´asgrande y se rellenan de obst´aculoslas otras regiones. El porcentaje de obst´aculosen el mapa puede ser del 10 %, 20 %, 25 %, 30 %, 35 % o 40 %.

- Habitaciones: Una malla de habitaciones cuadradas conectadas por puertas aleato- rias. Si una habitaci´onqueda aislada se rellenar´ade obst´aculos.El tama˜node las habitaciones puede ser de 8x8, 16x16, 32x32 o 64x64 celdas.

Figura 2.6: Tipos de mapas. De izquierda a derecha: videojuego (edificio), videojuego (espacios abiertos), laberinto, aleatorio, habitaciones.

Por cada mapa hay dos archivos. Un archivo que contiene la informaci´ondel mapa: el alto, el ancho y qu´eceldas son o no transitables. Y un archivo que alberga una bater´ıade pruebas. Cada prueba consta de: las coordenadas de la celda de salida, las coordenadas de la celda de meta y la longitud del camino ´optimoque las conecta.

Dado que el mapa es una cuadr´ıcula,cada celda puede tener hasta 8 vecinos. Las acciones de las que dispone un agente para desplazarse por el mapa son: movimiento cardinal (Norte, Este, Sur, Oeste) y movimiento diagonal (Noreste, Sureste, Suroeste, Noroeste). Para que un movimiento cardinal sea posible, la celda de destino debe ser transitable. Para que un movimiento diagonal sea posible, la celda de destino y las celdas adyacentes tanto a la celda de origen como a la de destino deben ser transitables. Los respectivos costes para √ movimientos cardinales y diagonales son 1 y 2.

17 Cap´ıtulo2. Estado de la Cuesti´on Alvaro´ Parra de Miguel

Figura 2.7: Ejemplos de los posibles movimientos en funci´onde los obst´aculoscolindantes

La competici´onse divide en dos fases, una fase offline y otra fase online. En la fase offline se preprocesa el mapa para obtener toda la informaci´onposible que ayude en la b´usqueda de caminos. Una vez ha terminado el preprocesado, se debe guardar la informaci´onen un archivo. En la fase online lo primero que se hace es cargar a memoria la informaci´ondel archivo antes mencionado. Despu´es,para cada problema de la bater´ıa,se busca un camino que conecte las celdas de salida y de meta. Los caminos se pueden devolver enteros o a intervalos.

En la fase offline hay un l´ımitede 30 minutos para precomputar cada mapa. No hay res- tricciones de memoria. Se permite el uso de hilos. El archivo resultante no puede ocupar m´asde 50 MB.

En la fase online no hay l´ımitede tiempo. El l´ımitede memoria, incluyendo el programa y la informaci´ondel mapa, es de 51 MB. No se pueden usar varios hilos durante esta fase, toda la ejecuci´ondeber´acorrer sobre un ´unicohilo. Cada prueba que se ejecute durante esta fase generar´alos siguientes datos: tiempo total, tiempo de los 20 primeros pasos, mayor tiempo de un intervalo y sub-optimalidad del camino. La sub-optimalidad se entiende como (longitud del camino resultante)/(longitud del camino ´optimo).

Para evaluar las soluciones propuestas a la competici´onse usan las siguientes categor´ıas:

- Tiempo total y sub-optimalidad del camino completo.

- Tiempo de los 20 primeros pasos y sub-optimalidad del camino completo.

- Mayor tiempo de un intervalo y sub-optimalidad del camino completo.

Todas las categor´ıasson multiobjetivo, se tiene en cuenta el tiempo y la sub-optimalidad. Una soluci´onse considera vencedora en una categor´ıasi no est´adominada por ninguna otra soluci´on.

18 Cap´ıtulo2. Estado de la Cuesti´on Alvaro´ Parra de Miguel

La organizaci´onprovee a los participantes de una interfaz que no puede ser modificada y una soluci´onde ejemplo con las funciones b´asicasque ser´anllamadas durante el desarrollo de la competici´on.

2.5. Pathfinding

El pathfinding es un dominio de las ciencias de la computaci´oncuyo objetivo consiste en encontrar un camino desde un nodo origen start a un nodo destino goal en un grafo Graph(Vertices, Edges). Aplicado con frecuencia en el ´ambito de los videojuegos, hoy en d´ıase sigue investigando para conseguir soluciones lo m´ascercanas a la soluci´on´optima, en el menor tiempo posible, para problemas cada vez m´ascomplejos.

El proceso de pathfinfing podemos dividirlo en tres componentes: el grafo, la heur´ısticay el algoritmo de b´usqueda.

2.5.1. Grafo

Un grafo en el ´ambito de las ciencias de la computaci´ones una estructura de datos que consiste en un conjunto de nodos (o v´ertices)y un conjunto de arcos (o aristas) que esta- blecen relaciones entre los nodos. En nuestro problema los mapas se representan con grafos en los que cada nodo equivale a una celda transitable y cada arco equivale al coste y acci´on de movimiento entre dos celdas.

Figura 2.8: Representaci´onde un mapa con un grafo

Cuando el n´umerode nodos del grafo es demasiado grande para que los algoritmos de b´usquedafuncionen eficazmente se puede transformar el espacio de b´usquedapara simpli- ficar el problema. Repasemos a continuaci´onalgunas de las t´ecnicasm´asusadas.

19 Cap´ıtulo2. Estado de la Cuesti´on Alvaro´ Parra de Miguel

2.5.1.1. Waypoint o puntos de referencia

Los waypoints son puntos de referencia seleccionados del espacio de b´usquedacon los que se genera un subgrafo, en el cual los nodos equivalen a los waypoints y los arcos equivalen a los caminos precomputados que los conectan. A la hora de buscar un camino en el grafo original, si el nodo de origen y el nodo de destino son waypoints del subgrafo, solo necesitamos realizar la b´usquedaen el subgrafo. Pero si uno de esos nodos no pertenece al subgrafo, har´afalta buscar un camino que lo conecte al subgrafo.

Si hay pocos waypoints, la b´uquedaen el subgrafo ser´am´asr´apida, pero costar´aconectar los nodos originales al subgrafo. Si hay muchos waypoints, ser´am´assencillo conectar los nodos al subgrafo, pero la b´usquedaen el subgrafo ser´am´aslenta.

2.5.1.2. Navigation mesh o malla de navegaci´on

La navigation mesh o navmesh o malla de navegaci´on,consiste en representar el espacio de b´usquedacomo un conjunto de regiones, las cuales cumplen las siguientes propiedades:

- No existe ning´unobst´aculoque se interponga en el camino m´ascorto entre dos puntos pertenecientes a la misma regi´on.

- Dadas dos regiones conexas A y B, no existe ning´unobst´aculoque se interponga en el camino m´ascorto entre cualquier punto de la regi´onA y la regi´onB.

- Los costes de los movimientos dentro de una misma regi´onson uniformes.

Figura 2.9: Ejemplo de un navigation mesh

20 Cap´ıtulo2. Estado de la Cuesti´on Alvaro´ Parra de Miguel

Del subgrafo resultante, cada nodo equivale a una regi´ony cada arco equivale a la conexi´on entre dos regiones.

2.5.1.3. Voronoi

Voronoi es una t´ecnicapara particionar un espacio en regiones. Dado un subconjunto de semillas prefijadas de antemano, cada semilla estar´aasociada a una regi´onde Voronoi. Cada una de estas regiones agrupa a todos aquellos puntos que se encuentran m´aspr´oximosde su semilla que de la semilla de otra regi´on.

Figura 2.10: Ejemplo de regiones de Voronoi

Aunque el espacio de b´usquedade nuestro problema sea discreto se puede utilizar Voronoi. Una vez se hayan seleccionado los nodos que actuar´ancomo semillas, se puede utilizar como funci´onde distancia un Dijkstra que nos dir´acual es la semilla m´ascercana a cada punto.

2.5.1.4. Quadtree o ´arbol cuaternario

Un Quadtree es un tipo de estructura de datos con forma de ´arbol basada en el principio de descomposici´onrecursiva del espacio.

En nuestro caso el Quadtree representa el espacio transitable del mapa con regiones cuadra- das. Las grandes ´areassin obst´aculosse podr´anrepresentar con pocos cuadrados, mientras que las ´areascon bordes irregulares u obst´aculosnecesitar´ande muchos cuadrados peque˜nos.

21 Cap´ıtulo2. Estado de la Cuesti´on Alvaro´ Parra de Miguel

Primero abarcamos todo el mapa con un cuadrado, si dentro del cuadrado hay celdas transitables y celdas no transitables dividimos el cuadrado en 4 cuadrados. Repitiendo esta operaci´onde forma recursiva hasta que todas las celdas dentro de un cuadrado sean o transitables o intransitables.

Figura 2.11: Ejemplo de un Quadtree

2.5.2. Heur´ıstica

La heur´ısticaes el conocimiento parcial sobre un dominio que permite resolver problemas eficientemente. La funci´onheur´ıstica por lo general se obtiene por la relajaci´onde las restricciones del problema original, permitiendo conseguir una aproximaci´ona la soluci´on en un tiempo significativamente inferior al que se necesitar´ıa para resolver el problema original. Considerando h*(n) como una heur´ısticaperfecta que devuelve la soluci´on´optima del problema original, nuestra funci´onheur´ıstica h(n) ser´aadmisible si h(n) ≤ h*(n).

En el caso del pathfinding se suelen usar como heur´ısticasfunciones de distancia para ayudar a un algoritmo A* en la b´usqueda.Para nuestro problema se podr´ıanusar las siguientes funciones heur´ısticas. Vamos a considerar para los siguientes ejemplos que: el nodo origen ser´a n, el nodo destino ser´a n’, la distancia entre los nodos en el eje X ser´a x y la distancia entre los nodos en el eje Y ser´a y.

22 Cap´ıtulo2. Estado de la Cuesti´on Alvaro´ Parra de Miguel

2.5.2.1. Distancia Manhattan

Formula: f(n, n0) = x + y

Figura 2.12: Distancia Manhattan

2.5.2.2. Distancia euclidiana

√ Formula: f(n, n0) = x ∗ x + y ∗ y

Figura 2.13: Distancia euclidiana

23 Cap´ıtulo2. Estado de la Cuesti´on Alvaro´ Parra de Miguel

2.5.2.3. Distancia diagonal

√ Formula: f(n, n0) = max(x,y) − min(x,y) + min(x, y) ∗ 2

Figura 2.14: Distancia diagonal

2.5.3. Algoritmo de b´usqueda

Un Algoritmo es una serie ordenada de instrucciones, pasos o procesos que llevan a la soluci´onde un determinado problema. Vamos a repasar dos de los algoritmos m´asempleados para resolver problemas de pathfinding en videojuegos. Ser´annuestro punto de partida y los usaremos para evaluar los resultados obtenidos a lo largo del proyecto.

2.5.3.1. Dijkstra

El algoritmo Dijkstra es un algoritmo de b´usquedano informada con costes. Es un tipo de b´usquedaen amplitud que siempre expande aquel nodo que tenga menor coste desde el nodo ra´ız,por lo que cumple las siguientes propiedades:

- Completitud: Al tratar un problema con un conjunto finito de estados, encontrar´auna soluci´onsi la meta existe y es accesible.

- Admisibilidad: Al no haber costes negativos, de haberla, encontrar´ala soluci´on´opti- ma.

- Eficiencia: Buena si la meta est´acerca.

24 Cap´ıtulo2. Estado de la Cuesti´on Alvaro´ Parra de Miguel

- Complejidad: Consume memoria exponencial.

Los mapas de la competici´on,al tener forma de cuadr´ıculay costes uniformes, permiten implementar Dijkstra de una forma muy sencilla, solo hay que expandir primero los nodos cardinales y despu´eslos diagonales.

Figura 2.15: Estados expandidos por el algoritmo Dijkstra

2.5.3.2. A*

El algoritmo A-estrella o A* es un algoritmo de b´usquedaheur´ıstica.A diferencia de Dijkstra que solo expande en funci´onde la distancia desde el nodo ra´ız,en el algoritmo A* hay que a˜nadirel coste estimado hasta el nodo destino. Este coste estimado nos vendr´adado por la funci´onheur´ıstica que nosotros decidamos. Si la funci´onheur´ıstica es admisible, nunca devolver´aun valor mayor al coste real necesario para llegar al nodo destino, el A* devolver´auna soluci´on´optimasi el problema es finito y la soluci´onexiste.

- Completitud: Al tratar un problema con un conjunto finito de estados, encontrar´auna soluci´onsi la meta existe y es accesible.

- Admisibilidad: Al no haber costes negativos y usando una funci´onheur´ısticaadmisi- ble, si existe una soluci´on´optimala encontrar´a.

- Eficiencia: Depender´ade la funci´onheur´ıstica.

- Complejidad: Si la funci´onheur´ısticafuese perfecta consumir´ıamemoria linealmente, pero lo normal es que consuma memoria de forma exponencial.

25 Cap´ıtulo2. Estado de la Cuesti´on Alvaro´ Parra de Miguel

Figura 2.16: Estados expandidos por el algoritmo A*

2.5.4. Trabajos previos

Existen infinidad de trabajos publicados sobre pathfinding. Si bien durante la fase de inves- tigaci´onde este proyecto se analizaron multitud de ideas y propuestas, vamos a mencionar tres de los trabajos que han causado un mayor impacto en nuestro proyecto.

Una de las primera ideas que se estudi´odesarrollar fue la de emplear heur´ısticasen una transformaci´ondel mapa [Rayner et al., 2011]. Teniendo en mente un algoritmo A*, si usamos la distancia eucl´ıdea como funci´onheur´ıstica en el mapa original obtendremos malos resultados; terminaremos explorando muchos m´asestados de los necesarios a poco complicado que sea el mapa. La idea consiste en transformar el mapa para que la distancia eucl´ıdease aproxime a la distancia real a la meta, esa heur´ısticase aproxima a la heur´ıstica perfecta por lo que ser´ade gran ayuda para el A*.

Otra idea que se plante´ofue la detecci´onde basins o pozos en el mapa[Pochter et al., 2010]. Podr´ıamosdefinir un pozo como una zona que contiene un conjunto de puntos por los que no va a pasar ning´uncamino ´optimo que conecte dos puntos no pertenecientes a esta zona. Si conseguimos aislar estos basins cuando realizamos la b´usqueda,nos evitaremos expandir una cantidad considerable de estados.

Tambi´enes interesante el planteamiento de los gateways o portales de [Goldenberg et al., 2010], este planteamiento que qued´oaparcado en un primer momento fue retomado poste- riormente. La idea es que si tenemos el mapa dividido en regiones, a la hora de conectar dichas regiones entre s´ıno lo hacemos desde los centroides de los grupos, sino a trav´esde puntos en las fronteras entre regiones.

26 Cap´ıtulo3

Objetivos

El objetivo final de este proyecto es el desarrollo de un agente, llamado Bubble Dragon, con el que participar en la Grid-Based Path Planning Competition1 y obtener el mejor resultado posible.

La motivaci´ondel proyecto es que la soluci´onfinal que se presenta a la competici´onresulte vencedora en alguna de las tres categor´ıasexistentes. Para que una soluci´onse considere ganadora, ninguna otra soluci´onpuede dominarla en tiempo y longitud del camino. Al ser una competici´onmultiobjetivo puede haber m´asde un ganador en cada categor´ıa.

¿Qu´eobjetivos se plantean en este proyecto?

- Desarrollar un agente de pathfinding para participar en la Grid-Based Path Planning Competition.

- Reducir el espacio de b´usquedadurante la fase de preprocesamiento en cualquier tipo de mapa.

- Durante la fase de b´usquedaencontrar caminos, si puede ser ´optimos,en el menor tiempo posible aprovechando la informaci´onobtenida durante la fase de preprocesa- miento.

- Crear un entorno gr´aficoque permita depurar el c´odigoy obtener informaci´onvisual del funcionamiento de los algoritmos.

1M´asinformaci´onen GPPC

27 Cap´ıtulo4

Desarrollo

En esta secci´onse describe el proceso de creaci´onde un agente para participar en la Grid- Based Path Planning Competition1.

Se comienza detallando el an´alisis y dise˜nodel sistema para despu´esdescribir cada uno de los componentes y algoritmos que han sido desarrollados a lo largo del proyecto, intentando justificar de la forma m´asclara posible las decisiones que se han ido tomando en cada momento.

4.1. An´alisis del sistema

En la fase de an´alisisse van a determinar cuales son los requisitos del sistema, as´ıcomo cuales son los casos de uso que se han contemplado.

4.1.1. Requisitos del sistema

Los requisitos del sistema se dividen en dos categor´ıas:

- Agente (AGE): Todos los requisitos relacionados con el procesado de mapas y b´usque- da de caminos.

- Interfaz Gr´afica(GRA): Todos los requisitos relacionados con la interfaz gr´aficaque se utilizar´apara depurar visualmente el agente.

1M´asinformaci´onen GPPC

28 Cap´ıtulo4. Desarrollo Alvaro´ Parra de Miguel

Adem´as,los requisitos pueden ser de dos tipos: funcional (F) si expresa una funcionalidad que debe tener el sistema o no funcional (NF) si es una restricci´onal dise˜noo implementa- ci´ondel sistema.

De cada requisito se especifica:

1. Identificador: Identificador ´unicode cada requisito. Compuesto de tres partes: cate- gor´ıa,tipo y n´umero.

2. Nombre: Resumen del requisito.

3. Descripci´on:Explicaci´ondetallada del requisito.

AGE-F-01 Preprocesamiento de mapas

Durante la fase de preprocesamiento el agente debe ser capaz de extraer in- formaci´onde un mapa dado.

Tabla 4.1: Requisito AGE-F-01

AGE-F-02 Almacenar informaci´on

Una vez finalizada la fase de preprocesamiento el agente debe guardar toda la informaci´onrecopilada dentro de un fichero.

Tabla 4.2: Requisito AGE-F-02

AGE-F-03 Cargar informaci´on

Al inicio de la fase de b´usqueda,el agente debe ser capaz de cargar en me- moria toda la informaci´onguardada en el fichero creado al final de la fase de preprocesamiento.

Tabla 4.3: Requisito AGE-F-03

AGE-F-04 Buscar caminos

Durante la fase de b´usquedael agente debe ser capaz de encontrar un camino que conecte un punto de origen con un punto de destino.

Tabla 4.4: Requisito AGE-F-04

29 Cap´ıtulo4. Desarrollo Alvaro´ Parra de Miguel

AGE-NF-01 Dimensiones de los mapas

El agente deber´aser capaz de operar con mapas de un tama˜noigual o inferior a 2048x2048 celdas.

Tabla 4.5: Requisito AGE-NF-01

AGE-NF-02 L´ımitede tiempo en la fase de preprocesamiento

El agente deber´aser capaz de completar la fase de preprocesamiento en un tiempo m´aximode 30 minutos.

Tabla 4.6: Requisito AGE-NF-02

AGE-NF-03 L´ımitede tama˜nodel fichero resultante de la fase de preproce- samiento

El fichero generado al final de la fase de preprocesamiento debe tener un tama˜nom´aximode 50MB.

Tabla 4.7: Requisito AGE-NF-03

AGE-NF-04 L´ımitede hilos en la fase de preprocesamiento

El agente no podr´autilizar m´asde 8 hilos durante la fase de preprocesamiento.

Tabla 4.8: Requisito AGE-NF-04

AGE-NF-05 L´ımitede memoria en la fase de b´usqueda

El agente tiene limitado el uso de memoria a 51MB durante la fase de b´usque- da.

Tabla 4.9: Requisito AGE-NF-05

AGE-NF-06 L´ımitede hilos en la fase de b´usqueda

El agente no podr´autilizar m´asde un ´unicohilo durante la fase de b´usqueda.

Tabla 4.10: Requisito AGE-NF-06

30 Cap´ıtulo4. Desarrollo Alvaro´ Parra de Miguel

AGE-NF-07 Prohibidas las comunicaciones

El agente no podr´acomunicarse con terceras partes bajo ninguna circunstan- cia, ni acceder a informaci´onalmacenada en la nube.

Tabla 4.11: Requisito AGE-NF-07

GRA-F-01 Representar adecuadamente el estado del mapa

Debe crearse un entorno gr´aficoque aporte informaci´onvisual del funciona- miento del agente y ayude en la tarea de depurar el c´odigo.

Tabla 4.12: Requisito GRA-F-01

GRA-NF-01 Dimensiones de los mapas

El entorno gr´aficodebe ser capaz de representar mapas de un tama˜noigual o inferior a 2048x2048 celdas.

Tabla 4.13: Requisito GRA-NF-01

4.1.2. Casos de uso

Los casos de uso permiten especificar c´omodeber´ıainteractuar el sistema con los usuarios en diferentes escenarios, dejando claras las funcionalidades que tendr´aque proporcionar a los usuarios.

Los actores son entidades externas que interact´uancon la aplicaci´on.En este caso solo tenemos un actor:

- Evaluador: Herramienta creada por la organizaci´onde la competici´onque interact´ua con nuestro agente y eval´uasus resultados.

31 Cap´ıtulo4. Desarrollo Alvaro´ Parra de Miguel

Figura 4.1: Diagrama de casos de uso

ID CU01

Nombre Preprocesar mapa

DESCRIPCION´ El agente preprocesa el mapa con el fin de obtener informaci´onque ser´autilizada m´astarde a la hora de buscar caminos

ACTORES Evaluador

PRECONDICIONES Ninguna

POSTCONDICIONES El mapa ha sido preprocesado

ESCENARIO - Cargar el mapa

- Configurar el agente para el preprocesamiento

- Obtener informaci´ondel mapa

- Guardar dicha informaci´onen un fichero

Tabla 4.14: Caso de Uso CU01

32 Cap´ıtulo4. Desarrollo Alvaro´ Parra de Miguel

ID CU02

Nombre Preparar la b´usqueda

DESCRIPCION´ El agente se prepara para buscar caminos que conecten pares de puntos, origen y destino, en un mapa dado

ACTORES Evaluador

PRECONDICIONES El mapa ha sido preprocesado

POSTCONDICIONES El agente est´alisto para buscar

ESCENARIO - Cargar el mapa

- Cargar el fichero creado en la fase de preprocesamiento

- Configurar el agente para la b´usqueda

Tabla 4.15: Caso de Uso CU02

ID CU03

Nombre Realizar la b´usqueda

DESCRIPCION´ El agente busca un camino que conecte un par de puntos, origen y destino, en un mapa dado

ACTORES Evaluador

PRECONDICIONES El agente est´alisto para buscar

POSTCONDICIONES Se ha obtenido un camino

ESCENARIO - Buscar un camino que conecte las coordenadas de origen y destino

Tabla 4.16: Caso de Uso CU03

33 Cap´ıtulo4. Desarrollo Alvaro´ Parra de Miguel

4.2. Dise˜nodel sistema

El dise˜nodel sistema en este proyecto viene determinado por la configuraci´onde la compe- tici´on,por lo tanto, nos vemos limitados a desarrollar una arquitectura monol´ıticaen la que nuestro agente debe implementar una interfaz predeterminada. Por otra parte, los exigentes requisitos de memoria en la competici´onhan determinado elecciones de dise˜nocomo el uso de structs en lugar de clases con tal de ahorrar el m´aximo de memoria posible.

A trav´esdel uso de diagramas de clases y diagramas de secuencia vamos a tratar de explicar el dise˜node este sitema.

4.2.1. Diagramas de clases

Interfaz gr´aficade pruebas

Definimos una interfaz y una clase a trav´esde la cual vamos a poder seguir de forma visual la traza de los algoritmos durante la depuraci´onde los mismos.

Figura 4.2: Diagrama de clases de la interfaz gr´aficade pruebas

34 Cap´ıtulo4. Desarrollo Alvaro´ Parra de Miguel

Agente de la competici´on

Aqu´ıvemos el dise˜nodel agente, siguiendo la interfaz de la competici´on,el cual se encarga de realizar las fases de preprocesamiento y de b´usquedade caminos.

Figura 4.3: Diagrama de clases del agente

35 Cap´ıtulo4. Desarrollo Alvaro´ Parra de Miguel

4.2.2. Diagramas de secuencia

Secuencia de preprocesamiento

En el primer paso de la fase de preprocesamiento el evaluador pide al agente que se iden- tifique, despu´esle pasa la informaci´ondel mapa para que la analice. El agente, despu´esde tratar los datos, guarda la informaci´ongenerada en un fichero y devuelve la ejecuci´onal evaluador.

Figura 4.4: Diagrama de secuencia del preprocesamiento

Secuencia de b´usqueda

En el primer paso de la fase de b´usqueda el evaluador pide al agente que se identifique, despu´esle pasa la informaci´ondel mapa y el nombre del fichero del que puede leer la infor- maci´onobtenida en la fase previa. Cuando el agente est´alisto para la b´usquedadevuelve la ejecuci´onal evaluador para que empiece a mandarle problemas (coordenadas de origen y destino). El agente puede resolver el camino que conecta esas dos coordenadas de dos formas, por un lado puede devolver el camino completo y por otro lado puede devolver el camino en trozos. Es necesario poder devolver el camino por partes para poder evaluar la m´etricade Mayor tiempo por intervalo vista en la definici´ondel problema 2.4.1.

36 Cap´ıtulo4. Desarrollo Alvaro´ Parra de Miguel

Figura 4.5: Diagrama de secuencia de la b´usqueda

4.3. Pruebas de software

En ingenier´ıadel software es fundamental establecer un control de calidad a la hora de desarrollar c´odigo,las pruebas son una herramienta b´asicaque nos ayudan a conseguir un m´ınimode calidad. En este proyecto, antes de implementar ning´unalgoritmo, se puso especial ´enfasisen la fase de pruebas. Por un lado, se cre´ouna bater´ıade pruebas para comprobar el correcto funcionamiento de los algoritmos y medir su rendimiento (tiempo y distancia por camino). Por otra parte, se desarroll´oun depurador gr´aficopara poder trazar el funcionamiento de los algoritmos y tener una ayuda visual que nos indique por qu´epueden estar fallando. El agente que se present´oa la competici´onno dio ning´unerror durante las distintas fases de la misma, de todos los participantes solo dos consiguieron este logro.

Un tipo de pruebas que se han utilizado son las pruebas unitarias de caja negra. Los par´ame- tros de cada prueba unitaria son: un mapa, una coordenada de origen, una coordenada de destino y la distancia del camino ´optimoque las conecta. Cada prueba unitaria devuelve: si

37 Cap´ıtulo4. Desarrollo Alvaro´ Parra de Miguel ha sido capaz de encontrar un camino, cu´anto tiempo ha tardado en calcular el camino y la sub-optimalidad del camino encontrado respecto al ´optimo.La organizaci´onnos provee de mapas y problemas de ejemplo1. En total son unos 512 mapas y para cada mapa hay una media de unos 4000 problemas, por lo tanto tenemos a nuestro alcance un total aproximado de 2 millones de pruebas unitarias.

Para realizar la traza de los diferentes algoritmos se dise˜n´oun depurador gr´afico.Partien- do de la librer´ıagr´aficaSDL2, utilizada con frecuencia en la creaci´onde videojuegos, se cre´oun entorno de pruebas ad hoc para pruebas manuales de caja blanca. Este depurador gr´aficofue de vital importancia para poder analizar la informaci´onobtenida en la fase de preprocesamiento, as´ıcomo para depurar el funcionamiento de los diferentes algoritmos implementados.

Figura 4.6: Interfaz gr´afica

1M´asinformaci´onen www.movingai.com/benchmarks 2Simple DirectMedia Layer - www.libsdl.org

38 Cap´ıtulo4. Desarrollo Alvaro´ Parra de Miguel

4.4. Algoritmo de b´usqueda

El objetivo en la fase de preprocesamiento es la de extraer informaci´ondel mapa que agilice la b´usquedade caminos. Vamos a estudiar qu´esoluciones se adaptan mejor a nuestro problema concreto y explicar en detalle la soluci´onimplementada.

Pero antes de nada, ¿es posible usar la fuerza bruta para resolver el problema? En otras palabras, ¿podemos precalcular todos los posibles caminos del mapa para no necesitar buscar en la siguiente fase? Si el tama˜nom´aximodel mapa es de 2048x2048 nodos, es decir 4*220 nodos, habr´aun m´aximode 16*240 caminos. Si la informaci´onque queremos guardar por cada uno de esos caminos es el siguiente nodo a visitar y cada nodo tiene un m´aximode 8 vecinos (23), necesitamos 128*240 bits = 512 GigaBytes. Dado que el l´ımitede memoria de la competici´ones de 51 MegaBytes esta soluci´onqueda descartada.

El mapa de la competici´onlo representamos como un grafo en el que cada nodo equivale a una celda del mapa. Los arcos que representan movimientos diagonales tienen un coste de √ 2, mientras que los arcos que representan movimientos cardinales tienen un coste de 1.

Figura 4.7: Representaci´onde un mapa con un grafo

Como nos hemos propuesto en los objetivos, y porque no sabemos qu´etipo de mapas van a predominar en la competici´on,queremos conseguir una soluci´onque funcione correctamente en cualquier tipo de mapa de los vistos en 2.6. Vamos a analizar las diferentes t´ecnicas mencionadas en el apartado 2.5.1 para ver qu´eventajas e inconvenientes pueden tener.

Waypoints

Para usar waypoints hay que tener en mente tres factores: m´etodo para colocar los way- points, n´umerode waypoints y conexi´onde nodos al subgrafo.

A la hora de posicionar los waypoints est´aclaro que no podemos hacerlo de forma manual, pero hacerlo de forma autom´aticano es tarea sencilla. Las diferentes formas que pode- mos encontrarnos en los mapas de la competici´ondificultan encontrar una f´ormula para distribuir los waypoints eficientemente a lo largo del mapa.

39 Cap´ıtulo4. Desarrollo Alvaro´ Parra de Miguel

Por otra parte, si queremos garantizar el poder encontrar caminos ´optimos,deber´ıamos colocar un waypoint en cada arista del mapa. Si hacemos eso en un mapa de tipo random el espacio de b´usquedadel subgrafo no distanciar´amucho del espacio de b´usquedadel grafo original.

En cambio si prescindimos de encontrar caminos ´optimosy limitamos el n´umerode way- points, su implementaci´onen mapas de tipo videojuego o laberinto puede dar lugar a que resulte muy complicado encontrar un camino que conecte un nodo cualquiera al subgrafo.

Quadtree o ´arbol cuaternario

Los quadtree son una t´ecnicamuy buena si tratamos mapas que contengan grandes ´areas transitables. Por ejemplo los mapas de tipo room o algunos mapas de tipo videojuego.

Por el contrario, en mapas de tipo laberinto o de tipo aleatorio, el espacio de b´usqueda que se consigue con un quadtree es casi id´entico al del espacio de b´usquedaoriginal. Por lo tanto esta t´ecnicaes inservible para este tipo de situaciones.

Voronoi

La problem´aticade Voronoi es similar al de los waypoints, pues la dificultad que ata˜ne distribuir las semillas por el mapa de forma eficiente resulta ser un problema todav´ıam´as complejo que el que se pretende resolver.

Por otra parte si precalculamos el camino de cada celda del mapa a su semilla m´ascercana no necesitaremos buscar el camino que conecte cada nodo con el subgrafo, como pasa al usar waypoints. Pero el camino resultante distar´amucho del camino ´optimo.

Para usar Voronoi hay que predefinir el n´umerode semillas antes de aplicar la t´ecnica.Si son pocas semillas, tenemos el problema de la sub-optimalidad si conectamos cada punto a su semilla o el problema de buscar un camino que conecte a cada nodo con el subgrafo. Si son muchas semillas, tenemos el problema de que el espacio de b´usquedano va a disminuir lo suficiente como para acelerar la b´usqueda.

Navigation mesh

Esta t´ecnicaest´adesplazando cada vez m´asa los waypoints en el desarrollo de los video- juegos. Sin duda la que mejor comportamiento tiene de estas cuatro t´ecnicas.

Esta t´ecnicaobtendr´asus mejores resultados en mapas con formas geom´etricasbien defi- nidas como los mapas de tipo laberinto o de tipo habitaciones, lo cual reducir´aconside- rablemente el espacio de b´usqueda.

Su ´unicoproblema es que en mapas de tipo aleatorio, el n´umero de ´areasque hace falta generar ser´atan grande que el espacio de b´usquedano se ver´aafectado. Una l´astima,pues

40 Cap´ıtulo4. Desarrollo Alvaro´ Parra de Miguel sin duda era la t´ecnicam´asprometedora y genera regiones convexas en el mapa que facilitan la b´usqueda.

4.4.1. Regiones convexas

Lo ideal ser´ıapoder hacer uso de las regiones convexas que genera la t´ecnicade navigation mesh sin que se vea ralentizada la b´usquedade caminos en mapas de tipo aleatorio.

Pero, ¿por qu´equeremos dividir el mapa en regiones convexas? Porque la convexidad es una propiedad que facilita enormemente la b´usqueda.Al dividir un mapa en regiones convexas los obst´aculosdel mapa quedan posicionados en las fronteras entre regiones, por lo que no entorpecen la b´usquedacomo si estuviesen en mitad de una regi´on.Una analog´ıapodr´ıa ser la separaci´onde paises por elementos de la naturaleza como monta˜nasy r´ıos.

Figura 4.8: Ejemplo de regiones Figura 4.9: Ejemplo de regiones convexas c´oncavas

Veamos un ejemplo de regiones convexas y c´oncavas en un mapa de la competici´onpara tener una idea general de lo que estamos buscando conseguir.

41 Cap´ıtulo4. Desarrollo Alvaro´ Parra de Miguel

Figura 4.10: Comparaci´onentre regiones convexas (izquierda) y regiones c´oncavas (de- recha)

Como podemos observar, en el mapa de la izquierda aunque las regiones no sean totalmente convexas la b´usquedade caminos ser´amucho m´assencilla de realizar que en el mapa de la derecha.

4.4.2. Algoritmo para dividir el mapa

A la hora de dividir el mapa en regiones convexas tenemos una disyuntiva. Si usamos navi- gation mesh, el n´umerode regiones puede ser excesivo en mapas de tipo aleatorio. Nuestra aproximaci´ones crear un algoritmo que divida el mapa en un n´umeropredefinido de regiones lo m´asconvexas posibles. Aunque esto implique que las regiones no ser´ancompletamente convexas, esperamos que el subgrafo resultante agilice la b´usquedade caminos.

Si nos fijamos en la comparativa entre regiones convexas y c´oncavas en el mapa de la competici´on 4.10, se puede apreciar que las regiones convexas tiene menos superficie de contacto con sus vecinas que las regiones c´oncavas. Desde este punto se sigui´ola idea de que si conseguimos dividir el mapa en regiones con fronteras lo m´aspeque˜nasposibles, estas regiones pudieran ser m´asconvexas que c´oncavas.

Para dividir el mapa en regiones con la menor frontera posible se emple´oun algoritmo greedy que mediante un proceso iterativo agrupa los nodos en regiones buscando que el tama˜no de sus fronteras sea el menor posible. Empezamos con una lista de regiones, ordenada de menor a mayor por el tama˜node la frontera, que inicializamos introduciendo una regi´onpor cada nodo del grafo. Tambi´enhay que definir un n´umerom´aximode regiones para indicar al algoritmo cuando debe parar de agrupar.

42 Cap´ıtulo4. Desarrollo Alvaro´ Parra de Miguel

Figura 4.11: Diagrama de flujo del algoritmo que se utiliza para dividir el mapa en distintas regiones

43 Cap´ıtulo4. Desarrollo Alvaro´ Parra de Miguel

Veamos qu´eresultados obtenemos al aplicar este algoritmo para 128 regiones.

Figura 4.12: Mapa de tipo videojuego dividido en 128 regiones

Figura 4.13: Mapa de tipo laberinto dividido en 128 regiones

44 Cap´ıtulo4. Desarrollo Alvaro´ Parra de Miguel

Figura 4.14: Mapa de tipo aleatorio dividido en 128 regiones

Figura 4.15: Mapa de tipo habitaciones dividido en 128 regiones

45 Cap´ıtulo4. Desarrollo Alvaro´ Parra de Miguel

Los resultados son muy interesantes, en el mapa de tipo videojuego los obst´aculosde cierto tama˜noquedan en su mayor´ıapegados a las fronteras entre las regiones. Luego para el mapa de tipo habitaciones sorprende que se consigan mantener formas tan regulares y convexas. En el mapa de tipo laberinto se utilizaron laberintos de 8 celdas de ancho y aun as´ılas fronteras son perpendiculares al trazado de los pasillos, reduciendo as´ısu tama˜no. Por ´ultimo,en el mapa de tipo aleatorio la mayor´ıade las fronteras se sit´uanen cuellos de botella, justamente lo que andamos buscando.

Se decide, en vista de los resultados, utilizar este algoritmo para generar un subgrafo de regiones con el que agilizar la b´usquedade caminos.

4.4.3. B´usqueda de los caminos

Ahora que hemos dividido el mapa en regiones podemos experimentar con multitud de diferentes opciones para realizar la b´usqueda.Desafortunadamente, el tiempo del que dis- ponemos antes de la competici´ones limitado y no nos permite poner a prueba todas las ideas que van surgiendo. Debemos priorizar nuestros objetivos y decidir c´omovamos a em- plear nuestro tiempo. Por lo tanto, se decide trabajar en pos de conseguir caminos lo m´as r´apidosposibles en detrimento de la admisibilidad de los mismos. Aunque no devolvamos el camino ´optimo,al ser la competici´onmultiobjetivo, podemos quedar entre los ganado- res si nuestros tiempos son lo suficientemente r´apidospara que nuestra soluci´onno resulte dominada.

Nuestro planteamiento consiste en precomputar heur´ısticasdireccionales para guiar al agen- te a trav´esde las distintas regiones del mapa. Si bien esta soluci´onno es admisible, s´ıes completa, pues siempre devolver´aun camino que conecte los nodos origen y destino.

46 Cap´ıtulo4. Desarrollo Alvaro´ Parra de Miguel

4.4.3.1. Centroides

Una opci´onpara aprovechar estas direcciones precomputadas podr´ıaser colocar waypoints en los centroides de las regiones. Por desgracia los caminos resultantes distan mucho del camino ´optimo.

Figura 4.16: Uso de centroides: origen destino centroide camino

4.4.3.2. Portales

Si aplicamos la idea de los gateways o portales de [Goldenberg et al., 2010], colocando un portal en cada una de las distintas fronteras entre regiones, reducimos la distancia de los caminos empleando el mismo tiempo.

Figura 4.17: Uso de portales: origen destino portal camino

47 Cap´ıtulo4. Desarrollo Alvaro´ Parra de Miguel

4.4.3.3. Versi´onfinal

Repasemos el estado final del algoritmo de b´usqueda:

- Se ha dividido el mapa en regiones.

- Se ha precalculado por qu´eregiones hay que pasar para ir de una regi´ona otra.

- Se ha precalculado para cada regi´onqu´edirecciones conectan sus nodos con cada uno de sus portales.

- Si el nodo origen y el nodo destino se encuentran dentro de la misma regi´onse emplea Dijkstra para conectarlos.

En la mayor´ıade los problemas nos piden conectar dos puntos lo suficientemente alejados entre s´ıpara que no coincidan en una misma regi´on,pero en caso de que as´ısea hay que buscar una soluci´onalternativa que los conecte. La raz´onde utilizar Dijkstra en lugar de A* es porque en este caso concreto Dijkstra es m´asr´apido.Veamos una comparativa entre Dijkstra y A* para mapas de videojuegos de distintos tama˜nos.

Figura 4.18: Comparativa entre Dijkstra y A* en mapas de videojuegos

Dijkstra, aunque por lo general sea m´aslento que A*, en los casos m´aspeque˜nosse comporta mejor porque utiliza una estructura de datos m´assimple. Al dividir el mapa en muchas regiones, el n´umerode nodos dentro de una regi´ones muy peque˜no,por lo que Dijkstra ser´am´asr´apido.Se realiz´ouna comparativa de nuestro algoritmo usando Dijkstra y A* y los resultados indicaban que usando Dijkstra el tiempo medio se reduc´ıaa la mitad.

48 Cap´ıtulo5

Evaluaci´on

En esta secci´onvamos a evaluar el funcionamiento del agente. Primero veremos como se comporta el agente seg´unel n´umerode regiones en que dividamos el mapa, luego com- pararemos al agente frente a un A* y por ´ultimovamos a mostrar los resultados de la Grid-Based Path Planning Competition1.

Para la competici´onse han empleado una serie de benchmarks [Sturtevant, 2012] con cua- tro tipos de mapas: videojuegos, laberintos, aleatorios y habitaciones. Tenemos a nuestra disposici´on342 mapas de videojuegos, 60 mapas de laberintos, 70 mapas aleatorios y 40 de habitaciones. Las dimensiones de los mapas de videojuegos var´ıande 21x30 celdas a 1024x1024 celdas, el resto de los mapas tienen 512x512 celdas. De media cada mapa tiene 4000 problemas por lo que en total tenemos aproximadamente 2 millones de problemas.

La m´aquinausada para los experimentos tiene un procesador Intel Core i3-350M a 2.26 GHz y una RAM de 4GB. En la fase de preprocesamiento, el caso m´ascomplejo no tarda ni un minuto en preprocesarse y genera un fichero 11.3MB. Los objetivos que nos impone la competici´onde 30 minutos y 50MB quedan cubiertos con un amplio margen.

1M´asinformaci´onen movingai.com/GPPC/results.html

49 Cap´ıtulo5. Evaluaci´on Alvaro´ Parra de Miguel

5.1. N´umerode regiones

En la siguiente tabla se pueden ver los resultados para el tiempo total, el tiempo m´aximo por paso y la sub-optimalidad para diferente n´umerode regiones: 1023, 511 y 255. En todos los casos la media del tiempo de b´usquedaqueda por debajo de 1 milisegundo, ya que la mayor parte de los caminos est´anprecomputados y poca o ninguna b´usquedaes requerida. Hay un caso excepcional cuando se usan 255 regiones en el conjunto de mapas de StarCraft, se observa una anomal´ıaen un mapa de 1024x1024 que tiene 254 regiones aisladas. Esto provoca que no se puedan formar regiones y el algoritmo derive a una b´usquedano infor- mada con Dijkstra. Por otro lado, la longitud de los caminos devueltos no es la ´optima, pero en aquellos mapas en que las fronteras entre regiones son realmente peque˜nas,como en los mapas de tipo laberinto, la diferencia entre el camino resultante y el ´optimoes muy peque˜na.

Analizando estos datos se decidi´oenviar a la competici´onla soluci´onque define un umbral de 1023 regiones. Aunque los resultados sugieren que una configuraci´oncon menos regio- nes hubiese sido m´asr´apidaesperamos que una configuraci´oncon 1023 regiones sea m´as consistente de cara a la competici´on.

1024 groups 512 groups 256 groups Total Longer SubOpt Total Longer SubOpt Total Longer SubOpt (µs) Step (µs) (µs) Step (µs) (µs) Step (µs) BG 70 (14) 7 (6) 1.15 (0.04) 37 (11) 6 (8) 1.18 (0.03) 22 (3) 3 (1) 1.18 (0.03) DAO 90 (50) 9 (13) 1.16 (0.11) 45 (24) 5 (7) 1.17 (0.10) 27 (15) 4 (7) 1.18 (0.09) SC 83 (18) 7 (7) 1.23 (0.05) 46 (12) 6 (8) 1.23 (0.04) 336 (2632) 313 (2632) 1.23 (0.05) WCIII 66 (14) 12 (13) 1.19 (0.03) 33 (7) 5 (6) 1.20 (0.02) 21 (1) 4 (1) 1.21 (0.03) Maze 1 178 (26) 6 (1) 1.00 (0) 114 (17) 7 (0) 1.00 (0) 88 (14) 9 (1) 1.00 (0) Maze 2 180 (13) 6 (0) 1.01 (0) 113 (8) 7 (0) 1.00 (0) 84 (6) 9 (0) 1.00 (0) Maze 4 193 (32) 5 (0) 1.04 (0) 98 (16) 4 (0) 1.02 (0) 63 (10) 5 (0) 1.01 (0) Maze 8 264 (48) 4 (1) 1.11 (0.01) 118 (21) 4 (0) 1.07 (0.01) 69 (12) 4 (0) 1.04 (0.01) Maze 16 304 (47) 4 (0) 1.26 (0.02) 135 (19) 3 (0) 1.18 (0.02) 77 (10) 3 (0) 1.12 (0.02) Maze 32 192 (30) 4 (1) 1.17 (0.01) 107 (17) 3 (0) 1.27 (0.02) 70 (10) 3 (0) 1.30 (0.02) Random 10 59 (1) 5 (1) 1.20 (0.01) 37 (1) 6 (1) 1.20 (0.01) 26 (1) 6 (1) 1.21 (0.01) Random 20 63 (1) 5 (0) 1.20 (0.01) 39 (1) 5 (0) 1.21 (0.01) 29 (1) 6 (0) 1.22 (0.01) Random 30 68 (1) 6 (0) 1.20 (0.01) 42 (2) 6 (1) 1.21 (0.01) 34 (4) 7 (2) 1.23 (0.01) Random 40 126 (19) 5 (1) 1.09 (0.01) 71 (10) 4 (1) 1.09 (0.02) 48 (7) 5 (1) 1.08 (0.02) Rooms 8 64 (1) 5 (0) 1.18 (0.01) 38 (1) 5 (1) 1.19 (0.01) 28 (2) 6 (1) 1.20 (0.01) Rooms 16 72 (1) 4 (0) 1.07 (0) 37 (2) 4 (0) 1.15 (0.01) 25 (1) 5 (0) 1.18 (0.01) Rooms 32 68 (4) 4 (0) 1.16 (0.01) 39 (1) 4 (0) 1.24 (0.01) 25 (1) 4 (1) 1.06 (0.01) Rooms 64 68 (4) 4 (1) 1.12 (0.01) 39 (1) 4 (1) 1.21 (0.02) 25 (1) 4 (1) 1.16 (0.01)

Tabla 5.1: Experimentos con diferentes regiones (Todos los resultados muestran la media y la desviaci´onestandar)

50 Cap´ıtulo5. Evaluaci´on Alvaro´ Parra de Miguel

5.2. Comparaci´oncon el caso base

En la siguiente tabla se pueden apreciar los resultados de comparar a nuestro agente con 1023 regiones frente a un A* con heur´ıstica de Manhattan. Usamos como heur´ıstica la distancia de Manhattan porque al operar con n´umerosenteros y no realizar raices cuadradas encuentra caminos en menos tiempo que si usamos la distancia euclidiana o la distancia diagonal.

A*-Manhattan Bubble Dragon Total time (µs) Total time (µs) BG 695 70 DAO 704 90 SC 4120 83 WCIII 892 66 Maze 1 8352 178 Maze 2 12725 180 Maze 4 13931 193 Maze 8 16951 264 Maze 16 15927 304 Maze 32 17751 192 Random 10 323 59 Random 20 522 63 Random 30 1062 68 Random 40 5903 126 Rooms 8 868 64 Rooms 16 1035 72 Rooms 32 1693 68 Rooms 64 3906 68

Tabla 5.2: Comparaci´ondel agente con el caso base

51 Cap´ıtulo5. Evaluaci´on Alvaro´ Parra de Miguel

5.3. Competici´on

La Grid-Based Path Planning Competition de 2012 tuvo 8 equipos participantes con re- presentaci´onde Universidades de paises como Chile, Grecia, Estados Unidos, Australia o Espa˜na.Vamos a repasar los resultados de las tres propuestas que resultaron no dominadas y por lo tanto ganadoras de la competici´on:

- Tree - Conecta todos los puntos del mapa mediante un ´arbol RTT. [Anderson, 2012]

- SUB - Genera un grafo de submetas para agilizar la b´usquedade caminos ´optimos. [Uras et al., 2012]

- PHD - Precomputed Direction Heuristics, nuestra soluci´on.[Parra et al., 2012]

Map Set: All Time (ms) Length Total Max 20 Total % PDH 0.130 0.009 0.015 598.7 1.16 SUB 0.662 0.662 0.662 530.3 1.00 TREE 0.009 0.009 0.009 637.8 1.65

Tabla 5.3: Resultados competici´on- Map Set: All

Map Set: Game Maps Time (ms) Length Total Max 20 Total % PDH 0.128 0.009 0.017 302.8 1.16 SUB 0.024 0.024 0.024 258.7 1.00 TREE 0.004 0.004 0.004 303.6 1.51

Tabla 5.4: Resultados competici´on- Map Set: Game Maps

Map Set: Mazes Time (ms) Length Total Max 20 Total % PDH 0.270 0.010 0.010 3429.7 1.05 SUB 0.100 0.100 0.010 3247.6 1.00 TREE 0.040 0.040 0.040 3622.8 2.16

Tabla 5.5: Resultados competici´on- Map Set: Mazes

52 Cap´ıtulo5. Evaluaci´on Alvaro´ Parra de Miguel

Map Set: Random Time (ms) Length Total Max 20 Total % PDH 0.090 0.010 0.010 865.6 1.20 SUB 9.210 9.210 9.210 719.8 1.00 TREE 0.020 0.020 0.020 922.4 1.88

Tabla 5.6: Resultados competici´on- Map Set: Random

Map Set: Rooms Time (ms) Length Total Max 20 Total % PDH 0.074 0.008 0.010 719.2 1.20 SUB 0.095 0.095 0.095 606.9 1.00 TREE 0.013 0.013 0.013 1012.8 2.49

Tabla 5.7: Resultados competici´on- Map Set: Rooms

Se han marcado en negrita los resultados no dominados. Nos quedamos muy satisfechos de ver que nuestro agente se ha comportado en la competici´onde forma similar a los resultados obtenidos en nuestras pruebas y en muchas categor´ıasno ha quedado dominado.

53 Cap´ıtulo6

Conclusiones

En este cap´ıtulorepasamos los objetivos propuestos en3, analizando en qu´emedida se han cumplido, para terminar indicando algunas conclusiones adicionales.

6.1. Objetivos

6.1.1. Desarrollar un agente de pathfinding para la GPPC

El objetivo principal de este proyecto era la de desarrollar un agente para participar en la Grid-Based Path Planning Competition. Podemos dar este objetivo por conseguido ya que conseguimos entregar una soluci´ona la competici´onsin que diera ningun fallo y que adem´asqued´oentre los ganadores al no resultar dominada.

6.1.2. Reducir el espacio de b´usqueda

Hemos conseguido implementar un algoritmo para transformar el conjunto del espacio de b´usquedaen un subconjunto de regiones que nos ha permitido reducir el tiempo de b´usque- da. Es especialmente interesante de cara a los primeros movimientos que debe realizar el agente, ya que podemos devolver una serie de acciones que inician la marcha del agente en direcci´ona la meta, pudiendo luego refinar la b´usquedapara obtener mejores caminos. Nos habr´ıagustado poder dedicar m´astiempo a este planteamiento.

6.1.3. Algoritmo de b´usqueda

Al hacer uso de los portales entre regiones y de las direcciones precomputadas conseguimos devolver un camino en muy poco tiempo. Nos habr´ıagustado disponer de tiempo para

54 Cap´ıtulo6. Conclusiones Alvaro´ Parra de Miguel experimentar con otros tipos de estructuras para guiar la b´usqueday con t´ecnicas para reducir la longitud de los caminos una vez se han obtenido.

6.1.4. Entorno gr´aficode pruebas

Hemos desarrollado un entorno gr´aficode pruebas ad hoc para depurar la traza de los algoritmos en tiempo de ejecuci´on.Ha sido de vital importancia a la hora de desarrollar el c´odigoporque nos ha permitido detectar y corregir de forma muy sencilla y r´apidalos fallos que se han ido generando durante el proyecto.

6.2. Conclusiones finales

Hemos quedado muy satisfechos con el resultado obtenido en la Grid-Based Path Planning Competition de 2012 por parte de nuestro agente Bubble Dragon. No solo no ha quedado dominado en ninguna de las tres categor´ıas existentes, sino que adem´asha conseguido permanecer no dominado en las siguientes ediciones de 2013 y 20141.

Tambi´enpodemos destacar la publicaci´onde un inproceeding en la conferencia International Symposium on Combinatorial Search (SoCS) dentro de la cual da lugar la competici´onde pathfinding. [Parra et al., 2012]

1M´asinformaci´onen Resultados GPPC

55 Cap´ıtulo7

L´ıneasFuturas

Este proyecto sirve como base para la creaci´onde un agente para la Grid-Based Path- Planning Competition y como punto de vista para resolver problemas de pathfinding con caracter´ısticassimilares.

Un posible desarrollo que nos parece muy interesante en vista de los resultados de la com- petici´on,es la de aplicar nuestra t´ecnicade agrupamiento en el subconjunto generado por el agente SUB de la competici´on[Uras et al., 2012]. Partiendo de un subconjunto que nos permite obtener caminos ´optimos, nos preguntamos si al aplicar nuestra t´ecnicapodremos generar otro nivel en el grafo que nos permita realizar b´usquedasen el mismo tiempo que nuestra soluci´onactual pero obteniendo caminos m´aspr´oximosa la soluci´on´optima.

56 Cap´ıtulo8

Planificaci´ony Presupuesto

A continuaci´onse especifican las partes de las que consta este proyecto, su duraci´onesti- mada y su duraci´onreal, justificando la diferencia que haya entre ambas. Tambi´ense hace un estudio econ´omicodel proyecto con el fin de hacer un presupuesto del mismo.

8.1. Planificaci´on

An´alisisde las tareas en las que se divide el proyecto, incluyendo duraci´onestimada y real, diagramas de Gantt y una justificaci´onde la desviaci´onentre lo estimado y lo real. Las tareas que componen el proyecto son:

- An´alisis: Analizar las restricciones del proyecto y estudiar los posibles casos de uso.

- Dise˜no: Estudio de los diferentes algoritmos que se plantean utilizar. La fase de dise˜nose prolonga en el tiempo porque se van tomando decisiones en funci´onde los resultados obtenidos en la implementaci´on.

- Implementaci´on: Se implementa un agente en lenguaje C++ siguiendo las directri- ces del dise˜no.

- Pruebas: Se realizan pruebas autom´aticasy manuales para verificar el buen funcio- namiento de los algoritmos implementados.

57 Cap´ıtulo8. Planificaci´ony Presupuesto Alvaro´ Parra de Miguel

8.1.1. Planificaci´onestimada

La estimaci´onde los tiempos de las distintas partes del proyecto.

Tarea Duraci´on Fecha de inicio Fecha de fin An´alisis 3 semanas 17/01/2012 04/02/2012 Dise˜no 10 semanas 07/02/2012 15/04/2012 Implementaci´on 11 semanas 21/02/2012 06/05/2012 Pruebas 9 semanas 07/03/2012 06/05/2012

Tabla 8.1: Planificaci´onestimada

Figura 8.1: Diagrama de Gantt - Planificaci´onestimada

8.1.2. Planificaci´onreal

Duraci´onreal del proyecto.

Tarea Duraci´on Fecha de inicio Fecha de fin An´alisis 3 semanas 17/01/2012 04/02/2012 Dise˜no 13 semanas 07/02/2012 06/05/2012 Implementaci´on 13 semanas 21/02/2012 20/05/2012 Pruebas 11 semanas 07/03/2012 20/05/2012

Tabla 8.2: Planificaci´onreal

58 Cap´ıtulo8. Planificaci´ony Presupuesto Alvaro´ Parra de Miguel

Figura 8.2: Diagrama de Gantt - Planificaci´onreal

Se puede apreciar un aumento en la duraci´ondel proyecto respecto del tiempo estimado, esto es debido a que la fecha de entrega de la competici´onse aplaz´odos semanas, pudiendo aprovechar ese tiempo extra para seguir mejorando el agente.

8.2. Hardware y software usado

El equipo y software empleados para llevar a cabo el proyecto.

8.2.1. Hardware

Portatil HP Pavilion dv6 con procesador Intel Core i3-350M a 2.26 GHz y 4GB de RAM.

8.2.2. Software

Sistema operativo: Ubuntu 12.04 LTS

Compilador: GCC

Librerias gr´aficas: SDL

Editores de texto: SublimeText

Composici´onde documentos: LaTeX

Edici´onde imagenes: Gimp

Edici´onde diagramas: Gliffy Mscgen Gantto

59 Cap´ıtulo8. Planificaci´ony Presupuesto Alvaro´ Parra de Miguel

8.3. An´alisis econ´omico

An´alisisdel coste del proyecto. El coste del proyecto se desglosa en recursos humanos y re- cursos de hardware, teniendo en cuenta la planificaci´onestimada y la real. No se contemplan los recursos de software porque todos los programas utilizados eran software libre.

8.3.1. Recursos humanos

Personas que han participado en el desarrollo del proyecto.

- Experto: Asesora el rumbo de la investigaci´on.

- Supervisor: Encargado de seguir el desarrollo del proyecto.

- Desarrollador: Encargado de realizar el proyecto.

De media, el desarrollador ha dedicado al proyecto 10 horas semanales, el supervisor 1 hora semanal y el experto media hora semanal.

Coste estimado

Recurso Coste hora N´umerode horas Coste total Experto 50e 16,5 825,00e Supervisor 35e 33 1155,00e Desarrollador 25e 330 8250,00e Total 10230,00e

Tabla 8.3: Recursos humanos estimados

Coste real

Recurso Coste hora N´umerode horas Coste total Experto 50e 20 1000,00e Supervisor 35e 40 1400,00e Desarrollador 25e 400 10000,00e Total 12400,00e

Tabla 8.4: Recursos humanos reales

60 Cap´ıtulo8. Planificaci´ony Presupuesto Alvaro´ Parra de Miguel

8.3.2. Recursos de hardware

En este caso solo se ha empleado un ordenador portatil para el desarrollo del proyecto. Se estima su coste seg´unsu amortizaci´ondurante la duraci´ondel proyecto.

Coste estimado

Recurso Coste Vida ´util Tiempo de uso Coste amortizado HP 700e 24 meses 7,7 meses 224,58e Total 224,58e

Tabla 8.5: Recursos hardware estimados

Coste real

Recurso Coste Vida ´util Tiempo de uso Coste amortizado HP 700e 24 meses 9,3 meses 271,25e Total 271,25e

Tabla 8.6: Recursos hardware reales

8.3.3. Resumen

Coste total estimado

Recursos Coste Recursos humanos 10230,00e Recursos de hardware 224,58e Total 10454,58e

Tabla 8.7: Coste total estimado

Coste total real

Recursos Coste Recursos humanos 12400,00e Recursos de hardware 271,25e Total 12671,25e

Tabla 8.8: Coste total real

Existe una desviaci´ondel 21,2 % del presupuesto estimado, esto es debido a que el proyecto se alarg´oen el tiempo m´asde lo esperado inicialmente.

61 Bibliograf´ıa

S. Kent. The Ultimate History of Video Games: from Pong to Pokemon and beyond...the story behind the craze that touched our li ves and changed the world. Crown/Archetype, 2010. ISBN 9780307560872. URL https://books.google.es/books?id=PTrcTeAqeaEC.

J.T.T. Goldsmith and M.E. Ray. Cathode-ray tube amusement device, December 14 1948. URL http://www.google.com/patents/US2455992. US Patent 2,455,992.

John E. Laird and Michael van Lent. Human-level ai’s killer application: Interactive com- puter games. AI Magazine, 22(2):15–26, 2001. URL http://www.aaai.org/ojs/index. php/aimagazine/article/view/1558.

I. Millington and J. Funge. Artificial Intelligence for Games. Morgan Kaufmann. Taylor & Francis, 2009. ISBN 9780123747310. URL https://books.google.es/books?id= 1OJ8EhvuPXAC.

S. Rabin. Game AI Pro 2: Collected Wisdom of Game AI Professionals. CRC Press, 2015. ISBN 9781482254808. URL https://books.google.es/books?id=7XV3CAAAQBAJ.

Daniel Borrajo, Ariel Felner, Richard E. Korf, Maxim Likhachev, Carlos Linares L´opez, Wheeler Ruml, and Nathan R. Sturtevant, editors. Proceedings of the Fifth Annual Symposium on Combinatorial Search, SOCS 2012, Niagara Falls, Ontario, Canada, July 19-21, 2012, 2012. AAAI Press.

D. Chris Rayner, Michael H. Bowling, and Nathan R. Sturtevant. Euclidean heuristic optimization. In Wolfram Burgard and Dan Roth, editors, Proceedings of the Twenty- Fifth AAAI Conference on Artificial Intelligence, AAAI 2011, San Francisco, California, USA, August 7-11, 2011. AAAI Press, 2011. URL http://www.aaai.org/ocs/index. php/AAAI/AAAI11/paper/view/3594.

Nir Pochter, Aviv Zohar, Jeffrey S. Rosenschein, and Ariel Felner. Search space reduction using swamp hierarchies. In Maria Fox and David Poole, editors, Proceedings of the Twenty-Fourth AAAI Conference on Artificial Intelligence, AAAI 2010, Atlanta, Geor- gia, USA, July 11-15, 2010. AAAI Press, 2010. URL http://www.aaai.org/ocs/index. php/AAAI/AAAI10/paper/view/1825.

62 Bibliography Alvaro´ Parra de Miguel

Meir Goldenberg, Ariel Felner, Nathan R. Sturtevant, and Jonathan Schaeffer. Portal-based true-distance heuristics for path finding. In Ariel Felner and Nathan R. Sturtevant, editors, Proceedings of the Third Annual Symposium on Combinatorial Search, SOCS 2010, Stone Mountain, Atlanta, Georgia, USA, July 8-10, 2010. AAAI Press, 2010. URL http://aaai.org/ocs/index.php/SOCS/SOCS10/paper/view/2092.

Nathan R. Sturtevant. Benchmarks for grid-based pathfinding. IEEE Trans. Comput. Intellig. and AI in Games, 4(2):144–148, 2012. doi: 10.1109/TCIAIG.2012.2197681. URL http://dx.doi.org/10.1109/TCIAIG.2012.2197681.

Kenneth Anderson. Tree cache. In Borrajo et al.[2012]. URL http://www.aaai.org/ocs/ index.php/SOCS/SOCS12/paper/view/5410.

Tansel Uras, Sven Koenig, and Carlos Hern´andez.Subgoal graphs for eight-neighbor grid- worlds. In Borrajo et al.[2012]. URL http://www.aaai.org/ocs/index.php/SOCS/ SOCS12/paper/view/5391.

Alvaro´ Parra, Alvaro´ Torralba Arias de Reyna, and Carlos Linares L´opez. Precomputed- direction heuristics for suboptimal grid-based path-finding. In Borrajo et al.[2012]. URL http://www.aaai.org/ocs/index.php/SOCS/SOCS12/paper/view/5386.

63