SlideShare une entreprise Scribd logo
1  sur  19
Télécharger pour lire hors ligne
Optimización evolutiva de bots para el juego Planet Wars
          A. Fernández-Ares, A.M. Mora, J.J. Merelo,
          P. García-Sánchez, y C.M. Fernandes
viernes 10 de febrero de 2012
Índice
                Introducción
                Descripción del problema
                Baseline: GoogleBot
                Primera aproximación: AresBot
                Segunda aproximación: GeneBot
                Conclusiones



viernes 10 de febrero de 2012
Introducción
                Google AI Challenge
                Planet Wars




viernes 10 de febrero de 2012
viernes 10 de febrero de 2012
Descripción del problema

                                Estado                      Acciones
                                               Bot
                                actual                      a realizar


                Restricciones
                      RTS->Juego basado en turnos. 1 turno = 1 sec
                      No se puede usar memoria para guardar estado del juego
                      Estado actual: planetas y flotas
                      Acciones: un archivo de texto con acciones leído por el
                      juego
viernes 10 de febrero de 2012
Baseline: GoogleBot

                Incluido en el kit como base de comparación
                Cómo funciona:
                      Busca el planeta que contiene más naves (base)
                      El planeta objetivo se calcula usando la relación entre la
                      tasa de crecimiento y el número de naves
                      Espera hasta que la flota llegue al planeta




viernes 10 de febrero de 2012
Primera versión: AresBot
                En cada turno:
                Selecciona la base de acuerdo a una puntuación (el
                resto se denominan colonias)
                Seleccionar un planeta objetivo a atacar
                Por cada colonia:
                      Reforzar la base (tithe) ó
                      Ayudar al ataque


viernes 10 de febrero de 2012
Parámetros de AresBot
                titheperc y titheprob: porcentaje de naves que el bot envía
                a la base/probabilidad de que ocurra.
                ωNS−DIS y ωGR: pesos del número de naves y distancia y
                tasa de crecimiento (usada en la función de puntuación
                para planeta objetivo)
                poolperc y supportperc: porcentaje de naves que el bot
                envía desde la base o colonias al planeta objetivo.
                supportprob: probabilidad de enviar naves extra desde las
                colonias al planeta objetivo


viernes 10 de febrero de 2012
Operation GeneBot

                Usando técnicas intergalácticas (un GA) se mejora a
                AresBot para crear al poderoso GeneBot.
                Gen: array de parámetros
                2-Tournament
                BLX-alpha crossover
                Re-evaluación



viernes 10 de febrero de 2012
Función Fitness

                Cada individuo se enfrenta a GoogleBot en 5 mapas
                distintos
                Un individuo es mejor que otro si:
                      Gana en más mapas
                      Necesita menos turnos, en caso de empate




viernes 10 de febrero de 2012
Experimentos

                Población de 200 individuos, 100 generaciones
                40 segundos para evaluar cada uno, por lo que cada
                ejecución dura dos días. ->(sí, paralelismo en el
                futuro...)
                Se obtuvieron 15 bots distintos




viernes 10 de febrero de 2012
Resultados
                          titheperc   titheprob   ωNS−DIS    ωGR        poolperc   supportperc supportprob


  AresBot                       0,1     0,5           1            1       0,25        0,5         0,9


 GeneBot                  0,0179      0,00823      0,50954    0,23273    0,73321    0,58946     0,97405


    Media               0,17386       0,09702      0,47252    0,36409    0,65732    0,59987     0,59987




viernes 10 de febrero de 2012
viernes 10 de febrero de 2012
viernes 10 de febrero de 2012
viernes 10 de febrero de 2012
viernes 10 de febrero de 2012
viernes 10 de febrero de 2012
Conclusiones y
          Trabajo futuro
                El primer GeneBot terminó en la posición 1454 en la competición (36%),
                pero sólo se ejecutó una vez para conseguirlo. 1000 posiciones mejor que
                AresBot
                El fitness define bien al individuo
                Más cosas que hacer:
                      Paralelismo (obviamente)
                      Multi-objetivo
                      Co-evolución
                      Programación genética
                Parar cuando el bot tenga conciencia propia, claro.



viernes 10 de febrero de 2012
¡Gracias!
          (y preguntas, me temo)

viernes 10 de febrero de 2012

Contenu connexe

En vedette

