Algoritmos coevolutivos competitivos para la programación de inteligencia artificial en videojuegos

  1. Nogueira Collazo, Mariela
Supervised by:
  1. Carlos Cotta Porras Director
  2. Antonio José Fernández Leiva Director

Defence university: Universidad de Málaga

Fecha de defensa: 07 July 2017

Committee:
  1. Pedro González Calero Chair
  2. Antonio Jesús Nebro Urbaneja Secretary
  3. Antonio Mora García Committee member

Type: Thesis

Teseo: 490396 DIALNET lock_openRIUMA editor

Abstract

Esta investigación trata sobre la aplicación del enfoque competitivo de la Coevolución en la programación de soluciones de Inteligencia Artificial (IA) para videojuegos y propone diferentes modelos para abordarlo. La motivación principal de esta tesis es que la Coevolución resulta un enfoque muy adecuado para explotarlo como método de búsqueda y optimización en videojuegos ya que estos son de por sí escenarios intrínsecamente competitivos. Está demostrado que en los contextos donde resulta complejo definir una medida de calidad de las soluciones, aplicar la Coevolución es muy conveniente porque se podría calcular el fitness de los individuos a partir de sus resultados en las competiciones contra las poblaciones adversarias. Este mecanismo de evaluación es tradicional en los videojuegos basados en competición, donde la calidad de un jugador está determinada por su desempeño frente a los oponentes. Por otra parte, además de las muchas muestras que existen de que la Coevolución es un método de optimización muy adecuado en videojuegos, también se han dedicado varios trabajos en la comunidad científica a explicar las “patologías” que afectan a los modelos coevolutivos. Incluso se han propuesto “remedios” para combatirlas, pero a pesar de eso, la complejidad que genera la dinámica de estos modelos hace que sea difícil evadir esos fallos. Este problema es también una de las motivaciones que han guiado esta investigación pues los algoritmos que hemos diseñado pretenden disminuir el riesgo de padecer algunos de los fallos típicos de un proceso coevolutivo. Nuestra apuesta en este sentido ha sido el empleo de los conocidos métodos de archivo y el diseño de tres enfoques que mejoran los resultados del modo de uso tradicional de dichos métodos. Los juegos que han sido objeto de experimentación en esta investigación son del género estrategia en tiempo real (RTS, por sus siglas en inglés: Real Time Strategy Games). Se escogió este género porque ofrece una amplia variedad de problemas muy interesantes en el ámbito de la investigación de la IA aplicada, tales como, la planificación de tareas y recursos en tiempo real teniendo en cuenta al adversario y la toma de decisiones con incertidumbre. Es por esto que es uno de los géneros de juego que más se ha empleado en las investigaciones de IA publicadas en la bibliografía científica. Son dos los juegos RTS sobre los que se ha experimentado en esta tesis. En ambos se han probado los dos enfoques diseñados en esta investigación. Uno de ellos tiene como objetivo la creación de estrategias de IA para manejar los bot y/o los jugadores virtuales (NPCs, por sus siglas en inglés: Non-Player Character) de los juegos RTS antes mencionados. Y el otro, tiene un objetivo mucho más complejo, el de generar de forma simultánea, estrategias de IA y contenido para videojuegos. Este segundo modelo representa el aporte más novedoso de esta investigación, pues hasta donde hemos podido investigar en la bibliografía relacionada, es la primera vez que se logra la Coevolución de lo que vendrían siendo (teniendo en cuenta la teoría de la evolución) dos especies tan distintas. Además, constituye un paso importante hacia la creación procedural de juegos completos a nivel de Diseño. Nuestros algoritmos pueden verse como métodos procedurales de generación de contenidos que permiten crear inteligencias artificiales (o sea, comportamientos) de los NPCs y también contenidos (en forma de mapas) del juego. Esta tesis presenta el primer algoritmo conocido en la literatura científica (hasta donde nuestros conocimientos alcanzan) que es capaz de crear proceduralmente ambos contenidos a la vez; y propone un esquema genérico que puede aplicarse a otros videojuegos (no sólo a RTS).