Implementación de un agente autónomo en Super · PDF filevideojuego de Mario...

download Implementación de un agente autónomo en Super · PDF filevideojuego de Mario Bross. ... características del juego de plataforma Super Mario Bros se ajustan de una forma muy buena

If you can't read please download the document

Transcript of Implementación de un agente autónomo en Super · PDF filevideojuego de Mario...

  • 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)

    [email protected]

    Alberto Chicharro Sobrino Estudiante Ing. Telecomunicacin Universidad Carlos III de Madrid Avda. De la Universidad, 30 28911, Legans (Madrid-Espaa)

    [email protected]

    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