FSM-Based Agents for Playing Super Mario Game
FSM-Based Agents for Playing Super Mario GameFSM-Based Agents for Playing Super Mario Game
FSM-Based Agents for Playing Super Mario GameAntonio Mora
 
Evolutionary Deckbuilding in Hearthstone
Evolutionary Deckbuilding in HearthstoneEvolutionary Deckbuilding in Hearthstone
Evolutionary Deckbuilding in HearthstonePablo García Sánchez
 
Adaptative bots for real time strategy game via map characterization
Adaptative bots for real time strategy game via map characterization Adaptative bots for real time strategy game via map characterization
Adaptative bots for real time strategy game via map characterization Antonio Fernández Ares
 
Farid Bedjaoui et la cuisine orientale
Farid Bedjaoui et la cuisine orientaleFarid Bedjaoui et la cuisine orientale
Farid Bedjaoui et la cuisine orientalefaridbedjaoui
 
Bûche de noël
Bûche de noëlBûche de noël
Bûche de noëlIES
 
transports et autres
transports et autrestransports et autres
transports et autresBernardfr
 
Corrette methode pour_le_violoncelle
Corrette methode pour_le_violoncelleCorrette methode pour_le_violoncelle
Corrette methode pour_le_violoncelleofraga
 
Conférence de presse Tilkee/Orange
Conférence de presse Tilkee/OrangeConférence de presse Tilkee/Orange
Conférence de presse Tilkee/OrangeSylvain Tillon
 
Dresdner Impressionen Kalender 2010
Dresdner Impressionen Kalender 2010Dresdner Impressionen Kalender 2010
Dresdner Impressionen Kalender 2010Volker Mölle
 
Smart messaging
Smart messagingSmart messaging
Smart messagingCristhian
 
Pastiche[1]
Pastiche[1]Pastiche[1]
Pastiche[1]katem21
 
Hallows 110216152909-phpapp01
Hallows 110216152909-phpapp01Hallows 110216152909-phpapp01
Hallows 110216152909-phpapp01Omar Hernandez
 
Personnaliser son site sur ICOM Channel
Personnaliser son site sur ICOM ChannelPersonnaliser son site sur ICOM Channel
Personnaliser son site sur ICOM ChannelI-COM Software
 

En vedette (20)

FSM-Based Agents for Playing Super Mario Game
FSM-Based Agents for Playing Super Mario GameFSM-Based Agents for Playing Super Mario Game
FSM-Based Agents for Playing Super Mario Game
 
Evolutionary Deckbuilding in Hearthstone
Evolutionary Deckbuilding in HearthstoneEvolutionary Deckbuilding in Hearthstone
Evolutionary Deckbuilding in Hearthstone
 
Adaptative bots for real time strategy game via map characterization
Adaptative bots for real time strategy game via map characterization Adaptative bots for real time strategy game via map characterization
Adaptative bots for real time strategy game via map characterization
 
Art90s
Art90sArt90s
Art90s
 
1. la celula
1. la celula1. la celula
1. la celula
 
Paul J.
Paul J.Paul J.
Paul J.
 
la amistad
la amistadla amistad
la amistad
 
Farid Bedjaoui et la cuisine orientale
Farid Bedjaoui et la cuisine orientaleFarid Bedjaoui et la cuisine orientale
Farid Bedjaoui et la cuisine orientale
 
Bûche de noël
Bûche de noëlBûche de noël
Bûche de noël
 
Einführung in Social Media beim Medien-Lunch des Business Club Hamburg
Einführung in Social Media beim Medien-Lunch des Business Club HamburgEinführung in Social Media beim Medien-Lunch des Business Club Hamburg
Einführung in Social Media beim Medien-Lunch des Business Club Hamburg
 
Aimercest
AimercestAimercest
Aimercest
 
transports et autres
transports et autrestransports et autres
transports et autres
 
Corrette methode pour_le_violoncelle
Corrette methode pour_le_violoncelleCorrette methode pour_le_violoncelle
Corrette methode pour_le_violoncelle
 
Doble programa
Doble programaDoble programa
Doble programa
 
Conférence de presse Tilkee/Orange
Conférence de presse Tilkee/OrangeConférence de presse Tilkee/Orange
Conférence de presse Tilkee/Orange
 
Dresdner Impressionen Kalender 2010
Dresdner Impressionen Kalender 2010Dresdner Impressionen Kalender 2010
Dresdner Impressionen Kalender 2010
 
Smart messaging
Smart messagingSmart messaging
Smart messaging
 
