Defines generics classes for adding genetic programs to your applications.
Genetic programming is a computer science method, inspired by evolutionary biology, for automatically solving problems, without having to know or define the form or structure of optimum problem structure beforehand. You define the basic building blocks (functions, constants, and variables) of the problem and then the component does the rest. Genetic programming solves problems by 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).
After the new generation is bred, genetic programming looks at the new population to see if any of the individuals solve the problem. In genetic programming 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.
|
|||||||||||||||||||||||
Represents the entire population (collection of RSGenerics.GeneticProgramming.TRSGPIndividual<T> ) in a genetic programming problem. The population class represents the set of candidate solutions in a genetic programming problem. In genetic programming ( RSGenerics.GeneticProgramming.TRSCustomGeneticProgramming<T> component), there is a population of individuals (TRSGPPopulation<T>), which contain tree-based DNA programs. Each candidate individual (represented by a TRSGPIndividual<T> class) has "DNA", which contains one program containing functions and terminals (constants and variables) Genetic Programming works 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 (Individuals) to reproduce • Splicing the DNA program trees of the 2 parents together to make a child (the child inherits the parents trees or sub-trees) • Optionally Mutating and Inverting the DNA trees 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 programming looks at the new population to see if any of the individuals solve the problem. In genetic programming 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.
Note |
---|
This is a generics-based implementation of a genetic programming population. For the RSGeneticProgramming|TRSGeneticProgramming class, the generics class is instantiated as floating point values. However, you can define your own genetic programming component using whatever type you want. |
|
|