Diseño y Análisis Agente autónomo videojuego Super Mario Bros

50
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

Transcript of Diseño y Análisis Agente autónomo videojuego Super Mario Bros

Page 1: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

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

Page 2: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

ÍNDICE

1. INTRODUCCIÓN

2. PLATAFORMA INFINITE MARIO

BROS

3. DISEÑO DEL AGENTE Y

RESULTADOS

4. CONCLUSIÓN Y DEMOS

Page 3: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

ÍNDICE

1. INTRODUCCIÓN

2. PLATAFORMA INFINITE MARIO

BROS

3. DISEÑO DEL AGENTE Y

RESULTADOS

4. CONCLUSIÓN Y DEMOS

Page 4: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

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

Page 5: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

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?

Page 6: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

Autonomía

Reactividad

Proactividad

Persistencia

INTRODUCCIÓN

¿Qué características debe cumplir

nuestro Agente?

Razonamiento

Aprendizaje

Planificación

Inteligencia

Page 7: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

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?

Page 8: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

ÍNDICE

1. INTRODUCCIÓN

2. PLATAFORMA INFINITE MARIO

BROS

3. DISEÑO DEL AGENTE Y

RESULTADOS

4. CONCLUSIÓN Y DEMOS

Page 9: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

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

Page 10: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

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

Page 11: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

PLATAFORMA INFINITE MARIO BROS

¿En qué consiste el juego?

Page 12: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

PLATAFORMA INFINITE MARIO BROS

¿A qué se enfrentará el Agente?

Posibles tipos de obstáculos con los que

se enfrenta el agente:

Page 13: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

Objetos beneficiosos para el Agente.

PLATAFORMA INFINITE MARIO BROS

¿A qué se enfrentará el Agente?

Page 14: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

PLATAFORMA INFINITE MARIO BROS

¿A qué se enfrentará el Agente?

Posibles tipos de enemigos:

Page 15: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

PLATAFORMA INFINITE MARIO BROS

¿A qué se enfrentará el Agente?

Precipicios y Estancamientos

Page 16: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

ÍNDICE

1. INTRODUCCIÓN

2. PLATAFORMA INFITE MARIO

BROS

3. DISEÑO DEL AGENTE Y

RESULTADOS

4. CONCLUSIÓN Y DEMOS

Page 17: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

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.

Page 18: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

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

Page 19: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

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.

Page 20: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

DISEÑO DEL AGENTE Y RESULTADOS

Introducción a los AGs

Pasos de un AG

Page 21: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

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

Page 22: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

DISEÑO DEL AGENTE Y RESULTADOS

1ª Aprox. AGs basados en Reglas

Codificación del individuo

Page 23: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

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

Page 24: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

DISEÑO DEL AGENTE Y RESULTADOS

1ª Aprox. AGs basados en Reglas

Cruce

Page 25: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

DISEÑO DEL AGENTE Y RESULTADOS

1ª Aprox. AGs basados en Reglas

Mutación

Page 26: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

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.

Page 27: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

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

Page 28: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

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

Page 29: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

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

Page 30: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

DISEÑO DEL AGENTE Y RESULTADOS

2ª Aprox. AGs basados en FSM

Estructura de la FSM implementada: Estados posibles

Page 31: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

DISEÑO DEL AGENTE Y RESULTADOS

2ª Aprox. AGs basados en FSM

Estructura de la FSM implementada: Estados posibles

Page 32: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

DISEÑO DEL AGENTE Y RESULTADOS

2ª Aprox. AGs basados en FSM

Estructura de la FSM implementada: Cruce

Page 33: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

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

Page 34: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

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

Page 35: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

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

Page 36: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

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

Page 37: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

DISEÑO DEL AGENTE Y RESULTADOS

2ª Aprox. AGs basados en FSM

Limitaciones encontradas

Tiempo requerido para obtener el Agente evolucionado

Page 38: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

DISEÑO DEL AGENTE Y RESULTADOS

2ª Aprox. AGs basados en FSM

Limitaciones encontradas

Memoria requerida para la evolución

Page 39: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

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

Page 40: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

ÍNDICE

1. INTRODUCCIÓN

2. ESTRUCTURA DEL PROYECTO

3. HERRAMIENTAS UTILIZADAS

4. INTERACTIVIDAD

5. CONCLUSIÓN Y DEMOS

Page 41: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

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.

Page 42: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

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

Page 43: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

Saltar la Bibliografía y terminar

Page 44: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

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

Page 45: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

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

Page 46: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

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

Page 47: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

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/

Page 48: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

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

Page 49: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

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

Page 50: Diseño y Análisis Agente autónomo videojuego Super Mario Bros

Gracias por la atención!