Este documento describe el uso de programación genética para crear bots competitivos para un juego de estrategia en tiempo real llamado Planet Wars. Se compararon tres funciones de fitness: una basada en victorias y turnos, otra en la pendiente de recursos relativos y otra en el área de recursos relativos. Los resultados mostraron que las funciones basadas en pendiente y área produjeron individuos superiores, pero no de manera consistente, mientras que la función basada en victorias/turnos generó individuos más estables. Se concluye que la programación genética puede cre
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Diseño de bots competitivos para RTS usando GP y análisis de funciones de fitness
1. Diseño de bots competitivos para un
juego de estrategia en tiempo real
usando programación genética:
análisis de funciones de fitness
A.Fernández-Ares, P.García-Sánchez, A.M.Mora, P.A.Castillo
2. Índice
1. Introducción
a. RTS
b. Programación Genética
c. Planet Wars
2. GPBot
a. Decisiones
b. Acciones
3. Funciones de Fitness
a. Victorias
b. Pendientes
c. Área
4. Experimentación
5. Resultados
6. Conclusiones
a. Programación Genética
b. Fitness
c. Enemigos
7. Futuro trabajo
3. Introducción: RTS
Real-Time Strategy games (RTS-games)
● Recursos
● Unidades
● Estructuras
Victoria:
• Exterminar a los enemigos
• Conquistar todas las estructuras/recursos
4. Introducción: Programación Genética
Es un tipo de Algoritmo Evolutivo (EA), por
tanto cada individuo de la población es una
solución posible.
Los individuos son representados en árboles
de expresión.
6. GPBot
Evolución de Árboles
de Decisión.
Durante la evolución
cada individuo (árbol)
es evaluado.
En la evaluación le es
otorgado un fitness.
7. GPBot: Decisiones
Nodos primitivos de la PG
Una expresión lógica formada al menos por una
variable normalizada extraida del estado del juego y
un valor entre 0 y 1
● myShipsEnemyRatio
● myShipsLandedFlyingRatio
● myPlanetsEnemyRatio
● myPlanetsTotalRatio
● actualMyShipsRatio
● actualLandedFlyingRatio
8. GPBot: Acciones
Nodos terminales de la PG
Las acciones implican el movimiento de un
porcentaje de naves del planeta origen a un destino
establecido
● Attack Nearest (Neutral|Enemy|NotMy)Planet
● Attack Weakest (Neutral|Enemy|NotMy) Planet
● Attack Wealthiest (Neutral|Enemy|NotMy) Planet
● Attack Beneficial (Neutral|Enemy|NotMy) Planet
● Attack Quickest (Neutral|Enemy|NotMy) Planet}
● Attack (Neutral|Enemy|NotMy) Base
● Attack Random Planet
● Reinforce Nearest Planet
● Reinforce Base
● Reinforce Wealthiest Planet
Weakest Neutral
9. Funciones de fitness
Fitness clásico: Basado en victorias y turnos
• Difícil de operar en distintas evaluaciones
• No fácilmente aplicable a enfrentamientos con varios
enemigos
Estudiamos 3 funciones de Fitness distintas:
• Basado en victorias / turnos
• Basado en pendiente
• Basado en área
Fitness: 5 enfrentamientos en diferente escenarios
10. Funciones de Fitness: Victorias
Un individuo es mejor si gana más batallas.
En igualdad de victorias, contemplamos los turnos
que ha agotado en las pérdidas.
13. Experimentación
Nombre del Parámetro Valor
Tamaño de la población 32
Tipo de crossover Crossover de sub-árbol
Tasa de crossover 0.5
Mutación 1-node
Step-size de la mutación 0.25
Selección 2-torneo
Reemplazo Steady-state *
Condicion de parada 50
Profundidad máxima del árbol 7
Ejecuciones por configuración 20
Evaluación Partida contra Genebot
Mapas usados en cada evaluación map76, map69, map7, map11, map26
14. Resultados obtenidos por cada configuración al final de las 20 ejecuciones
Mejor Fitness
(media)
Fitness población
(media)
F. Victorias 4.761 ± 0.624 4.345 ± 0.78
F. Pendiente 2.296 ± 0.486 2.103 ± 0.486
F. Área 2.838 ± 1.198 2.347 ± 0.949
15. Resultados del porcentaje de victorias de cada uno de los bots obtenidos en
cada configuración contra Genebot (bot entrenado) en mapas entrenados y no
entrenados.
16. Resultados del porcentaje de victorias de cada uno de los mejores bots de
cada método contra el resto de bots soluciones (no entrenados)
17. Conclusiones: Programación Genética
Puede crear bots competitivos para juegos,
pero requiere elaborar un gran conjunto de
reglas.
Requiere el estudio y conocimiento previo
del problema.
Puede abordar estrategías complejas.
18. Conclusiones: Fitness
• Un fitness basados en victorias / turnos
consigue individuos más “estables”.
• Los fitness basados en pendiente y área
de recursos relativos consiguen
individuos superiores, pero no lo
garantiza.
• Objetivo: fitness basado en victorias /
turnos pero que pueda “operarse”
19. Futuro Trabajo
• Añadir reglas adicionales
(condiciones y acciones) para análisis
avanzado
• Empleo de más enemigos
competitivos (batallas incrementales)
• Empleo en RTS más complejos:
Starcraft
• Co-evolución