Maeb2015 - GPBot

Post on 22-Jul-2015

77 Views

Category:

Science

0 Downloads

Preview:

Click to see full reader

Transcript

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.

Funciones de Fitness: Pendiente

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

Funciones de Fitness: Área

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

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

Preguntas

Antonio Fernández Ares antares@ugr.es Twitter: @antaress

top related