Top Banner
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
20

Maeb2015 - GPBot

Jul 22, 2015

Download

Science

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Maeb2015   - GPBot

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

Page 2: Maeb2015   - GPBot

Í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

Page 3: Maeb2015   - GPBot

Introducción: RTS

Real-Time Strategy games (RTS-games)

● Recursos

● Unidades

● Estructuras

Victoria:

• Exterminar a los enemigos

• Conquistar todas las estructuras/recursos

Page 4: Maeb2015   - GPBot

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.

Page 5: Maeb2015   - GPBot

Introducción: Planet Wars

Estructuras: Planetas

Unidades: Naves espaciales

Recursos: Naves generadas por planeta poseída

Page 6: Maeb2015   - GPBot

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.

Page 7: Maeb2015   - GPBot

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

Page 8: Maeb2015   - GPBot

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

Page 9: Maeb2015   - GPBot

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

Page 10: Maeb2015   - GPBot

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.

Page 11: Maeb2015   - GPBot

Funciones de Fitness: Pendiente

Análisis de la “evolución” de recursos relativos.

Page 12: Maeb2015   - GPBot

Funciones de Fitness: Área

Análisis de la “evolución” de recursos relativas.

Page 13: Maeb2015   - GPBot

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

Page 14: Maeb2015   - GPBot

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

Page 15: Maeb2015   - GPBot

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.

Page 16: Maeb2015   - GPBot

Resultados del porcentaje de victorias de cada uno de los mejores bots de cada método contra el resto de bots soluciones (no entrenados)

Page 17: Maeb2015   - GPBot

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.

Page 18: Maeb2015   - GPBot

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”

Page 19: Maeb2015   - GPBot

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

Page 20: Maeb2015   - GPBot

Preguntas

Antonio Fernández Ares [email protected] Twitter: @antaress