SlideShare una empresa de Scribd logo
1 de 70
Descargar para leer sin conexión
Survival of the
fi
ttest: usando el paquete
inspyred para entrenar IAs que juegan a
videojuegos
Pablo García Sánchez
@fergunet[@mastodon.online]
Dept. de Ingeniería de Computadores, Automática y Robótica
¿Quién soy?
• pablogarcia@ugr.es
• @fergunet@mastodon.online
• Profe de ICAR en la ETSIIT-UGR
• Investigo en IA para videojuegos,
algoritmos bioinspirados y
distribuidos
• Dir
ij
o la @OSLUGR
• Me gusta la fotografía, el cine, el
urban sketching y los videojuegos
Índice
• Ciencia e IA en los
videojuegos
• Algoritmos
Evolutivos
• Inspyred
• Usando inspyred
para optimizar
agentes
commons.wikipedia.org
El Mercado de los
Videojuegos
https://www.gamingscan.com/biggest-video-game-tournaments-in-the-world/
Investigar en videojuegos
P. García-Sánchez et al. A bibliometric study of the research area of videogames using Dimensions.ai database.
ITQM-2018. Procedia Computer Science (2018)
¿Por qué investigar en
videojuegos?
https://half-life.fandom.com/wiki/GLaDOS?
fi
le=Glados_new_body.jpg
Los juegos son complejos
Tienen físicas realísticas
Tienen imágenes Realistas
http://sarah-hesketh.blogspot.com/2011_11_01_archive.html
Existen muchos motores de
videojuegos
https://caveuvg.blogspot.com/2018/11/game-engines.html
¿Y la Inteligencia Arti
fi
cial?
• Hacer que los
ordenadores hagan
cosas que actualmente
sólo los humanos
pueden hacer
• ¿Para que puede usarse
la IA en videojuegos?
https://wallpapercave.com/hal-9000-wallpaper
Para Jugar al Juego
Para Generar Contenido
Para Modelar a las personas
que juegan
¿Por qué usar videojuegos para investigar en IA?
http://youtube.com/watch?v=eaxvqk9hydk
Los juegos son problemas
difíciles e interesantes
Interacción Humana-
Ordenador Rica
• Video
• Audio
• Narrativa
• Niveles
• Reglas
Los juegos son populares
• Popular
• Más contenido
• Más datos
https://www.nintendolife.com/news/2019/10/
feature_how_fangamer_changed_the_world_of_video_game_merchandise_forever
Áreas de lA en juegos
•Percepción
•Procesamiento de señal
•Machine Learning
•Psicología Arti
fi
cial
•Plani
fi
cación y Búsqueda
•Razonamiento
•Procesamiento del lenguaje natural
•Navegación
pixabay
• https://a16z.com/2022/11/17/the-generative-ai-
revolution-in-games/
Congresos y Revistas
Competiciones
Recomendaciones
Ejemplo de algoritmos
para Inteligencia
Arti
fi
cial:
Los Algoritmos
Evolutivos
hideyourarms.com
¿Qué son los Algoritmos
Evolutivos?
• Metaheurísticas
• Resuelve problemas de optimización
• Función de adecuación:
fi
tness
• Basados en población
• Basados el principio de selección natural
• Estocásticos
Individuos
No Yes Yes No Yes No F=3
Armor
Venom
Fire Fly
Fangs
Horns
Mating
No Yes Yes No Yes No
No Yes No No Yes Yes
O
ff
spring
No Yes Yes
No Yes No
No Yes No
No Yes Yes
F=2
F=4
Mutación
No Yes Yes No Yes Yes F=4
Yes F=5
Etapas de un EA
En general, necesitamos
• GENERAR individuos
• SELECCIONAR individuos
• GENERAR individuos h
ij
os (crossover, mutación...)
• EVALUAR individuos
• REEMPLAZAR individuos
Ejemplos de EAs
• Algoritmo genético: los individuos son vectores de
números
• Programación genética: los individuos son árboles
que codi
fi
can un programa
• Programación evolutiva: los individuos son otra
estructura (ej: una red neuronal)
• Otros: EDAs, Bayesianos, DE...
Algoritmos genéticos con
codi
fi
cación binaria
0 1 0 0 1 0 0
0 1 1 0 1 0 1
Ejemplo de problema: OneMax.
f=2
f=4
Algoritmos genéticos de
codi
fi
cación combinatoria
Gra Sev Bcn Mad Ten Ovi Lug
Ten Sev Gra Mad Lug Ovi Bcn
Ejemplo de problema: Viajante de comercio.
f1=2210km
f2=850km
Algoritmos genéticos con
codi
fi
cación real
0.7 1.4 0.7 0.8 1.1 0.9 0.9
0.6 1.5 1.6 1.7 2.7 1.6 1.9
Ejemplo de problema: Función Rastrigin.
Rastrigin(x) = 10n+∑i=1n((xi−1)2−10cos(2π(xi−1)))
f=0.8
f=1.7
Estrategia de Evolución (ES)
0.7 1.4 0.7 0.8 1.1 0.9 0.9
0.6 1.5 1.6 1.7 2.7 1.6 1.9
Ejemplo de problema: Función Rastrigin.
Rastrigin(x) = 10n+∑i=1n((xi−1)2−10cos(2π(xi−1)))
f=0.8
f=1.7
0.01 2.5 0.6 1.4 2.8 0.19 1.5
0.02 2.4 4.5 1.6 3.5 1.7 0.4
Librerías de EAs en Python
• DEAP
• EvoTorch
• Platypus (multiobjetivo)
• Inspyred
• Vamos al lío!
¿EAs en videojuegos?
Problema: Super Mario Bot
• FSM en la que se
evolucionan los
estados actuales
y las acciones
(salto, correr y
dirección)
• Fitness: distancia
recorrida
Programación Genética
actualMyShipsRatio>0.711
attackWeakestNeutralPlanet(0.3)
attackNearestEnemyPlanet(0.2)
attackEnemyBase(0.91)
myShipsLandedFlyingRatio>0.2
Problema: Planet Wars. f=21 victorias contra otro bot
Programación Genética
Problema: Starcraft. Fitness=2200 puntos contra otro bot
External Evaluator
Evolutionary Core
Constraints
.txt
.txt
TournamentManager
External Evaluator
Individual.DLL
results.txt
Parser
Fitness values
VM Server
VM Client
VM Client
VM Client
…
VStudio Compiler
Individual.cpp
CCGs
Hearthstone
• Lanzado en 2013
• Más de 40 millones de jugadores
• 9 héroes
• Rareza en las cartas
Simuladores
• Metastone (Java): https://github.com/demilich1/
metastone
• SabberStone (C#): https://github.com/HearthSim/
SabberStone
Ejemplo 1: generación de
mazos
(Source: Cody Durkin,
www.mastermarf.com, Creative Commons
Attribution-Noncommercial-Share-Alike 3.0
license)
Crossover
Crossover
Mutación
Ejemplo 2: Coevolución de IA
• Programar una IA con parámetros en el lenguaje que sea
• Dar puntos a las acciones posibles cada turno
• Matar un minion
• Dañar un minion
• Curar un minion
• …
• Enfrentar IAs entre sí -> NO NECESITAMOS AGENTES
CREADOS
VS
Si
Si_t1
Si_t2
Si_t3
scoreTask(Si,Si_t2)=12.9
scoreTask(Si,Si_t2)=13.8
scoreTask(Si,Si_t2)=1.9
Estado actual
Estado simulado
https://github.com/fergunet/SabberStone/tree/master/
core-extensions/SabberStoneCoreAi
ScoreTask
• Si me mata devuelvo -infinito
• Si mato al enemigo devuelvo infinito
• Score de diferencias:
• de salud (mía y del enemigo)->me interesa subir mi
salud y bajar la del enemigo
• en bichos muertos/aparecidos (míos y del enemigo)
• secretos y de maná
Pesos
HERO_HEALTH_REDUCED
HERO_ATTACK_REDUCED
MINION_HEALTH_REDUCED
MINION_ATTACK_REDUCED
MINION_KILLED
MINION_APPEARED
SECRET_REMOVED
MANA_REDUCED
M_HEALTH
M_ATTACK
M_HAS_CHARGE
M_HAS_DEAHTRATTLE
M_HAS_DIVINE_SHIELD
M_HAS_INSPIRE
M_HAS_LIFE_STEAL
M_HAS_STEALTH
M_HAS_TAUNT
M_HAS_WINDFURY
M_RARITY
M_MANA_COST
M_POISONOUS
• ./sabberstone agente enemigo 50 0.01 0.12 ... .06 > salida.txt
Probar un individuo
el cromoma de 21 pesos
Evolution Strategy (ES) en
Inspyred
Integrándolo en inspyred
• Crear cromosomas de 21 pesos reales
• Por cada individuo de la población:
• Enfrentarlo al resto de la población usando todas las combinaciones
de mazos (Mage, Shaman, Warrior)
• (¡Usar paralelismo aquí!)
• Salidas a
fi
cheros
• Parsear
fi
chero y actualizar
fi
tness de los individuos
• Fitness = victorias
• Los mejores sustituyen a los peores
¿Qué hemos aprendido?
• Implementar un agente básico que decide la mejor acción y
darle pesos reales -> Mejor usar ES que GA
• Lanzar simulador en la función evaluate
• El mejor
fi
tness es el número de victorias (o
fi
tness jerárquico)
• Es bueno re-evaluar individuos
• Validar siempre contra bots/mapas no usados para
aprendizaje
• Usar software libre
Y ya terminamos…
https://thisdayintechhistory.com/10/08/
fi
nish-him/
Referencias (Planet Wars)
• A. Fernández-Ares, A. Miguel Mora, J. J. Merelo Guervós, P. García-Sánchez, C. M. Fernandes:
Optimizing player behavior in a real-time strategy game using evolutionary algorithms. IEEE
Congress on Evolutionary Computation 2011: 2017-2024 (2012)
• A. Miguel Mora, A. Fernández-Ares, J. J. Merelo Guervós, P. García-Sánchez, C. M. Fernandes:
E
ff
ect of Noisy Fitness in Real-Time Strategy Games Player Behaviour Optimisation Using
Evolutionary Algorithms. J. Comput. Sci. Technol. 27(5): 1007-1023 (2012)
• Antonio Fernández-Ares, Pablo García-Sánchez, Antonio Miguel Mora, Juan J. Merelo Guervós:
Adaptive bots for real-time strategy games via map characterization. CIG 2012: 417-721 (2012)
• Antonio Fernández-Ares, Pablo García-Sánchez, Antonio M. Mora, Pedro A. Castillo Valdivieso,
Juan Julián Merelo Guervós, Maria I. García Arenas, Gustavo Romero: It's Time to Stop: A
Comparison of Termination Conditions in the Evolution of Game Bots. EvoApplications 2015:
355-368
• Pablo García-Sánchez, Antonio Fernández-Ares, Antonio Miguel Mora, Pedro A. Castillo
Valdivieso, Jesús González, Juan Julián Merelo Guervós: Tree Depth In
fl
uence in Genetic
Programming for Generation of Competitive Agents for RTS Games. EvoApplications 2014:
411-421
Referencias (Unreal)
• Antonio Miguel Mora, Ramón Montoya, Juan Julián Merelo Guervós,
Pablo García-Sánchez, Pedro A. Castillo, Juan Luís Jiménez Laredo,
Ana Isabel Martínez García, Anna Esparcia-Alcázar: Evolving Bot AI
in Unreal. EvoApplications (1) 2010: 171-180
• Antonio Miguel Mora, Francisco Aisa, Ricardo Caballero, Pablo
García-Sánchez, Juan Julián Merelo Guervós, Pedro A. Castillo,
Raúl Lara-Cabrera: Designing and Evolving an Unreal
TournamentTM 2004 Expert Bot. IWANN (2) 2013: 312-323
• Antonio Miguel Mora, M. A. Moreno, Juan Julián Merelo Guervós,
Pedro A. Castillo, Maribel García Arenas, Juan Luís Jiménez Laredo:
Evolving the cooperative behaviour in Unreal™ bots. CIG 2010:
241-248
Referencias (MADE)
• Rubén Héctor García-Ortega, Pablo García-Sánchez, Juan Julián Merelo
Guervós, María Isabel García Arenas, Pedro A. Castillo Valdivieso, Antonio M.
Mora: How the World Was MADE: Parametrization of Evolved Agent-Based
Models for Backstory Generation. EvoApplications 2015: 443-454
• Garcia-Ortega, Ruben H., et al. My life as a sim: evolving unique and
engaging life stories using virtual worlds. ALIFE 14: The Fourteenth
Conference on the Synthesis and Simulation of Living Systems. Vol. 14. Pages
580-587, 2014
• Rubén Héctor García-Ortega, Pablo García-Sánchez, Juan J. Merelo,
Aránzazu San Ginés, Ángel Fernández Cabezas: The Story of Their Lives:
Massive Procedural Generation of Heroes' Journeys Using Evolved Agent-
Based Models and Logical Reasoning. EvoApplications (1) 2016: 604-619
• Rubén Héctor García-Ortega, Pablo García-Sánchez, Juan Julián Merelo
Guervós: StarTroper, a
fi
lm trope rating optimizer using machine learning and
evolutionary algorithms. Expert Syst. J. Knowl. Eng. 37(6) (2020)
Referencias: StarCraft y
HearthStone
• Pablo García-Sánchez, Alberto Paolo Tonda, Antonio Miguel
Mora, Giovanni Squillero, Juan Julián Merelo Guervós: Towards
automatic StarCraft strategy asf using genetic programming.
CIG 2015: 284-291
• Pablo García-Sánchez, Alberto Paolo Tonda, Antonio Mora
García, Giovanni Squillero, Juan Julián Merelo Guervós:
Automated playtesting in collectible card games using
evolutionary algorithms: A case study in hearthstone. Knowl.-
Based Syst. 153: 133-146 (2018)
• P. García-Sánchez, Alberto Tonda, Antonio J. Fernández-Leiva,
Carlos Cotta. Optimizing Hearthstone agents using an
evolutionary algorithm. Knowl.-Based Syst, 2019
Software Libre y Ciencia
Abierta
• Repos de github: fergunet, deantares, amorag, jjmerelo,
geneura, geneura-papers
• El texto de esta presentación es CC-BY-SA (algunas
imágenes usadas tienen licencia libre, no comercial,
salvo imágenes de Blizzard, Bethesda, EA, Sony,
Microsoft, Nintendo y similares empresas, además de
alguna otra sin citar, pero usadas con
fi
nes docentes, no
me denuncien!)
Muchas gracias!
• @fergunet
• https://github.com/fergunet/SabberStone/tree/master/
core-extensions/SabberStoneCoreAi

Más contenido relacionado

Similar a Survival of the fittest: usando el paquete inspyred para entrenar IAs que juegan a videojuegos

hack de mutants genetic gladiators
hack de mutants genetic gladiatorshack de mutants genetic gladiators
hack de mutants genetic gladiatorsfred8mickey
 
Solid Day - Machine learning para organizaciones
Solid Day - Machine learning para organizacionesSolid Day - Machine learning para organizaciones
Solid Day - Machine learning para organizacionesSoftware Guru
 
Algoritmos Evolutivos para IA en Videojuegos
Algoritmos Evolutivos para IA en VideojuegosAlgoritmos Evolutivos para IA en Videojuegos
Algoritmos Evolutivos para IA en VideojuegosPablo García Sánchez
 
CEIAAIT - Fundamentos y Aplicaciones de Deep Learning.pdf
CEIAAIT - Fundamentos y Aplicaciones de Deep Learning.pdfCEIAAIT - Fundamentos y Aplicaciones de Deep Learning.pdf
CEIAAIT - Fundamentos y Aplicaciones de Deep Learning.pdfLuis Beltran
 
Inteligencia Artificial
Inteligencia Artificial Inteligencia Artificial
Inteligencia Artificial Danny2153
 
Inteligencia Artificial
Inteligencia Artificial Inteligencia Artificial
Inteligencia Artificial Danny2153
 
Ciencia y videojuegos
Ciencia y videojuegosCiencia y videojuegos
Ciencia y videojuegosAntonio Mora
 
Aprendizaje y juegos - Transmedia UMB
Aprendizaje y juegos - Transmedia UMBAprendizaje y juegos - Transmedia UMB
Aprendizaje y juegos - Transmedia UMBJorge Rubiano
 
Machine Learning & Bots
Machine Learning & BotsMachine Learning & Bots
Machine Learning & Bots[T]echdencias
 
Francisco Fernández de Vega - Generación automática de contenidos para Vi...
Francisco Fernández de Vega -  Generación automática de contenidos para Vi...Francisco Fernández de Vega -  Generación automática de contenidos para Vi...
Francisco Fernández de Vega - Generación automática de contenidos para Vi...Facultad de Informática UCM
 
Webconference. El mercado de los juegos online
Webconference. El mercado de los juegos onlineWebconference. El mercado de los juegos online
Webconference. El mercado de los juegos onlineEAE Business School
 
Hack#Inlife Valladolid
Hack#Inlife ValladolidHack#Inlife Valladolid
Hack#Inlife ValladolidSergio Morales
 
Ciencia y Videojuegos (ULP 2019)
Ciencia y Videojuegos (ULP 2019)Ciencia y Videojuegos (ULP 2019)
Ciencia y Videojuegos (ULP 2019)Antonio Mora
 
Optimizacion en videojuegos: retos para la comunidad científica
Optimizacion en videojuegos: retos para la comunidad científicaOptimizacion en videojuegos: retos para la comunidad científica
Optimizacion en videojuegos: retos para la comunidad científicakeldon_spain
 
Transformación Digital – Ciencia de datos el siguiente nivel
Transformación Digital – Ciencia de datos el siguiente nivelTransformación Digital – Ciencia de datos el siguiente nivel
Transformación Digital – Ciencia de datos el siguiente nivelJOSE AHIAS LOPEZ PORTILLO
 
La Inteligencia Artificial aplicada en los negocios
La Inteligencia Artificial aplicada en los negociosLa Inteligencia Artificial aplicada en los negocios
La Inteligencia Artificial aplicada en los negociosAMETIC
 
Gratificación Sensorial y social en videojuegos de acción bélica. Video: http...
Gratificación Sensorial y social en videojuegos de acción bélica. Video: http...Gratificación Sensorial y social en videojuegos de acción bélica. Video: http...
Gratificación Sensorial y social en videojuegos de acción bélica. Video: http...Beatriz Marcano Lárez
 
ECIMag 2010 - Clase 4/5
ECIMag 2010 - Clase 4/5ECIMag 2010 - Clase 4/5
ECIMag 2010 - Clase 4/5Corvalius
 

Similar a Survival of the fittest: usando el paquete inspyred para entrenar IAs que juegan a videojuegos (20)

hack de mutants genetic gladiators
hack de mutants genetic gladiatorshack de mutants genetic gladiators
hack de mutants genetic gladiators
 
Solid Day - Machine learning para organizaciones
Solid Day - Machine learning para organizacionesSolid Day - Machine learning para organizaciones
Solid Day - Machine learning para organizaciones
 
Algoritmos Evolutivos para IA en Videojuegos
Algoritmos Evolutivos para IA en VideojuegosAlgoritmos Evolutivos para IA en Videojuegos
Algoritmos Evolutivos para IA en Videojuegos
 
CEIAAIT - Fundamentos y Aplicaciones de Deep Learning.pdf
CEIAAIT - Fundamentos y Aplicaciones de Deep Learning.pdfCEIAAIT - Fundamentos y Aplicaciones de Deep Learning.pdf
CEIAAIT - Fundamentos y Aplicaciones de Deep Learning.pdf
 
Fiera Presentation
Fiera   PresentationFiera   Presentation
Fiera Presentation
 
Inteligencia Artificial
Inteligencia Artificial Inteligencia Artificial
Inteligencia Artificial
 
Inteligencia Artificial
Inteligencia Artificial Inteligencia Artificial
Inteligencia Artificial
 
Ciencia y videojuegos
Ciencia y videojuegosCiencia y videojuegos
Ciencia y videojuegos
 
Aprendizaje y juegos - Transmedia UMB
Aprendizaje y juegos - Transmedia UMBAprendizaje y juegos - Transmedia UMB
Aprendizaje y juegos - Transmedia UMB
 
Machine Learning & Bots
Machine Learning & BotsMachine Learning & Bots
Machine Learning & Bots
 
Francisco Fernández de Vega - Generación automática de contenidos para Vi...
Francisco Fernández de Vega -  Generación automática de contenidos para Vi...Francisco Fernández de Vega -  Generación automática de contenidos para Vi...
Francisco Fernández de Vega - Generación automática de contenidos para Vi...
 
Webconference. El mercado de los juegos online
Webconference. El mercado de los juegos onlineWebconference. El mercado de los juegos online
Webconference. El mercado de los juegos online
 
Hack#Inlife Valladolid
Hack#Inlife ValladolidHack#Inlife Valladolid
Hack#Inlife Valladolid
 
Ciencia y Videojuegos (ULP 2019)
Ciencia y Videojuegos (ULP 2019)Ciencia y Videojuegos (ULP 2019)
Ciencia y Videojuegos (ULP 2019)
 
Optimizacion en videojuegos: retos para la comunidad científica
Optimizacion en videojuegos: retos para la comunidad científicaOptimizacion en videojuegos: retos para la comunidad científica
Optimizacion en videojuegos: retos para la comunidad científica
 
Transformación Digital – Ciencia de datos el siguiente nivel
Transformación Digital – Ciencia de datos el siguiente nivelTransformación Digital – Ciencia de datos el siguiente nivel
Transformación Digital – Ciencia de datos el siguiente nivel
 
La Inteligencia Artificial aplicada en los negocios
La Inteligencia Artificial aplicada en los negociosLa Inteligencia Artificial aplicada en los negocios
La Inteligencia Artificial aplicada en los negocios
 
Video juegos
Video juegosVideo juegos
Video juegos
 
Gratificación Sensorial y social en videojuegos de acción bélica. Video: http...
Gratificación Sensorial y social en videojuegos de acción bélica. Video: http...Gratificación Sensorial y social en videojuegos de acción bélica. Video: http...
Gratificación Sensorial y social en videojuegos de acción bélica. Video: http...
 
ECIMag 2010 - Clase 4/5
ECIMag 2010 - Clase 4/5ECIMag 2010 - Clase 4/5
ECIMag 2010 - Clase 4/5
 

Último

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 

Último (15)

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 

Survival of the fittest: usando el paquete inspyred para entrenar IAs que juegan a videojuegos

  • 1. Survival of the fi ttest: usando el paquete inspyred para entrenar IAs que juegan a videojuegos Pablo García Sánchez @fergunet[@mastodon.online] Dept. de Ingeniería de Computadores, Automática y Robótica
  • 2. ¿Quién soy? • pablogarcia@ugr.es • @fergunet@mastodon.online • Profe de ICAR en la ETSIIT-UGR • Investigo en IA para videojuegos, algoritmos bioinspirados y distribuidos • Dir ij o la @OSLUGR • Me gusta la fotografía, el cine, el urban sketching y los videojuegos
  • 3.
  • 4. Índice • Ciencia e IA en los videojuegos • Algoritmos Evolutivos • Inspyred • Usando inspyred para optimizar agentes commons.wikipedia.org
  • 5. El Mercado de los Videojuegos https://www.gamingscan.com/biggest-video-game-tournaments-in-the-world/
  • 6. Investigar en videojuegos P. García-Sánchez et al. A bibliometric study of the research area of videogames using Dimensions.ai database. ITQM-2018. Procedia Computer Science (2018)
  • 7. ¿Por qué investigar en videojuegos? https://half-life.fandom.com/wiki/GLaDOS? fi le=Glados_new_body.jpg
  • 8. Los juegos son complejos
  • 11. Existen muchos motores de videojuegos https://caveuvg.blogspot.com/2018/11/game-engines.html
  • 12. ¿Y la Inteligencia Arti fi cial? • Hacer que los ordenadores hagan cosas que actualmente sólo los humanos pueden hacer • ¿Para que puede usarse la IA en videojuegos? https://wallpapercave.com/hal-9000-wallpaper
  • 13. Para Jugar al Juego
  • 15. Para Modelar a las personas que juegan
  • 16. ¿Por qué usar videojuegos para investigar en IA? http://youtube.com/watch?v=eaxvqk9hydk
  • 17. Los juegos son problemas difíciles e interesantes
  • 18. Interacción Humana- Ordenador Rica • Video • Audio • Narrativa • Niveles • Reglas
  • 19. Los juegos son populares • Popular • Más contenido • Más datos https://www.nintendolife.com/news/2019/10/ feature_how_fangamer_changed_the_world_of_video_game_merchandise_forever
  • 20. Áreas de lA en juegos •Percepción •Procesamiento de señal •Machine Learning •Psicología Arti fi cial •Plani fi cación y Búsqueda •Razonamiento •Procesamiento del lenguaje natural •Navegación pixabay
  • 25. Ejemplo de algoritmos para Inteligencia Arti fi cial: Los Algoritmos Evolutivos hideyourarms.com
  • 26. ¿Qué son los Algoritmos Evolutivos? • Metaheurísticas • Resuelve problemas de optimización • Función de adecuación: fi tness • Basados en población • Basados el principio de selección natural • Estocásticos
  • 27. Individuos No Yes Yes No Yes No F=3 Armor Venom Fire Fly Fangs Horns
  • 28. Mating No Yes Yes No Yes No No Yes No No Yes Yes
  • 29. O ff spring No Yes Yes No Yes No No Yes No No Yes Yes F=2 F=4
  • 30. Mutación No Yes Yes No Yes Yes F=4 Yes F=5
  • 32. En general, necesitamos • GENERAR individuos • SELECCIONAR individuos • GENERAR individuos h ij os (crossover, mutación...) • EVALUAR individuos • REEMPLAZAR individuos
  • 33. Ejemplos de EAs • Algoritmo genético: los individuos son vectores de números • Programación genética: los individuos son árboles que codi fi can un programa • Programación evolutiva: los individuos son otra estructura (ej: una red neuronal) • Otros: EDAs, Bayesianos, DE...
  • 34. Algoritmos genéticos con codi fi cación binaria 0 1 0 0 1 0 0 0 1 1 0 1 0 1 Ejemplo de problema: OneMax. f=2 f=4
  • 35. Algoritmos genéticos de codi fi cación combinatoria Gra Sev Bcn Mad Ten Ovi Lug Ten Sev Gra Mad Lug Ovi Bcn Ejemplo de problema: Viajante de comercio. f1=2210km f2=850km
  • 36. Algoritmos genéticos con codi fi cación real 0.7 1.4 0.7 0.8 1.1 0.9 0.9 0.6 1.5 1.6 1.7 2.7 1.6 1.9 Ejemplo de problema: Función Rastrigin. Rastrigin(x) = 10n+∑i=1n((xi−1)2−10cos(2π(xi−1))) f=0.8 f=1.7
  • 37. Estrategia de Evolución (ES) 0.7 1.4 0.7 0.8 1.1 0.9 0.9 0.6 1.5 1.6 1.7 2.7 1.6 1.9 Ejemplo de problema: Función Rastrigin. Rastrigin(x) = 10n+∑i=1n((xi−1)2−10cos(2π(xi−1))) f=0.8 f=1.7 0.01 2.5 0.6 1.4 2.8 0.19 1.5 0.02 2.4 4.5 1.6 3.5 1.7 0.4
  • 38. Librerías de EAs en Python • DEAP • EvoTorch • Platypus (multiobjetivo) • Inspyred • Vamos al lío!
  • 40. Problema: Super Mario Bot • FSM en la que se evolucionan los estados actuales y las acciones (salto, correr y dirección) • Fitness: distancia recorrida
  • 42. Programación Genética Problema: Starcraft. Fitness=2200 puntos contra otro bot
  • 43. External Evaluator Evolutionary Core Constraints .txt .txt TournamentManager External Evaluator Individual.DLL results.txt Parser Fitness values VM Server VM Client VM Client VM Client … VStudio Compiler Individual.cpp
  • 44. CCGs
  • 45. Hearthstone • Lanzado en 2013 • Más de 40 millones de jugadores • 9 héroes • Rareza en las cartas
  • 46.
  • 47. Simuladores • Metastone (Java): https://github.com/demilich1/ metastone • SabberStone (C#): https://github.com/HearthSim/ SabberStone
  • 48. Ejemplo 1: generación de mazos (Source: Cody Durkin, www.mastermarf.com, Creative Commons Attribution-Noncommercial-Share-Alike 3.0 license)
  • 52. Ejemplo 2: Coevolución de IA • Programar una IA con parámetros en el lenguaje que sea • Dar puntos a las acciones posibles cada turno • Matar un minion • Dañar un minion • Curar un minion • … • Enfrentar IAs entre sí -> NO NECESITAMOS AGENTES CREADOS VS
  • 53.
  • 56. ScoreTask • Si me mata devuelvo -infinito • Si mato al enemigo devuelvo infinito • Score de diferencias: • de salud (mía y del enemigo)->me interesa subir mi salud y bajar la del enemigo • en bichos muertos/aparecidos (míos y del enemigo) • secretos y de maná
  • 58.
  • 59. • ./sabberstone agente enemigo 50 0.01 0.12 ... .06 > salida.txt Probar un individuo el cromoma de 21 pesos
  • 60. Evolution Strategy (ES) en Inspyred
  • 61. Integrándolo en inspyred • Crear cromosomas de 21 pesos reales • Por cada individuo de la población: • Enfrentarlo al resto de la población usando todas las combinaciones de mazos (Mage, Shaman, Warrior) • (¡Usar paralelismo aquí!) • Salidas a fi cheros • Parsear fi chero y actualizar fi tness de los individuos • Fitness = victorias • Los mejores sustituyen a los peores
  • 62.
  • 63. ¿Qué hemos aprendido? • Implementar un agente básico que decide la mejor acción y darle pesos reales -> Mejor usar ES que GA • Lanzar simulador en la función evaluate • El mejor fi tness es el número de victorias (o fi tness jerárquico) • Es bueno re-evaluar individuos • Validar siempre contra bots/mapas no usados para aprendizaje • Usar software libre
  • 65. Referencias (Planet Wars) • A. Fernández-Ares, A. Miguel Mora, J. J. Merelo Guervós, P. García-Sánchez, C. M. Fernandes: Optimizing player behavior in a real-time strategy game using evolutionary algorithms. IEEE Congress on Evolutionary Computation 2011: 2017-2024 (2012) • A. Miguel Mora, A. Fernández-Ares, J. J. Merelo Guervós, P. García-Sánchez, C. M. Fernandes: E ff ect of Noisy Fitness in Real-Time Strategy Games Player Behaviour Optimisation Using Evolutionary Algorithms. J. Comput. Sci. Technol. 27(5): 1007-1023 (2012) • Antonio Fernández-Ares, Pablo García-Sánchez, Antonio Miguel Mora, Juan J. Merelo Guervós: Adaptive bots for real-time strategy games via map characterization. CIG 2012: 417-721 (2012) • Antonio Fernández-Ares, Pablo García-Sánchez, Antonio M. Mora, Pedro A. Castillo Valdivieso, Juan Julián Merelo Guervós, Maria I. García Arenas, Gustavo Romero: It's Time to Stop: A Comparison of Termination Conditions in the Evolution of Game Bots. EvoApplications 2015: 355-368 • Pablo García-Sánchez, Antonio Fernández-Ares, Antonio Miguel Mora, Pedro A. Castillo Valdivieso, Jesús González, Juan Julián Merelo Guervós: Tree Depth In fl uence in Genetic Programming for Generation of Competitive Agents for RTS Games. EvoApplications 2014: 411-421
  • 66. Referencias (Unreal) • Antonio Miguel Mora, Ramón Montoya, Juan Julián Merelo Guervós, Pablo García-Sánchez, Pedro A. Castillo, Juan Luís Jiménez Laredo, Ana Isabel Martínez García, Anna Esparcia-Alcázar: Evolving Bot AI in Unreal. EvoApplications (1) 2010: 171-180 • Antonio Miguel Mora, Francisco Aisa, Ricardo Caballero, Pablo García-Sánchez, Juan Julián Merelo Guervós, Pedro A. Castillo, Raúl Lara-Cabrera: Designing and Evolving an Unreal TournamentTM 2004 Expert Bot. IWANN (2) 2013: 312-323 • Antonio Miguel Mora, M. A. Moreno, Juan Julián Merelo Guervós, Pedro A. Castillo, Maribel García Arenas, Juan Luís Jiménez Laredo: Evolving the cooperative behaviour in Unreal™ bots. CIG 2010: 241-248
  • 67. Referencias (MADE) • Rubén Héctor García-Ortega, Pablo García-Sánchez, Juan Julián Merelo Guervós, María Isabel García Arenas, Pedro A. Castillo Valdivieso, Antonio M. Mora: How the World Was MADE: Parametrization of Evolved Agent-Based Models for Backstory Generation. EvoApplications 2015: 443-454 • Garcia-Ortega, Ruben H., et al. My life as a sim: evolving unique and engaging life stories using virtual worlds. ALIFE 14: The Fourteenth Conference on the Synthesis and Simulation of Living Systems. Vol. 14. Pages 580-587, 2014 • Rubén Héctor García-Ortega, Pablo García-Sánchez, Juan J. Merelo, Aránzazu San Ginés, Ángel Fernández Cabezas: The Story of Their Lives: Massive Procedural Generation of Heroes' Journeys Using Evolved Agent- Based Models and Logical Reasoning. EvoApplications (1) 2016: 604-619 • Rubén Héctor García-Ortega, Pablo García-Sánchez, Juan Julián Merelo Guervós: StarTroper, a fi lm trope rating optimizer using machine learning and evolutionary algorithms. Expert Syst. J. Knowl. Eng. 37(6) (2020)
  • 68. Referencias: StarCraft y HearthStone • Pablo García-Sánchez, Alberto Paolo Tonda, Antonio Miguel Mora, Giovanni Squillero, Juan Julián Merelo Guervós: Towards automatic StarCraft strategy asf using genetic programming. CIG 2015: 284-291 • Pablo García-Sánchez, Alberto Paolo Tonda, Antonio Mora García, Giovanni Squillero, Juan Julián Merelo Guervós: Automated playtesting in collectible card games using evolutionary algorithms: A case study in hearthstone. Knowl.- Based Syst. 153: 133-146 (2018) • P. García-Sánchez, Alberto Tonda, Antonio J. Fernández-Leiva, Carlos Cotta. Optimizing Hearthstone agents using an evolutionary algorithm. Knowl.-Based Syst, 2019
  • 69. Software Libre y Ciencia Abierta • Repos de github: fergunet, deantares, amorag, jjmerelo, geneura, geneura-papers • El texto de esta presentación es CC-BY-SA (algunas imágenes usadas tienen licencia libre, no comercial, salvo imágenes de Blizzard, Bethesda, EA, Sony, Microsoft, Nintendo y similares empresas, además de alguna otra sin citar, pero usadas con fi nes docentes, no me denuncien!)
  • 70. Muchas gracias! • @fergunet • https://github.com/fergunet/SabberStone/tree/master/ core-extensions/SabberStoneCoreAi