What Exactly is "Evolute C#"?
Evolute C# is a genetic programming library, which is used to create and evolve programs randomly.
The main focus of the library is to give an easy feeling to the user. You know those libraries, that you download, and you need to look at the "specification"? or perhaps you need to break your head in trying to do something because there are no examples. Evolute is not something like that. Therefore, the library usage is well documented and no such quick "dOXYGEN" crap will be here, at least not at first.
What is genetic programming?
Genetic programming is an algorithm that was really expanded by John Koza, at first, the computer generates a population of completely random programs,
Later, the programs are being run and the user gives a fitness, or mark, for each program. The algorithm will use this fitness in order to select individuals from the population that are better than others for some future genetic operations.
The genetic operations are cloning, crossover and mutation.
After we have selected the "relatively good" individuals from the population, we randomly select an action to perform.
Cloning, means for this relatively good individual, we just copy it to the next population of the next generation.
Crossover, means for two relatively good individuals, we create new two sons, that part of their code is taken from parent one, and the other part is taken from parent two.
Mutation, means take a random part of the code and replace it with totally new random code.
after many such cycles, called "generations", that these actions are being performed on the relatively good individuals, we expect that the code will get better. and so it does - after a while we get programs that perform better at the tasks we wanted them to perform.
Overall, genetic programming is a search and optimization algorithm.
For more info about Genetic Programming (about the algorithm itself), look at : http://www.genetic-programming.org/