This project follows the discription of the Neuroevolution of Augmentation Topolgoies (NEAT) algorithm demostrated on a popular game Flappy Bird.
I fascinated by Code Bullet's video on this and decided to try it out by myself. When I say myself, I did take reference from Tech With Tim Video implementing and demostrating this project.
First of all, I think it's a pretty neat name for an algorithm.
According to Wikipedia, NeuroEvolution of Augmenting Topologies (NEAT) is a genetic algorithm aimed for the generation of artificial neural networks. This was developed by Ken Stanley in 2002 while at The University of Texas at Austin.
The weighting parameters and structures are altered in order to find a balance between the fitness of evolved solutionas and their diversity.
There are three key techniques:
- Tracking genes with history markers to allow crossover among topologies
- Applying speciation (the evolution of species) to preserve innovations
- Developing topologies incrementally from simple initial structure
To enable evolution in better sense:
- I used a multiple birds
- I assigned each of them some fitness points
- I also used generation of the birds
Initially multiple birds start flying at the random point as they go through pipes, the number of birds decrease with the bird who flew the longest having the most fitness. As this algorithm is evolutionary and supports "Survival of the Fittest", the next generation of birds will be modelled after the fittest bird.
Through multiple generations, the birds will get fitter and go thorough more pipes and at some point it will be a perfect run of flappy bird game.
- I could have done it without Time's Video. So huge thanks to him.
- Code bullet's video
- Information of NEAT by Wikipedia