Genetic algorithms are computer science techniques that seek to solve optimization or search problems. They are inspired by evolutionary biology and approach the search problem as a task of evolving a group or population of candidate individuals through successive generations, selecting fitter (or better) child individuals for each generation, until a solution is found. It uses evolutionary biology techniques such as inheritance, mutation, selection, and crossover (also called recombination).
In genetic algorithms (TRSGeneticAlgorithm component), there is a population of individuals (TRSGAPopulation), which contain chromosomes (Bits property). These chromosomes are used to abstractly represent the solution to the search problem. They represent through their bits the DNA of each candidate solution (or individual), represented by a TRSGAIndividual class. The chromosomes are created by taking the parameters or factors (integers, booleans, floats, and enumerations) of your search problem and concatenating them together into a sequence of bits.
Genetic Algorithms then work by evolving your population towards the solution of the problem. Parents are selected from the current generation to reproduce the children of the next generation. Evolving a new generation involves:
•Selecting 2 parents to reproduce
•Splicing the chromosomes of the 2 parents together to make a child (the child inherits the parents chromosomes)
•Optionally Mutating and Inverting the chromosome of the child to provide randomness
•Repeating the above steps until the population of the new generation has been produced.
After the new generation is bred, genetic algorithms looks at the new population to see if any of the individuals solve the problem. In genetic algorithms terms, this usually means evaluating the "fitness" of each individual (a numeric score that measures the ability of the individual). If any individual is "fit enough", the evolutionary search stops.