Implementacin de un agente autnomo en Super Mario Pablo Gonzlez Fernndez
Estudiante Ing. Telecomunicacin Universidad Carlos III de Madrid Avda. De la Universidad, 30 28911, Legans (Madrid-Espaa)
Alberto Chicharro Sobrino Estudiante Ing. Telecomunicacin Universidad Carlos III de Madrid Avda. De la Universidad, 30 28911, Legans (Madrid-Espaa)
ABSTRACT
En este documento se explica cmo se podra utilizar la
teora de resolucin de problemas en un entorno controlado
como es el mundo de Super Mario. La solucin propuesta
consta de un rbol de decisin, que en funcin de las
variables de entrada que se le pasen por parmetro decidir
cul es la mejor accin a llevar a cabo. Para la
implementacin de este agente inteligente se utilizan las
libreras proporcionadas en [1].
Descripcin de categoras y temas
[Agente]: Un Agente es un sistema autnomo capaz de
tomar decisiones en tiempo real. Estos agentes se apoyan en
la toma de datos del entorno para su toma de decisiones.
[Mario Bros]: Videojuego de plataformas que fue lanzado
para la videoconsola NES en 1985.
Terminos generales. rbol de decisiones, agente autnomo, bsqueda heurstica.
Palabras clave. Mario Bros, agente inteligente, enemigos, escenario,
algoritmo.
1. INTRODUCCION
En este documento se explicarn los pasos que se han
tomado a la hora de realizar un agente autnomo en el
videojuego de Mario Bross. Para la implementacin de
ste, veremos las posibles alternativas dentro de los
algoritmos de bsqueda, donde en este caso la bsqueda
sera llegar al final del escenario, sin recibir golpes. Dentro
de estos algoritmos hay dos grandes tipos: los de bsqueda
a ciegas y los heursticos. Dado nuestro problema, los que
encajaban mejor eran los algoritmos de bsqueda
heurstica, ya que nuestro soporte de libreras nos ofreca
informacin sobre el mapa en todo momento.
En primer lugar, se explicar el funcionamiento de la
plataforma utilizada para desarrollar el agente autnomo,
explicando las distintas soluciones clsicas que se han
empleado en l con relativo xito. Finalmente,
presentaremos en detalle un agente desarrollado por
nosotros, que, por simplicidad, utiliza una decisin reactiva
codificada mediante un rbol de decisin en funcin de
distintos parmetros del entorno, en lugar de recurrir a
tcnicas ms complejas y efectivas como bsquedas sobre
los posibles nodos a los que desplazarse o aprendizaje
mquina.
2. INTELIGENCIA ARTIFICIAL EN
JUEGOS
Los juegos son una importante herramienta en el mbito del
desarrollo y experimentacin en inteligencia artificial (AI).
Esto es debido a que los juegos proporcionan entornos
desafiantes y sencillos de escalar en dificultad, sobre los
que es posible aplicar conceptos de procesado de
informacin y comportamiento inteligente. Adems de estas
aplicaciones relacionadas con la investigacin en
inteligencia artificial, los juegos en s pueden beneficiarse
de la aplicacin de algoritmos y desarrollos de AI con el
objetivo de crear oponentes autnomos interesantes y
crebles o crear mundos ms complejos y desafiantes para
los jugadores humanos.
Entre las caractersticas principales que convierten un juego
en til para el entorno de la inteligencia artificial se incluye
la capacidad para tener en cuenta habilidades cognitivas
humanas interesantes, su vistosidad, cmo de entretenido
sea, para fomentar la motivacin en el desarrollo y como de
general sea en su representacin del entorno y de los
elementos de entrada y salida, de modo que un nmero
amplio de algoritmos distintos de AI puedan aplicarse sobre
l de forma sencilla y natural; adems, debe ser sencillo de
aprender; es decir, tener un conjunto de reglas intuitivas y
simples que sean comprensibles de forma rpida por un
conjunto amplio de jugadores, pero al mismo tiempo debe
ser complicado de jugar de una forma experta; es decir, que
ese conjunto de reglas simples deben ser suficientes como
para dar lugar a oponentes y/o entornos complejos y a un
crecimiento en dificultad suave, que permita la generacin
de niveles de dificultad adaptables, que varen de una forma
lenta desde los ms sencillos a aquellos que solo un nmero
muy reducido de jugadores sean capaces de completar.
De esta forma, ser posible diferenciar entre jugadores (o
algoritmos) con ms o menos habilidad en funcin del
nmero de niveles que sean capaces de completar, y
tambin de obtener informacin rpida sobre si nuestro
sistema evoluciona favorablemente o se comporta peor a
medida que modificamos su comportamiento.[1]
Los juegos de plataforma son un tipo concreto de
videojuegos que se caracterizan porque el juego transcurre
sobre un entorno en el que hay que atravesar un mundo,
sobreponindose a un conjunto variado de enemigos,
mediante un conjunto de acciones (generalmente caminar,
saltar, correr, escalar, disparar) y se recogen una serie de
objetos a lo largo del recorrido.[2]
Se cree que los juegos de
plataforma tienen inters con respecto al aprendizaje
computacional y la inteligencia artificial en general debido
a que tienen espacios de entrada y salida de dimensin
elevada, un conjunto de estados amplio y requieren poner
en prctica distintas habilidades en secuencia para atravesar
las pantallas.
En nuestro caso hemos optado por desarrollar un agente
para el entorno de desarrollo Infinite Mario Bros, un clon
del clsico juego de plataforma Super Mario Bros
desarrollado por Sergey Karakovskiy y Julian Togelius.
Segn los autores, se trata del primer sistema para
implementacin de algoritmos de inteligencia artificial
llevado a cabo sobre un juego de plataforma en el que se
lleva a cabo una competicin. Los autores presentan el
cdigo desarrollado para la implementacin de la
plataforma (como software libre), que adems del propio
entorno incluye un conjunto de libreras destinadas a
facilitar la creacin de todo tipo de agentes autnomos. De
este modo, se incluye un conjunto de mtodos y variables
destinados a recabar informacin del entorno. Respetando
el carcter clsico del juego de Super Mario, solo es posible
obtener informacin de un pequeo entorno de Mario, que
siempre se sita en el centro de la pantalla (una matriz de
19x19 casillas, aunque es posible acceder a la informacin
a resolucin de pixel en lugar de a resolucin de casilla si el
agente desarrollado requiere de esta precisin para
funcionar correctamente).
3. PERSPECTIVA SOBRE TIPOS DE
AGENTES PROPUESTOS
Dadas las caractersticas del juego de Super Mario, si
consideramos como objetivo el de atravesar el nivel en el
menor tiempo posible y sin perder vidas (sin preocuparnos
ni de matar a todos los enemigos ni de recuperar todas las
monedas), categora en la que funciona principalmente el
campeonato y para la que hemos desarrollado nosotros
tambin nuestro cdigo, teniendo en cuenta que los
adversarios de Mario son completamente deterministas, el
problema de AI resultante puede ser considerado como uno
de resolucin de problemas sobre el que podran por tanto
emplearse cualquier tipo de algoritmo de bsqueda sobre el
espacio de movimientos de Mario, eligiendo como estado
de partida la situacin actual de Mario y como conjunto de
estados de llegada los puntos de la parte derecha de la
pantalla. Sin embargo, dada la necesidad de que el
algoritmo funcione en tiempo real (en particular, debe dar
un resultado de ejecucin cada 40ms, para que el juego
pueda ejecutarse a 25 frames por segundo), se impone un
fuerte requisito de tiempo de ejecucin que excluye los
algoritmos de bsqueda completa, por lo que es mejor
utilizar algn tipo de bsqueda heurstica.
Desde la creacin de la plataforma, ha habido
competiciones anuales en las que se han propuesto distintos
tipos de agentes autnomos que han obtenido resultados
bastante importantes dentro de Infinite Mario Bros; a
continuacin se presenta un recorrido sobre los tipos
principales de algoritmos empleados y los resultados
obtenidos por cada uno de ellos.
En primer lugar, los algoritmos ms frecuentes fueron los
creados directamente codificando a mano agentes reactivos;
es decir, sistemas de bsqueda para los que el propio
programador defini un conjunto de situaciones posibles y
las reacciones de Mario frente a ellas, sin utilizar ningn
tipo de aprendizaje adaptativo, ni bsqueda.
Un segundo tipo fueron los basados en aprendizaje
mquina; sistemas que utilizaban algoritmos de aprendizaje
(principalmente redes neuronales) empleando sistemas de
entrenamiento tanto supervisados como no supervisados.
Sin embargo, el tipo de agente ms exitoso de entre los
propuestos para las competiciones ha sido el compuesto por
agentes de bsqueda A*. Ya se ha explicado que las
caractersticas del juego de plataforma Super Mario Bros se
ajustan de una forma muy buena a cualquier tipo de
algoritmo de bsqueda, y en particular a los que sacrifican
optimizacin