The TRSIndividual class is the base individual class for the library. It represents one individual, or candidate solution, in the population of solutions in a genetic algorithm or genetic programming problem. With genetic components, there is a population of individuals ( RSGeneticBase.TRSPopulation), which contain "dna", chromosomes for genetic algorithms or a program tree for genetic programming.
Genetic components 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 (Individuals) to reproduce |
• | Splicing the the 2 parents together to make a child (called Crossover) |
• | Optionally Mutating and Inverting the "dna" of the child to provide randomness |
• | Repeating the above steps until the population of the new generation has been produced.
|
Namespace: RSGeneticBase
Delphi
|
type
TRSIndividual = class(TCollectionItem)
end;
|
|
Name
|
Description
|
|
AdjustedFitness
|
Represents property AdjustedFitness.
|
|
Collection
|
Returns the population that this individual belongs to.
|
|
Fitness
|
The Fitness property is a floating point value that specifies the correctness of the individual DNA. Fitness is used by the genetic components to decide which individuals are better than others. Fitness is a score you define for every individual using an OnEvaluateFitness event handler. It may be any floating point number. However, fitness must have relative meaning among the entire range of assigned fitness numbers, e.g., a fitness of -10 must be worse than a fitness of -3 which must be worse than a fitness of 5, etc (or vice versa, the FitnessMethod property tells the genetic component whether lower or higher numbers are desirable). The NormalizedFitness value is the fitness of the individual normalized over the entire population's fitness values so that it is a value between 0 and 1 (where 0 will be the individual with the lowest fitness and 1 will be the individual with the highest fitness).
Using each individual's calculated fitness and the FitnessMethod, the genetic component will seek to either maximize the solution (e.g., keep evolving for individuals whose fitness are greater than other individuals in the population) or to minimize the solution (e.g., find the individuals whose fitness are less than other individuals).
|
|
Name
|
Allows you to provide a descriptive name for the individual. The genetics components do not use this property.
|
|
NeedFitness
|
Represents property NeedFitness.
|
|
NormalizedFitness
|
Returns the Fitness of the individual normalized over the entire population's fitness values so that it is a value between 0 and 1 (where 0 will be the individual with the lowest fitness and 1 will be the individual with the highest fitness).
|
|
NormalizedWeigthedFitness
|
Returns the WeightedFitness of the individual normalized over the entire population's weighted fitness values so that it is a value between 0 and 1 (where 0 will be the individual with the lowest weighted fitness and 1 will be the individual with the highest weighted fitness).
|
|
WeightedFitness
|
Returns the Fitness value weighted by some function. Use the RSGeneticBase.TRSCustomGeneticComponent.OnEvaluateWeightedFitness event to specify the weighting.
The genetic components can guide the search for the best individual by using the weighted fitness instead of the regular fitness. The weighted fitness allows optimization for something other than the pure fitness. For example, with genetic programming, the weighted fitness can be used to weight the fitness for smaller programs. The FitnessMethod specifies whether the Fitness or the WeightedFitness is used in the search.
Note that the Fitness is always used for determining if we have found the "best" individual for termination purposes.
|
Top
|
|
Name
|
Description
|
|
FFitness
|
Represents field FFitness.
|
Top
|