Upload
antonio-fernandez-ares
View
77
Download
0
Embed Size (px)
Citation preview
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
Í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
Introducción: RTS
Real-Time Strategy games (RTS-games)
● Recursos
● Unidades
● Estructuras
Victoria:
• Exterminar a los enemigos
• Conquistar todas las estructuras/recursos
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.
Introducción: Planet Wars
Estructuras: Planetas
Unidades: Naves espaciales
Recursos: Naves generadas por planeta poseída
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.
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
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
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
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.
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
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
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.
Resultados del porcentaje de victorias de cada uno de los mejores bots de cada método contra el resto de bots soluciones (no entrenados)
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.
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”
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