Diseño y análisis de un agente
autónomo para el juego Super
Mario Bros.
Proyecto Fin de Carrera Ingeniería de Telecomunicación
Rosa Hidalgo Bermúdez
ÍNDICE
1. INTRODUCCIÓN
2. PLATAFORMA INFINITE MARIO
BROS
3. DISEÑO DEL AGENTE Y
RESULTADOS
4. CONCLUSIÓN Y DEMOS
ÍNDICE
1. INTRODUCCIÓN
2. PLATAFORMA INFINITE MARIO
BROS
3. DISEÑO DEL AGENTE Y
RESULTADOS
4. CONCLUSIÓN Y DEMOS
INTRODUCCIÓN
¿Por qué la elección de este proyecto?
El juego de Mario Bros es mundialmente
famoso y se tenían previos conocimientos
acerca del juego.
El mercado de los videojuegos tiene futuro
El mundo de los videojuegos nunca
pasará de moda
Existe una plataforma Infinite Mario Bros que
es una copia modificada de Super Mario Bros
libre y que permite la realización de un
Agente mediante alguna técnica de IA
Existe la competición creada por los
desarrolladores de la plataforma anterior
Mario AI Championship: Gameplay Turing Test
Learning Level Generation
INTRODUCCIÓN
¿Por qué la elección de este proyecto?
Autonomía
Reactividad
Proactividad
Persistencia
INTRODUCCIÓN
¿Qué características debe cumplir
nuestro Agente?
Razonamiento
Aprendizaje
Planificación
Inteligencia
Máquinas de Estados Finitos
Búsqueda de Caminos (Pathfinding)
Algorítmos Genéticos y Programación
Genética
Redes Neuronales
Lógica Difusa
INTRODUCCIÓN
¿Qué técnicas de IA podrían adaptarse
a nuestro objetivo?
ÍNDICE
1. INTRODUCCIÓN
2. PLATAFORMA INFINITE MARIO
BROS
3. DISEÑO DEL AGENTE Y
RESULTADOS
4. CONCLUSIÓN Y DEMOS
PLATAFORMA INFINITE MARIO BROS
¿En qué consiste el juego?
El juego consiste en mover al personaje,
Mario, a través de la pista bidimensional
para superar un nivel.
Las acciones permitidas que se pueden
realizar:
Avanzar a la derecha
Avanzar a la izquierda
Saltar
Agacharse
Disparar/Correr
PLATAFORMA INFINITE MARIO BROS
¿En qué consiste el juego?
El personaje Mario tiene tres posibles
modos: Fire: Permite 2 toques por colisión de enemigos
Big: Permite 1 toque por colisión de enemigos
Small: Si recibe un toque de un enemigo muere
La plataforma usada permite obtener
información del entorno a través de dos
matrices de 19x19:
Matriz de Observación
Matriz de Enemigos
PLATAFORMA INFINITE MARIO BROS
¿En qué consiste el juego?
PLATAFORMA INFINITE MARIO BROS
¿A qué se enfrentará el Agente?
Posibles tipos de obstáculos con los que
se enfrenta el agente:
Objetos beneficiosos para el Agente.
PLATAFORMA INFINITE MARIO BROS
¿A qué se enfrentará el Agente?
PLATAFORMA INFINITE MARIO BROS
¿A qué se enfrentará el Agente?
Posibles tipos de enemigos:
PLATAFORMA INFINITE MARIO BROS
¿A qué se enfrentará el Agente?
Precipicios y Estancamientos
ÍNDICE
1. INTRODUCCIÓN
2. PLATAFORMA INFITE MARIO
BROS
3. DISEÑO DEL AGENTE Y
RESULTADOS
4. CONCLUSIÓN Y DEMOS
DISEÑO DEL AGENTE Y RESULTADOS
Introducción a los AGs
Función fitness:
Establece las bases para encontrar una solución óptima a
un determinado problema estableciendo los individuos
más adecuados a un determinado problema.
La función de fitness depende del problema concreto que
se esté abordando.
DISEÑO DEL AGENTE Y RESULTADOS
Introducción a los AGs
Operadores Genéticos:
Operador de Selección
Ruleta
Jerárquica
Torneo
Mutación
Cruce
Simple o de un punto
De dos puntos (DPX)
Multipunto
Uniforme
DISEÑO DEL AGENTE Y RESULTADOS
Introducción a los AGs
Pasos de un AG
Inicializar una población de N individuos aleatoriamente
Calcular la función fitness
Crear una nueva población a partir de la existente:
Seleccionando los individuos con fitness más elevado
como padres
Generar nuevos individuos a partir de los operadores
genéticos de cruce y mutación
Evaluar la nueva población para obtener su fitness
Si se satisface la condición de parada se termina sino se
repiten estos últimos tres pasos.
DISEÑO DEL AGENTE Y RESULTADOS
Introducción a los AGs
Pasos de un AG
DISEÑO DEL AGENTE Y RESULTADOS
1ª Aprox. AGs basados en Reglas
Estructura del programa
Crear la matriz de cromosomas aleatoria
Desde 0 hasta numeroGeneraciones-1
Desde 0 hasta tamañoPoblación-1
Ejecutamos el Agente/s con el cromosoma de la matriz
correspondiente
Evaluamos al Agente aplicando la función fitness
Ordenamos los cromosomas según su fitness de mayor a menor
Aplicamos los operadores de Selección, Cruce y Mutación
Repetir hasta evaluar todos los cromosomas
Sino se ha conseguido convergencia repetir el AG
DISEÑO DEL AGENTE Y RESULTADOS
1ª Aprox. AGs basados en Reglas
Codificación del individuo
DISEÑO DEL AGENTE Y RESULTADOS
1ª Aprox. AGs basados en Reglas
Función fitness
fItness = estadoMario*1024 + modoMario*32 + monedas*16 +
muertes*42 +distancia*1 +tiempo*8
DISEÑO DEL AGENTE Y RESULTADOS
1ª Aprox. AGs basados en Reglas
Cruce
DISEÑO DEL AGENTE Y RESULTADOS
1ª Aprox. AGs basados en Reglas
Mutación
DISEÑO DEL AGENTE Y RESULTADOS
1ª Aprox. AGs basados en Reglas
Primera versión: Conjunto de reglas elevado.
Evaluación del individuo mediante la función
fitness en cada tick.
Segunda versión: Reducido conjunto de reglas.
Evaluación del individuo mediante la función
fitness tras finalizar la pista o morir.
Tercera versión: Conjunto de reglas algo mayor
que en la segunda versión. Evaluación del
individuo mediante la función fitness tras finalizar
la pista o morir.
DISEÑO DEL AGENTE Y RESULTADOS
1ª Aprox. AGs basados en Reglas
Algunos de los problemas encontrados:
En la mayoría de las situaciones el Agente toma la acción de la
regla por defecto
La acción para una determinada regla cambia de un nivel de
dificultad a otro
Estancamiento complejos
Matriz de observación introduce incertidumbre
DISEÑO DEL AGENTE Y RESULTADOS
1ª Aprox. AGs basados en Reglas
Resultados para los niveles de dificultad testados:
Dificultad 2
Dificultad 1
Dificultad 0
DISEÑO DEL AGENTE Y RESULTADOS
2ª Aprox. AGs basados en FSM
Las FSM se caracterizan por:
Estar formadas por un conjunto finitos de estados
Las transiciones entre estados las determina una nueva entrada al sistema
El estado de salida depende de la nueva entrada y del estado inicial en el
que nos encontrabamos
Ventajas:
Son intuitivas y simples de implementar y diseñar
La teoría subyacente está formalizada
Han sido probadas para implementar la IA en diversos juegos
Desventajas:
Su diseño no puede modificarse en ejecución
Si hay muchos estados pueden llegar a ser complejas
DISEÑO DEL AGENTE Y RESULTADOS
2ª Aprox. AGs basados en FSM
Estructura de la FSM implementada: Estados posibles
DISEÑO DEL AGENTE Y RESULTADOS
2ª Aprox. AGs basados en FSM
Estructura de la FSM implementada: Estados posibles
DISEÑO DEL AGENTE Y RESULTADOS
2ª Aprox. AGs basados en FSM
Estructura de la FSM implementada: Cruce
DISEÑO DEL AGENTE Y RESULTADOS
2ª Aprox. AGs basados en FSM
Estructura de la FSM implementada: MutaciónDe granularidad baja
De granularidad elevada
Nueva mutación gen a gen
DISEÑO DEL AGENTE Y RESULTADOS
2ª Aprox. AGs basados en FSM
Estructura de la FSM implementada: Función fitness
Valor de fitness acotado
Se da mucha importancia a los individuos que han superado el
nivel
Los individuos que han muerto por time out o precipicios son
penalizados con la peor puntuación
Los individuos que han muerto por colisiones con enemigos
obtendrán fitness negativo. Su grado de negatividad dependerá de
la actuación que hayan tenido
DISEÑO DEL AGENTE Y RESULTADOS
2ª Aprox. AGs basados en FSM
Implementación monosemilla
Cruce: En caso de conflicto en las tablas se elige siempre al
individuo seleccionado previamente como dominante
La mutación que mejor funciona es la mutación de granularidad
elevada
Cada individuo se evalúa en una determinada pista
El Agente evoluciona en subniveles cada vez de mayor tamaño
Posibilidad de repetir un determinado subnivel
El porcentaje de individuos aleatorios es una exponencial
decreciente
Se realiza una selección de individuos en base a la función fitness
genérica
DISEÑO DEL AGENTE Y RESULTADOS
2ª Aprox. AGs basados en FSM
Implementación multisemilla
Cruce: En caso de conflicto en las tablas se elige
equiprobablemente entre cada uno de los dos progenitores
Nueva mutación realizada gen a gen
El Agente evoluciona un único tamaño de pista
Cada individuo es evaluado en un número N de pistas aleatorias
El porcentaje de individuos aleatorios es constante
Se realiza una selección de individuos por torneo evaluando en
cascada tres variables de su fitness:
Porcentaje de escenarios en los que el individuo se ha atascado o caído por
precipicio
Porcentaje de niveles superados
Valor de fitness genérico
DISEÑO DEL AGENTE Y RESULTADOS
2ª Aprox. AGs basados en FSM
Limitaciones encontradas
Tiempo requerido para obtener el Agente evolucionado
DISEÑO DEL AGENTE Y RESULTADOS
2ª Aprox. AGs basados en FSM
Limitaciones encontradas
Memoria requerida para la evolución
DISEÑO DEL AGENTE Y RESULTADOS
2ª Aprox. AGs basados en FSMLimitaciones encontradas
Numero de valores que comprenden la entrada del sistema
El factor delimitante, en monosemilla, para alcanzar convergencia es el
tamaño de población.
El factor delimitante para obtener convergencia en multisemilla es el
número de generaciones
ÍNDICE
1. INTRODUCCIÓN
2. ESTRUCTURA DEL PROYECTO
3. HERRAMIENTAS UTILIZADAS
4. INTERACTIVIDAD
5. CONCLUSIÓN Y DEMOS
CONCLUSIÓN
Se ha conseguido el objetivo de desarrollar un Agente autónomo a través de dos aproximaciones: AGs basados en Reglas y AGs basados en FSM.
En el proceso se ha observado la problemática que conlleva desarrollar un Agente inteligente:
Implementación de métodos que proporcionen información sobre el entorno al Agente
Importancia de la implementación de una buena función fitness
Importancia de los operadores genéticos
En el enfoque basado en Reglas se tuvo que llegar a un compromiso entre el espacio de búsqueda y el tiempo necesario para la convergencia
En el enfoque basado en FSM se tuvo problemas con el espacio en memoria requerido y el tiempo para obtener la convergencia
Como posible investigación futura se podría realizar un Agente especializado en un único nivel de dificultad en el cual se evolucionara tan solo una parte de los métodos que lo controlen, así aunque no se obtuviera el mejor Agente de todos los tiempos, quedaría reducido el espacio de búsqueda y el tiempo de ejecución.
DEMOS
Nivel de dificultad 1
Nivel de dificultad 2
Nivel de dificultad 3
Nivel de dificultad 12, problema con la seta de vida
Nivel de dificultad 12
Saltar la Bibliografía y terminar
BIBLIOGRAFÍA
[1] “<<Juego>>
[En línea] http://es.wikipedia.org/wiki/Juego
[2] <<Videojuego>>
[En línea] http://es.wikipedia.org/wiki/Videojuego
[3] <<Historia de los videojuegos>>
[En línea] http://es.wikipedia.org/wiki/Historia_de_los_videojuegos
[4] <<History of video games>>
[En línea] http://en.wikipedia.org/wiki/History_of_video_games
[5] <<Top 10 Most Influential AI Games>>
Article: Alex J. Champandard
[En línea] http://aigamedev.com/open/highlights/top-ai-games/
[6] <<Non Player Characters>>
[En línea] http://redesneuronales.wikispaces.com/NON+PLAYER+CHARACTERS
[7] Alfredo González González; Omar Baqueiro Espinosa, Emmanuel Meza Cota
Universidad Autónoma de Baja California Sur. Departamento de Sistemas Computacionales
<<Metodologías de la I.A. (Agentes autónomos y Redes neuronales Supervisadas) aplicadas a NPCs (Non player characters)>>
[En línea] http://www.redcientifica.com/doc/doc200401210112.htm
BIBLIOGRAFÍA
[8] Stuart J. Russell y Peter Norvig
«Artificial Intelligence: A Modern Approach», Second Edition
Pearson Prentice Hall, 2004
[9] <<Artificial intelligence (video games)>>
[En línea] http://en.wikipedia.org/wiki/Game_artificial_intelligence
[10] <<Apuntes de la Asignatura Inteligencia Artificial>>
4º Curso Ingeniería Informática Universidad de Granada
[11] <<Mario AI Championship: GamePlay track. 2011>>
Julian Togelius, Sergey Karakovskiy and Robin Baumgarten
[En línea] http://www.marioai.com/gameplay-track
[12]<<Mario AI Competition. 2009>>
Sergey Karakovskiy and Julian Togelius
[En línea] http://julian.togelius.com/mariocompetition2009/submitting.php
[13]<<Super Mario Evolution>>
Julian Togelius, Sergey Karakovskiy, Jan Koutn´ik and J¨urgen Schmidhuber
[En línea] http://julian.togelius.com/Togelius2009Super.pdf
[14]<<Super Mario Bros. Del juego, a las competiciones de "científicos" aburridos>>
Antonio Mora
[En línea] http://www.slideshare.net/Slidemora/super-mario-quien-es-y-las-mario-ai-competitions
BIBLIOGRAFÍA
[15] <<REALM: A Rule-Based Evolutionary Computation Agent that Learns to Play Mario>>
Slawomir Bojarski and Clare Bates Congdon
2010 IEEE Conference on Computational Intelligence and Games
[En línea] http://www.google.es/url?sa=t&rct=j&q=realm%3A%20a%20rule-based%20evolutionary%20computation%20agent%20that%20learns%20to%20play%20mario%20pdf&source=web&cd=1&cad=rja&ved=0CCYQFjAA&url=http%3A%2F%2Fciteseerx.ist.psu.edu%2Fviewdoc%2Fdownload%3Fdoi%3D10.1.1.173.4586%26rep%3Drep1%26type%3Dpdf&ei=THhCUKTWLNG4hAe1t4HoDw&usg=AFQjCNHtRZwwEC3yoa1YWAN_mtGA-USCeg
[16] «Mario AI Benchmark. AI and Machine Learning Experiments based on Super Mario Bros.»
J. Togelius, S. Karakovskiy, T. Schaul y J. Koutnik
[En línea] http://code.google.com/p/marioai/
[17] <<Personal Page: Julian Togelius>>
[En línea] http://julian.togelius.com/
[18]<<Super Mario Bros.>>
[En línea] http://es.wikipedia.org/wiki/Super_Mario_Bros.
[19]<<Miyamoto, el padre de Mario Bros, Premio Príncipe de Asturias de Comunicación>>
[En línea] http://www.rtve.es/noticias/20120523/miyamoto-padre-mario-bros-premio-principe-asturias-comunicacion/531163.shtml
BIBLIOGRAFÍA
[20] <<Infinite Mario AI - Long Level. Algorithm A*>>
[En línea]
http://www.youtube.com/watch?feature=player_detailpage&v=DlkMs4ZHHr8
[21] <<Mario AI - a comparison. Algorithm A*>>
[En línea] http://www.youtube.com/watch?v=j7ckTMLIwpE&feature=related
[22] <<A Field Guide to Genetic Programming>>
Riccardo Poli, William B. Langdon, Nicholas F. McPhee, John R. Koza
March 2008
[23] <<Evolutionary algorithms in theory and practice : evolution strategies, evolutionary programming, genetic algorithms>>
Back, Thomas
Oxford University Press , 1996
[24]<<Genetic Programming. On the Programming of Computers by Means of Natural Selection>>
John R. Koza
The MIT Press, 1998
[25]<<Tutorial de Informática Evolutiva>>
Juan Julian Merelo Guervos
[En línea] http://geneura.ugr.es/~jmerelo/ie/
BIBLIOGRAFÍA
[26]<<Apuntes de la Asignatura Algorítmica>
4º Curso Ingeniería Informática
Universidad de Granada
[27]<<Apuntes de la Asignatura Bioinformática>
5º Curso Ingeniería Informática
Universidad de Granada
[28]<<Introduction To Automata Theory, Languages and Computation>>
John E. Hopcroft, Jeffrey D. Ullman
Addison Wesley, 1979
[29]<<Theory Of Finite Automata With An Introduction To Formal Languages>>
John Carroll, Darrel Long
Prentice-Hall International , 1989
[30]<<Teoría de la Computación. Lenguajes Formales, Autómatas y Complejidad>>
J. Glenn Brookshear
Addison Wesley Iberoamericana , 1993
[31]<<Programming Game AI by Example>>
Mat Buckland
Wordware Publishing, Inc. 2005
BIBLIOGRAFÍA
[32]<<Curso de Programacion de Juegos 2D>>
[En línea] http://www.aprenderpython.com
[33]<<Thesis Smaller Footprint for Java Collections>>
Yuval Shimron
[En línea] http://www.cs.technion.ac.il/users/wwwb/cgi-bin/tr-get.cgi/2012/MSC/MSC-2012-05.pdf
[34]<<JavaTM How to Program>>
H. M. Deitel - Deitel & Associates, Inc., P. J.Deitel - Deitel & Associates
Prentice Hall, 2006
[35] <<Evolving a Mario Agent Using Cuckoo Search and Softmax Heuristics>>
E.R. Speed – 2nd International IEEE Consumer Electronics Society’s Games Innovations Conference, 210.
[36] <<La historia de Super Mario Bros, los hechos detrás del juego.>>
[En línea] http://www.guayageek.com/2012/09/la-historia-de-super-mario-bros-los.html
Gracias por la atención!