Evolutionary algorithms for Controllers in Games · Using GAs for Super Mario –EBT •Using a...

22
Evolutionary algorithms for Controllers in Games 23.05.2019 AI for Games Oliver Mautschke

Transcript of Evolutionary algorithms for Controllers in Games · Using GAs for Super Mario –EBT •Using a...

Page 1: Evolutionary algorithms for Controllers in Games · Using GAs for Super Mario –EBT •Using a grid around Mario •Entry can be enemie, block or empty •Additional information:

Evolutionary algorithms forControllers in Games

23.05.2019

AI for Games

Oliver Mautschke

Page 2: Evolutionary algorithms for Controllers in Games · Using GAs for Super Mario –EBT •Using a grid around Mario •Entry can be enemie, block or empty •Additional information:

Overview

• Motivation

• Introduction to Evolutionary Algorithms

• Neuroevolution

• Evolving Behavior Trees

• Super Mario

• Conclusion

23.05.2019 AI for Games - Oliver Mautschke 2

Page 3: Evolutionary algorithms for Controllers in Games · Using GAs for Super Mario –EBT •Using a grid around Mario •Entry can be enemie, block or empty •Additional information:

Motivation

23.05.2019 AI for Games - Oliver Mautschke 3

An example for an use case of evolutionary algorithms [1]

Page 4: Evolutionary algorithms for Controllers in Games · Using GAs for Super Mario –EBT •Using a grid around Mario •Entry can be enemie, block or empty •Additional information:

Introduction to Evolutionary Algorithms

Select Parents

Crossover

Mutation

Fitness

23.05.2019 AI for Games - Oliver Mautschke 4

Page 5: Evolutionary algorithms for Controllers in Games · Using GAs for Super Mario –EBT •Using a grid around Mario •Entry can be enemie, block or empty •Additional information:

Introduction to Evolutionary Algorithms

• Evaluate Fitness• Examples: Traveled Distance, Survived Time, Highscore

• Select Parents• Fortune Wheel, Tournament Selection

• Recombination• N-Point Crossover, Unified Selection

• Mutation• Bit-Flipping, Adding a delta

23.05.2019 AI for Games - Oliver Mautschke 5

Page 6: Evolutionary algorithms for Controllers in Games · Using GAs for Super Mario –EBT •Using a grid around Mario •Entry can be enemie, block or empty •Additional information:

N-Point Crossover

23.05.2019 AI for Games - Oliver Mautschke 6

N-Point Crossover [2]

Page 7: Evolutionary algorithms for Controllers in Games · Using GAs for Super Mario –EBT •Using a grid around Mario •Entry can be enemie, block or empty •Additional information:

Neuroevolution

• Double Pole Problem was THE Benchmark for Controller Problems

• There is no loss

• Archived Time is the fitness

23.05.2019 AI for Games - Oliver Mautschke 7

Double Pole Balancing Problem [3]

Page 8: Evolutionary algorithms for Controllers in Games · Using GAs for Super Mario –EBT •Using a grid around Mario •Entry can be enemie, block or empty •Additional information:

Neuroevolution – The Concept

• Encoding an ANN as a genome

• Applying genome to a task and measure their performance• The difference to "classical" optimization approaches for ANNs: Not the

output loss is used, but the overall performance on a given task

• Evolving the ANNs by optimizing the weights and/or topology

• Mathematical optimization of RNNs is a hard task

• NE can be used to evolve RNNs efficiently

23.05.2019 AI for Games - Oliver Mautschke 8

Page 9: Evolutionary algorithms for Controllers in Games · Using GAs for Super Mario –EBT •Using a grid around Mario •Entry can be enemie, block or empty •Additional information:

Neuro Evolution of Augmented Topology

23.05.2019 AI for Games - Oliver Mautschke 9

• Starting from a simple ANN

• Adding new nodes/connections and change the weights

• Speciation

• Enabling & Disabling connections

• Innovation Numbers

Page 10: Evolutionary algorithms for Controllers in Games · Using GAs for Super Mario –EBT •Using a grid around Mario •Entry can be enemie, block or empty •Additional information:

Neuro Evolution of Augmented Topology

23.05.2019 AI for Games - Oliver Mautschke 10

Concept of NEAT [4]

Page 11: Evolutionary algorithms for Controllers in Games · Using GAs for Super Mario –EBT •Using a grid around Mario •Entry can be enemie, block or empty •Additional information:

Behavior Trees

• Encoding behavior of a controller

• Action Nodes:• Leafs

• The final decision

• Condition Nodes:• If-else-statement

• Branching nodes

23.05.2019 AI for Games - Oliver Mautschke 11

Behavior Tree example [5]

Page 12: Evolutionary algorithms for Controllers in Games · Using GAs for Super Mario –EBT •Using a grid around Mario •Entry can be enemie, block or empty •Additional information:

Evolving Behavior Trees

23.05.2019 AI for Games - Oliver Mautschke 12

• BTs get encoded via a context-free gramatic into an array

• The array is used as a genome

• Crossover: Swapping subtrees of parents

• Mutation: Randomly replace nodes

