Optimizing Strategy Parameters in a Game Bot

Post on 04-Jun-2015

1.045 views 3 download

Tags:

description

Using a GA to optimize a hand-coded bot to play Planet Wars game.

Transcript of Optimizing Strategy Parameters in a Game Bot

Optimizing Strategy Parameters in a Game BotA. Fernández-Ares, A.M. Mora, J.J. Merelo,P. García-Sánchez, and C.M. Fernandes

viernes 10 de junio de 2011

Agenda

Introduction

Problem description

Baseline: GoogleBot

First Approach: AresBot

Second Approach: GeneBot

Conclusions

viernes 10 de junio de 2011

Introduction

Google AI Challenge

Planet Wars Game

viernes 10 de junio de 2011

viernes 10 de junio de 2011

Problem description

Restrictions

RTS->Turn based game. A turn = 1 sec

No memory to store knowledge about the game

Current status: planets and fleets

Actions: a text file with actions to be read by the game

Current status

BotActions

to perform

viernes 10 de junio de 2011

Baseline: GoogleBot

Included in the framework to use as a comparator of quality

How does it work:

Seeks the planet that hosts most ships (base)

Target planet calculated using the ratio of growth-rate and number of ships

Waits until the fleet reachs the target

viernes 10 de junio de 2011

First Approach: AresBot

In each turn:

Select the base according a score function (the rest are colonies)

Select a target planet to attack

For each colony:

Reinforcement of base planet (tithe) or

Contribute to attacking

viernes 10 de junio de 2011

AresBot parameters

titheperc and titheprob: percentage of starships the bot sends/probability it happens.

ωNS−DIS and ωGR: weight of the number of starships, distance to target from base and planet growth rate (used in the score function of target planet)

poolperc and supportperc: percentage ships that the bot sends from the base planet or colonies to the target planet.

supportprob: probability of sending extra fleets from the colonies to the target planet

viernes 10 de junio de 2011

Operation GeneBot

Using intergalactic techniques from planet Ares to evolve AresBot: a Genetic Algorithm!

Gene: parameters array

2-Tournament

BLX-alpha crossover

Ellitism

viernes 10 de junio de 2011

Fitness Function

Each individual runs in five relevant maps

Ranked fitness:

LT: Number of games a bot wins

if equal-> WT: number of turns to win

viernes 10 de junio de 2011

Experiments

Population of 400 individuals

40 sec to evaluate each one, so just one evaluation to enter in the competition (4 hours per generation)->(yes, parallelism in future...)

viernes 10 de junio de 2011

Resultstitheperc titheprob ωNS−DIS ωGR poolperc supportperc supportprob

AresBot 0,1 0,5 1 1 0,25 0,5 0,9

GeneBot 0,294 0,0389 0,316 0,844 0,727 0,822 0,579

TurnsTurnsTurnsVictories

Average and Std. Dev. Min MaxVictories

AresBot 210 ± 130 43 1001 99

GeneBot 159 ± 75 22 458 100

viernes 10 de junio de 2011

Conclusions and Future Work

GeneBot ended in 1454 position in the contest (36%). 1000 positions better than AresBot

More work to do:

Paralellism

Multi-objective approachs

Genetic Programming

Stop when the bot acquire self-awareness, of course.

viernes 10 de junio de 2011

Thanks! (and questions, I guess)

viernes 10 de junio de 2011