Pastiche[1]
Pastiche[1]Pastiche[1]
Pastiche[1]
 
Hallows 110216152909-phpapp01
Hallows 110216152909-phpapp01Hallows 110216152909-phpapp01
Hallows 110216152909-phpapp01
 
Personnaliser son site sur ICOM Channel
Personnaliser son site sur ICOM ChannelPersonnaliser son site sur ICOM Channel
Personnaliser son site sur ICOM Channel
 

Genebot maeb

  • 1. Optimización evolutiva de bots para el juego Planet Wars A. Fernández-Ares, A.M. Mora, J.J. Merelo, P. García-Sánchez, y C.M. Fernandes viernes 10 de febrero de 2012
  • 2. Índice Introducción Descripción del problema Baseline: GoogleBot Primera aproximación: AresBot Segunda aproximación: GeneBot Conclusiones viernes 10 de febrero de 2012
  • 3. Introducción Google AI Challenge Planet Wars viernes 10 de febrero de 2012
  • 4. viernes 10 de febrero de 2012
  • 5. Descripción del problema Estado Acciones Bot actual a realizar Restricciones RTS->Juego basado en turnos. 1 turno = 1 sec No se puede usar memoria para guardar estado del juego Estado actual: planetas y flotas Acciones: un archivo de texto con acciones leído por el juego viernes 10 de febrero de 2012
  • 6. Baseline: GoogleBot Incluido en el kit como base de comparación Cómo funciona: Busca el planeta que contiene más naves (base) El planeta objetivo se calcula usando la relación entre la tasa de crecimiento y el número de naves Espera hasta que la flota llegue al planeta viernes 10 de febrero de 2012
  • 7. Primera versión: AresBot En cada turno: Selecciona la base de acuerdo a una puntuación (el resto se denominan colonias) Seleccionar un planeta objetivo a atacar Por cada colonia: Reforzar la base (tithe) ó Ayudar al ataque viernes 10 de febrero de 2012
  • 8. Parámetros de AresBot titheperc y titheprob: porcentaje de naves que el bot envía a la base/probabilidad de que ocurra. ωNS−DIS y ωGR: pesos del número de naves y distancia y tasa de crecimiento (usada en la función de puntuación para planeta objetivo) poolperc y supportperc: porcentaje de naves que el bot envía desde la base o colonias al planeta objetivo. supportprob: probabilidad de enviar naves extra desde las colonias al planeta objetivo viernes 10 de febrero de 2012
  • 9. Operation GeneBot Usando técnicas intergalácticas (un GA) se mejora a AresBot para crear al poderoso GeneBot. Gen: array de parámetros 2-Tournament BLX-alpha crossover Re-evaluación viernes 10 de febrero de 2012
  • 10. Función Fitness Cada individuo se enfrenta a GoogleBot en 5 mapas distintos Un individuo es mejor que otro si: Gana en más mapas Necesita menos turnos, en caso de empate viernes 10 de febrero de 2012
  • 11. Experimentos Población de 200 individuos, 100 generaciones 40 segundos para evaluar cada uno, por lo que cada ejecución dura dos días. ->(sí, paralelismo en el futuro...) Se obtuvieron 15 bots distintos viernes 10 de febrero de 2012
  • 12. Resultados titheperc titheprob ωNS−DIS ωGR poolperc supportperc supportprob AresBot 0,1 0,5 1 1 0,25 0,5 0,9 GeneBot 0,0179 0,00823 0,50954 0,23273 0,73321 0,58946 0,97405 Media 0,17386 0,09702 0,47252 0,36409 0,65732 0,59987 0,59987 viernes 10 de febrero de 2012
  • 13. viernes 10 de febrero de 2012
  • 14. viernes 10 de febrero de 2012
  • 15. viernes 10 de febrero de 2012
  • 16. viernes 10 de febrero de 2012
  • 17. viernes 10 de febrero de 2012
  • 18. Conclusiones y Trabajo futuro El primer GeneBot terminó en la posición 1454 en la competición (36%), pero sólo se ejecutó una vez para conseguirlo. 1000 posiciones mejor que AresBot El fitness define bien al individuo Más cosas que hacer: Paralelismo (obviamente) Multi-objetivo Co-evolución Programación genética Parar cuando el bot tenga conciencia propia, claro. viernes 10 de febrero de 2012
  • 19. ¡Gracias! (y preguntas, me temo) viernes 10 de febrero de 2012