Page 13: Evolutionary algorithms for Controllers in Games · Using GAs for Super Mario –EBT •Using a grid around Mario •Entry can be enemie, block or empty •Additional information:

Super Mario

23.05.2019 AI for Games - Oliver Mautschke 13

Nintendo

Page 14: Evolutionary algorithms for Controllers in Games · Using GAs for Super Mario –EBT •Using a grid around Mario •Entry can be enemie, block or empty •Additional information:

Using GAs for Super Mario - FSM

Triggers

• Seen an enemy

• Seen an obstacle

• Seen nothing

• Seen enemy & seen hole

• Seen enemy & seen obstacle

• Seen hole & seen obstacle

23.05.2019 AI for Games - Oliver Mautschke 14

State Machine [6]

Page 15: Evolutionary algorithms for Controllers in Games · Using GAs for Super Mario –EBT •Using a grid around Mario •Entry can be enemie, block or empty •Additional information:

Using GAs for Super Mario – Learning Levels

• A genome encodes a whole level

• The genome is somehow the key for a level

• Through Evolutionary Algorithm the genome is evolved

23.05.2019 AI for Games - Oliver Mautschke 15

Page 16: Evolutionary algorithms for Controllers in Games · Using GAs for Super Mario –EBT •Using a grid around Mario •Entry can be enemie, block or empty •Additional information:

Using GAs for Super Mario – Learning Levels

• One game lasts for 200 seconds

• Discretized in 15 ticks → 3000 actions per game

• With 22 possible actions → 223000 possible combinations

• Fitness: Distance + Killed Enemies + Collected Items

• Result: 12.000 points on average, 2010 Mario AI Championship Winner had 9000 points on average

23.05.2019 AI for Games - Oliver Mautschke 16

Page 17: Evolutionary algorithms for Controllers in Games · Using GAs for Super Mario –EBT •Using a grid around Mario •Entry can be enemie, block or empty •Additional information:

Using GAs for Super Mario – Learning Levels

23.05.2019 AI for Games - Oliver Mautschke 17

Combinations of Buttons [8]

Page 18: Evolutionary algorithms for Controllers in Games · Using GAs for Super Mario –EBT •Using a grid around Mario •Entry can be enemie, block or empty •Additional information:

Using GAs for Super Mario – NEAT

• Using NEAT to evolve a controller

• Input: 16x13 grid of view

• Output: 6 Buttons as Bit-Vector

→Controller were able to solve a level after 35 generations

Fitness: Distance

23.05.2019 AI for Games - Oliver Mautschke 18

Super Mario learned with NEAT [8]

Page 19: Evolutionary algorithms for Controllers in Games · Using GAs for Super Mario –EBT •Using a grid around Mario •Entry can be enemie, block or empty •Additional information:

Using GAs for Super Mario – EBT

• Using a grid around Mario

• Entry can be enemie, block orempty

• Additional information:• Can Mario jump?

• Is Mario on the ground?

• In the paper, they compared it toNEAT, using the grid as input

Fitness: Distance

23.05.2019 AI for Games - Oliver Mautschke 19

Super Mario Level with 7x7 input grid [5]

Page 20: Evolutionary algorithms for Controllers in Games · Using GAs for Super Mario –EBT •Using a grid around Mario •Entry can be enemie, block or empty •Additional information:

23.05.2019 AI for Games - Oliver Mautschke 20Resulting Behavior Tree [5]

Page 21: Evolutionary algorithms for Controllers in Games · Using GAs for Super Mario –EBT •Using a grid around Mario •Entry can be enemie, block or empty •Additional information:

Conclusion

• Evolutionary Algorithms and Neuroevolution are a good approach forevery Task where no perfect strategy is known

• GAs and NE can be used if a solution can be encoded as genome and a the performance of a solution can be rated

• GAs can find unusal solutions and are capable to cover a widebehavior diversity

• BUT: GAs need a lot of computing power and the parameters have tobe optimized by hand in order to make the algorithm reach a goodsolution

23.05.2019 AI for Games - Oliver Mautschke 21

Page 22: Evolutionary algorithms for Controllers in Games · Using GAs for Super Mario –EBT •Using a grid around Mario •Entry can be enemie, block or empty •Additional information:

References

[1] Casas, P.: https://www.r-bloggers.com/feature-selection-using-genetic-algorithms-in-r/

Visted: 21.05.19 [2] Nissen, V.: Einige Grundlagen Evolutionärer Algorithmen, 1998

[3] Pagliuca, P. et al: Maximizing adaptive power in Neuroevolution, 2018

[4] Stanley, K.; Miikkulainen, R.: Evolving Neural Networks through AugmentingTopologies, 2002

[5] Kuhn, K.; Foley, R.: A Comparison of Genetic Algorithms using Super Mario Bros, 2015[6] Infinite Mario Bross AI using Genetic Algorithm

[7] Baldominos, A. et al: Learning Levels of Mario AI Using Genetic Algorithms, 2015[8] Singhal, K. et al: Deep Reinforcement Learning in Mario, 2016

23.05.2019 AI for Games - Oliver Mautschke 22