The theoretical concepts behind genetic evolution have been used several times in artificial intelligence, and also in different areas of research. In the last few years, a researcher used a NEAT algorithm to teach an AI to complete a level of Mario without dying. Neuro Evolution of Augmented Technologies combines two AI techniques together. NEAT uses genetic algorithm concepts to find the next evolution between neural networks.
The current implementation of NEAT keeps a population of individual genomes, each containing two sets of genes that describe how to build an artificial network. The first set is nodes, each of which specify a neuron. These are the neurons that make up the neural network, with information outlying the neuron’s position in the network (input, hidden and output layers). The second set is connections, which are the links between the neurons. To evolve the solution to a problem, a fitness function needs to be defined with the goal of checking the quality of a single genome. The higher the score of the genome, the better ability to solve the identified problem. In a nutshell, the algorithm progresses through a specified number of generations, with each generation being produced by reproduction (either sexual or asexual) and mutation of the most fit individuals of the previous generation.
Early applications of the NEAT implementation demonstrated the ability for real time calculations in video games, showcased in NERO, a game designed for educational purposes. The real time neural network is able to adopt to player behaviour during the application’s runtime, which created an engaging experience for its players (More information at http://nn.cs.utexas.edu/downloads/papers/stanley.ieeetec05.pdf).
Another implementation uses knowledge bases in the form of finite state machines, termed as Knowledge Based NEAT (KB-NEAT), that combines the FSM generated behaviour with the real-time adaptability of a neural network using NEAT. Using KB-NEAT, based on Knowledge Based Artificial Neural Networks (KBANN), developers can automatically convert a FSM into a network which exhibits the same policies then further evolve the network. In this work, two experiment scenarios were created for the AI to adapt its behaviour to avoid enemy fire from a turret; to chase a roving enemy around spawn point (More info at http://nn.cs.utexas.edu/?kbneat )