4. MATERIALES QUE SE EMPLEAN EN LAS ESTRUCTURAS.pptx
Diseño y Análisis Agente autónomo videojuego Super Mario Bros
1. 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
4. 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
5. INTRODUCCIÓN
¿Por qué la elección de este proyecto?
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
7. INTRODUCCIÓN
¿Qué técnicas de IA podrían adaptarse
a nuestro objetivo?
Máquinas de Estados Finitos
Búsqueda de Caminos (Pathfinding)
Algorítmos Genéticos y Programación
Genética
Redes Neuronales
Lógica Difusa
9. 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
10. 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
17. 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.
18. DISEÑO DEL AGENTE Y RESULTADOS
Introducción a los AGs
Operadores Genéticos:
Operador de Selección Cruce
Ruleta Simple o de un punto
Jerárquica De dos puntos (DPX)
Torneo Multipunto
Mutación Uniforme
19. 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.
20. DISEÑO DEL AGENTE Y RESULTADOS
Introducción a los AGs
Pasos de un AG
21. 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
22. DISEÑO DEL AGENTE Y RESULTADOS
1ª Aprox. AGs basados en Reglas
Codificación del individuo
23. 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
24. DISEÑO DEL AGENTE Y RESULTADOS
1ª Aprox. AGs basados en Reglas
Cruce
25. DISEÑO DEL AGENTE Y RESULTADOS
1ª Aprox. AGs basados en Reglas
Mutación
26. 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.
27. 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
28. DISEÑO DEL AGENTE Y RESULTADOS
1ª Aprox. AGs basados en Reglas
Resultados para los niveles de dificultad testados:
Dificultad 1
Dificultad 0
Dificultad 2
29. 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
30. DISEÑO DEL AGENTE Y RESULTADOS
2ª Aprox. AGs basados en FSM
Estructura de la FSM implementada: Estados posibles
31. DISEÑO DEL AGENTE Y RESULTADOS
2ª Aprox. AGs basados en FSM
Estructura de la FSM implementada: Estados posibles
32. DISEÑO DEL AGENTE Y RESULTADOS
2ª Aprox. AGs basados en FSM
Estructura de la FSM implementada: Cruce
33. DISEÑO DEL AGENTE Y RESULTADOS
2ª Aprox. AGs basados en FSM
Estructura de la FSM implementada: Mutación
De granularidad baja
De granularidad elevada
Nueva mutación gen a gen
34. 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
35. 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
36. 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
37. DISEÑO DEL AGENTE Y RESULTADOS
2ª Aprox. AGs basados en FSM
Limitaciones encontradas
Tiempo requerido para obtener el Agente evolucionado
38. DISEÑO DEL AGENTE Y RESULTADOS
2ª Aprox. AGs basados en FSM
Limitaciones encontradas
Memoria requerida para la evolución
39. DISEÑO DEL AGENTE Y RESULTADOS
2ª Aprox. AGs basados en FSM
Limitaciones 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
41. 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.
42. 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
44. 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
45. 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
46. 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=T
HhCUKTWLNG4hAe1t4HoDw&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
47. 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/
48. 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
49. 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