Neuroevolution Snake

Neuroevolution Machine Learning Approach for Snake using C++ from Scratch. This was part of an academic paper on machine learning with focus on neuroevolution.

Setup

The entire thing is implemented from scratch only using the C++ Standard Library. I did this to get a deep insight into how this appraoch is realised on a technical level.

This is a basic UML of the general strcucture of the implementation.

Neuroevolution Snake UML

Performance

I tested this implementation to see how good the model can get when trying to play Snake.

The last model was created with the 8th Generation, which was able to get a score of 17. This was after a total of 26 hours of training on a mediocre laptop from 2018.

References

The academic paper can be supplied on request.

See the accompanying GitHub project timmeinerzhagen/neuroevolution-snake.