|
Assign(TPersistent)
|
Represents method Assign(TPersistent). (Overrides RSGeneticBase.TRSCustomGeneticComponent.Assign(TPersistent).)
|
|
AssignAll(TPersistent)
|
Represents method AssignAll(TPersistent). (Inherited from RSGenerics.GeneticProgramming.TRSCustomGeneticProgramming<T>.)
|
|
CalculateCumulativeNormalizedFitnesses
|
Calculates the cumulative normalized fitness values of the Population (Inherited from RSGeneticBase.TRSCustomGeneticComponent.)
|
|
CompareFitness(TRSIndividual,TRSIndividual,Boolean)
|
Compares the two individuals and returns an evaluation of who is fitter. If the result is -1, Parent1 is fitter. If the result is 1, Parent2 is fitter. If the two individuals are equally fit, the function returns 0.
The function uses the RSGeneticBase.TRSIndividual.Fitness property or RSGeneticBase.TRSIndividual.WeightedFitness to determine which parent is fitter. The FitnessMethod controls the interpretation of the fitness.
The UsePureFitness parameter tells the function if it should ignore WeightedFitness or not.
|
|
CreateInstructions(TCollectionItemClass)
|
Creates the instructions collection (Overrides RSGenerics.GeneticProgramming.TRSCustomGeneticProgramming<T>.CreateInstructions(TCollectionItemClass).)
|
|
CreateNode(TRSGPInstruction<TGAFloat>,TRSGPNode<TGAFloat>)
|
Represents method CreateNode(TRSGPInstruction<TGAFloat>,TRSGPNode<TGAFloat>).
|
|
CreatePopulation(TRSIndividualClass)
|
Creates the population collection (Overrides RSGeneticBase.TRSCustomGeneticComponent.CreatePopulation(TRSIndividualClass).)
|
|
Crossover(TRSIndividual,TRSIndividual,TRSIndividual)
|
Overloaded. Combines the DNA of the two parents to make the DNA of the children. Note that crossover is not guaranteed to occur but is dependent on the CrossoverProbability. The function calls the OnCrossover event and then DoCrossover method.
The Crossover method is called by the Reproduce method. The function returns true if crossover occurred.
|
|
Crossover(TRSIndividual,TRSIndividual,TRSIndividual,TRSIndividual)
|
Overloaded. Combines the DNA of the two parents to make the DNA of the children. Note that crossover is not guaranteed to occur but is dependent on the CrossoverProbability. The function calls the OnCrossover event and then DoCrossover method.
The Crossover method is called by the Reproduce method. The function returns true if crossover occurred.
|
|
DefineProperties(TFiler)
|
Represents method DefineProperties(TFiler). (Overrides RSGeneticBase.TRSCustomGeneticComponent.DefineProperties(TFiler).)
|
|
Describe(TStrings,String)
|
Provides a description of the genetic programming component and its important properties. The description is added to the Strings parameter. The TabStr parameter specifies the indentation to use when adding sub-strings. (Overrides RSGeneticBase.TRSCustomGeneticComponent.Describe(TStrings,String).)
|
|
DoAntiBloating(TRSIndividual,TRSIndividual,TRSIndividual,Boolean)
|
Performs the actual anti-bloating strategy after the new child has been created. The IsChildModified parameter indicates if the child was mutated or inverted
Note
|
Not all anti-bloating strategies occur in this method
|
|
|
DoCalculateFitnessStatistics
|
Calculates the fitness statistics (max, min, avg) for one generation. The method accesses each individual's Fitness property which may force a fitness evaulation to occur. (Inherited from RSGeneticBase.TRSCustomGeneticComponent.)
|
|
DoCalculateWeightedFitnessStatistics
|
Calculates the weighted fitness statistics (max, min, avg) for one generation. The method accesses each individual's WeightedFitness property which may force a fitness evaulation to occur. (Overrides RSGeneticBase.TRSCustomGeneticComponent.DoCalculateWeightedFitnessStatistics.)
|
|
DoConstantMutation(TIndividual)
|
Performs a constant mutation (changes the constant of a tree node) (Inherited from RSGenerics.GeneticProgramming.TRSCustomGeneticProgramming<T>.)
|
|
DoCrossover(TRSIndividual,TRSIndividual,TRSIndividual,TRSIndividual)
|
Performs the actual crossover operation. The decision to crossover has already been decided by the time this method is called. (Overrides RSGeneticBase.TRSCustomGeneticComponent.DoCrossover(TRSIndividual,TRSIndividual,TRSIndividual,TRSIndividual).)
|
|
DoEvaluateWeightedFitness(TRSIndividual)
|
Calls the OnEvaluateWeightedFitness event and returns the result. If the event handler has not been defined, this method returns the regular fitness (Overrides RSGeneticBase.TRSCustomGeneticComponent.DoEvaluateWeightedFitness(TRSIndividual).)
|
|
DoEvolve
|
Performs the actual evolve for one generation with each new pair of children being created in sequence (Inherited from RSGeneticBase.TRSCustomGeneticComponent.)
|
|
DoEvolveOneStep(Integer)
|
Performs the actual evolve for one pair of children (Inherited from RSGeneticBase.TRSCustomGeneticComponent.)
|
|
DoFairCrossover(TRSIndividual,TRSIndividual,TRSIndividual)
|
Represents method DoFairCrossover(TRSIndividual,TRSIndividual,TRSIndividual). (Inherited from RSGenerics.GeneticProgramming.TRSCustomGeneticProgramming<T>.)
|
|
DoFinishEvolve
|
Performs final steps for one evolution phase. Called by DoEvolve. (Inherited from RSGeneticBase.TRSCustomGeneticComponent.)
|
|
DoHoistMutation(TIndividual)
|
Performs a hoist mutation. Hoist mutation replaces the entire child program tree with a subtree from the child (the subtree becomes the root node). This has the effect of reducing the complexity of the child. (Inherited from RSGenerics.GeneticProgramming.TRSCustomGeneticProgramming<T>.)
|
|
DoInitialize
|
Performs the actual initialization of the Population before evolution occurs.
The method returns number of duplicates fixed.
|
|
DoInitializeFull(TNode,Integer,Integer)
|
Initializes a genetic program tree to the full depth.
The Full method creates trees that all equal the InitializationDepth (think full, bushy trees). There are not necessarily all the same size (number of nodes) as they depends on the arity of the instructions, but the same initial depth. The Full method creates trees by selecting only functions with arity greater than 0 until the initialization depth is reached; after which only terminals are selected.
|
|
DoInitializeGrow(TNode,Integer,Integer)
|
Initializes a genetic program tree by growing to the depth indicated.
The Grow method creates trees of a wider variety of shapes and sizes than the full method. In the Grow method, nodes for the trees are selected from the full set of primitives (functions, constants, and variables) until the initialization depth is reached. Since an early node could select a terminal (constant, variable, or function of arity = 0), that node's subtree stops growing before the initialization depth.
|
|
DoInvert(TRSIndividual)
|
Performs the actual inversion of the individual. The decision to invert the individual has already been made before calling this method. (Overrides RSGeneticBase.TRSCustomGeneticComponent.DoInvert(TRSIndividual).)
|
|
DoMutate(TRSIndividual)
|
Performs the actual mutation of the individual. The decision to mutat the individual has already been made before calling this method. (Overrides RSGeneticBase.TRSCustomGeneticComponent.DoMutate(TRSIndividual).)
|
|
DoParallelEvolveOneStep(Integer)
|
Performs the actual evolve for one pair of children (Inherited from RSGeneticBase.TRSCustomGeneticComponent.)
|
|
DoPointMutation(TIndividual)
|
Overloaded. Performs point mutation. A random node is selected and the primitive
stored there is replaced with a different random primitive of the same arity taken from the primitive set
(Inherited from RSGenerics.GeneticProgramming.TRSCustomGeneticProgramming<T>.)
|
|
DoPointMutation(TIndividual,TNode)
|
Overloaded. Performs point mutation on the tree. A random node is selected and the primitive stored there is replaced with a different random primitive of the same arity taken from the primitive set
Returns true if a point mutation occurred. Point mutation can occur more than once based on PointMutationMethod.
|
|
DoReplacementMutation(TIndividual)
|
Performs a replacement mutation (replace a subtree of the individual with another subtree that starts with the same arity) (Inherited from RSGenerics.GeneticProgramming.TRSCustomGeneticProgramming<T>.)
|
|
DoReproduce(TRSIndividual,TRSIndividual,TRSIndividual)
|
Performs the actual reproduction operation by combining the two parents to make the new Child. The Child must already exist but may be uninitialized. (Overrides RSGeneticBase.TRSCustomGeneticComponent.DoReproduce(TRSIndividual,TRSIndividual,TRSIndividual).)
|
|
DoReproduce(TRSIndividual,TRSIndividual,TRSIndividual,TRSIndividual)
|
Performs the actual reproduction operation by combining the two parents to make two new children. The children must already exist but may be uninitialized. (Overrides RSGeneticBase.TRSCustomGeneticComponent.DoReproduce(TRSIndividual,TRSIndividual,TRSIndividual,TRSIndividual).)
|
|
DoSelectionPreparation
|
Performs any steps necessary for selecting parents in the newly evolved Population.
This method is called when evaluating fitness for everyone.
|
|
DoSelectParent(TRSPopulation)
|
Performs the selection of a parent from the Population. This method is only called if the SelectionMethod is Custom. (Inherited from RSGeneticBase.TRSCustomGeneticComponent.)
|
|
DoShrinkMutation(TIndividual)
|
Performs a shrink mutation. Shrink mutation replaces a subtree of the child with a terminal. This has the effect of reducing the complexity of the child. (Inherited from RSGenerics.GeneticProgramming.TRSCustomGeneticProgramming<T>.)
|
|
DoStartEvolve
|
Performs initial steps for one evolution phase. Called by DoEvolve. (Overrides RSGeneticBase.TRSCustomGeneticComponent.DoStartEvolve.)
|
|
DoSubtreeMutation(TIndividual)
|
Performs a subtree mutation (replace a subtree of the individual with another subtree) (Inherited from RSGenerics.GeneticProgramming.TRSCustomGeneticProgramming<T>.)
|
|
EvaluateFitness
|
Overloaded. Evaluates the fitness for every individual of the Population (and calculates the MaxFitness, MinFitness, and AvgFitness). It calculates a fitness estimation for every RSGeneticBase.TRSIndividual by calling the overloaded EvaluateFitness method. It uses your OnEvaluateFitness event handler to calculate values. After every individual is evaluated, it sets the MaxFitness, MinFitness, and AvgFitness values and sets the FittestIndividual property.
Defining your fitness function is a highly important part of defining a genetic algorithm or genetic program. The fitness function returns a floating point value that specifies the correctness of the individual solution. The fitness function needs to be able to allow the genetic component to decide which solution is better than another. 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). Note you can specify which direction to evolve towards with the FitnessMethod property.
|
|
EvaluateFitness(TRSIndividual,Boolean)
|
Returns a fitness estimation of the passed in RSGeneticBase.TRSIndividual . It uses your OnEvaluateFitness event handler to return the value.
Defining your fitness function is a highly important part of defining a genetic algorithm or genetic program. The fitness function returns a floating point value that specifies the correctness of the individual solution. The fitness function needs to be able to allow the genetic component to decide which solution is better than another. 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). Note you can specify which direction to evolve towards with the FitnessMethod property.
The overloaded EvaluateFitness method evaluates the fitness for every individual of the Population (and calculates the MaxFitness, MinFitness, and AvgFitness).
|
|
Evolve
|
Overloaded. The Evolve method is the heart of the genetic component. The Evolve method is responsible for "breeding" the Population towards an answer for your goal. Each generation, the Evolve method selects parents and then Reproduces children for the new generation by using the genetic operations: first crossover, then mutation, and finally inversion. Each call to Evolve with breed one new generation. If you want to evolve many new generations at once (perhaps with a cutoff using the FitnessCutoff, GenerationLimit and DiversityLimit properties), use the overloaded Evolve method. Successive calls to the Evolve method continues the evolutionary process from where the Evolve method stopped (use Initialize to reset the process). If this is your first call to Evolve, it automatically calls the Initialize method.
Specify the Operations to control which operations are performed while evolving: crossover, mutation, and inversion operations. You can also specify the chances of each operation occurring every generation using the CrossoverProbability, MutationProbability, and InversionProbability properties.
The SelectionMethod property (or OnSelection event) specifies how the genetic component selects individuals from the current generation to be used as parents of the next generation.
The FitnessCutoff property aborts the evolutionary process when any child meets or exceeds (if FitnessMethod is fmMaximize) or is less than (if FitnessMethod is fmMinimize) the cutoff value. The UseFitnessCutoff property must be true to use the fitness cutoff.
The DiversityLimit property aborts the evolutionary process when the diversity of the children falls below the DiversityLimit, e.g., all the children are too alike to go any further. The UseDiversityLimit property must be true to use the diversity limit.
The GenerationLimit property aborts the evolutionary process when the required number of generations have been evolved. The UseGenerationLimit property must be true to use the generation limit.
|
|
Evolve(Integer)
|
Overloaded. The Evolve method is the heart of the genetic component. The Evolve method is responsible for "breeding" the Population towards an answer for your goal. Each generation, the Evolve method selects parents and then Reproduces children for the new generation by using the genetic operations: first crossover, then mutation, and finally inversion. You can specify the number of generations to evolve or use the FitnessCutoff, GenerationLimit and DiversityLimit properties to automatically stop the genetic process. Successive calls to the Evolve method continues the evolutionary process from where the Evolve method stopped (use Initialize to reset the process). If this is your first call to Evolve, it automatically calls the Initialize method.
Specify the Operations to control which operations are performed while evolving: crossover, mutation, and inversion operations. You can also specify the chances of each operation occurring every generation using the CrossoverProbability, MutationProbability, and InversionProbability properties.
The SelectionMethod property (or OnSelection event) specifies how the genetic component selects individuals from the current generation to be used as parents of the next generation.
The FitnessCutoff property aborts the evolutionary process when any child meets or exceeds (if FitnessMethod is fmMaximize) or is less than (if FitnessMethod is fmMinimize) the cutoff value. The UseFitnessCutoff property must be true to use the fitness cutoff.
The DiversityLimit property aborts the evolutionary process when the diversity of the children falls below the DiversityLimit, e.g., all the children are too alike to go any further. The UseDiversityLimit property must be true to use the diversity limit.
The GenerationLimit property aborts the evolutionary process when the required number of generations have been evolved. The UseGenerationLimit property must be true to use the generation limit.
|
|
Fittest(TRSIndividual,TRSIndividual,Boolean)
|
Returns the "fitter" of the two parent individuals. It compares the Fitness properties (or WeightedFitness) of both individuals, and, based on the FitnessMethod, selects the better individual. (Inherited from RSGeneticBase.TRSCustomGeneticComponent.)
|
|
GetAdjustedFitness(TGAFitness)
|
Calculates the adjusted fitness, a value between 0 and 1, where a bigger value (closer to 1) represents better individuals.
The adjusted fitness equals 1/(1 + StandardizedFitness) when minimizing, and 1/(1+(MaxFitness - StandardizedFitness)) when maximizing.
|
|
GetNode(TNode,Integer)
|
Overloaded. Creates and returns a node for the specified parent node. The node may be a function, constant, or variable node (Inherited from RSGenerics.GeneticProgramming.TRSCustomGeneticProgramming<T>.)
|
|
GetNode(TNode,TNode,Integer)
|
Overloaded. Creates and returns a node for the specified parent node. The node is similar (of the same type and arity of the Similar node parameter) (Inherited from RSGenerics.GeneticProgramming.TRSCustomGeneticProgramming<T>.)
|
|
GetNormalizedFitness(TGAFitness)
|
Calculates the normalized fitness, a value between 0 and 1.
The normalized fitness equals Fitness / Sum of All Fitness
|
|
GetNormalizedWeightedFitness(TGAFitness)
|
Calculates the normalized weighted fitness, a value between 0 and 1.
The normalized fitness equals Fitness / Sum of All Weighted Fitness
|
|
GetOperationNode(TNode,Integer)
|
Creates and returns a function node for the specified parent node from the list of Operations (Inherited from RSGenerics.GeneticProgramming.TRSCustomGeneticProgramming<T>.)
|
|
GetSimilarInstruction(TInstruction)
|
Returns an instruction that is similar (of same type and arity) (Inherited from RSGenerics.GeneticProgramming.TRSCustomGeneticProgramming<T>.)
|
|
GetTerminalNode(TNode,Integer)
|
Creates and returns a terminal (constants, variables, and functions of arity=0) node for the specified parent node from the list of Terminals (Inherited from RSGenerics.GeneticProgramming.TRSCustomGeneticProgramming<T>.)
|
|
Initialize
|
Prepares the genetic component for evolution (or resets the genetic population to start over). On calling the Initialization method, the Population is set to the InitialPopulation size. The OnInitialization method is called. Then, the Population's DNA are randomized and each individual's fitness is evaluated. (Inherited from RSGeneticBase.TRSCustomGeneticComponent.)
|
|
InitializeChild(TRSIndividual,TRSIndividual,TRSIndividual)
|
Initializes the Child with the two parents (usually just a copy of the first parent) (Inherited from RSGeneticBase.TRSCustomGeneticComponent.)
|
|
InstructionNotify(TInstruction,Classes)
|
Called when an instruction is added or removed from the Instructions (Inherited from RSGenerics.GeneticProgramming.TRSCustomGeneticProgramming<T>.)
|
|
InstructionOperationUpdate(TInstruction)
|
Called when an instruction's Operation is changed (i.e., it changes from a function to a constant or a variable to a function, etc) (Inherited from RSGenerics.GeneticProgramming.TRSCustomGeneticProgramming<T>.)
|
|
InstructionUpdate(TInstruction)
|
Called when an instruction is changed (Inherited from RSGenerics.GeneticProgramming.TRSCustomGeneticProgramming<T>.)
|
|
Invert(TRSIndividual)
|
Inverts the DNA of the individual. Inversion for genetic algorithms means flipping the bits of the chromosome. For genetic programs, inversion means a point mutation (replacing a node with another node of the same arity in the tree).
Note that inversion is not guaranteed to occur but is dependent on the InversionProbability. The function calls the OnInversion event and then DoInvert method.
The Invert method is called by the Reproduce method. The function returns true if inversion occurred.
|
|
IsCustomSelection
|
Returns true if SelectionMethod is custom (Inherited from RSGeneticBase.TRSCustomGeneticComponent.)
|
|
IsFinished
|
Returns true if the evolution process is complete. The process is complete if the Fitness meets the FitnessCutoff (if UseFitnessCutoff is true) or the population diversity meets the DiversityLimit (if UseDiversityLimit is true) or the Generation exceeds the GenerationLimit (if UseGenerationLimit is true). (Inherited from RSGeneticBase.TRSCustomGeneticComponent.)
|
|
LoadFromFile(string)
|
Loads the entire genetic component from the XML file specified by the Filename parameter, including the Genes (genetic algorithms) or Instructions (genetic programming) and the Population. Use the LoadFromFile and SaveToFile methods to stream in and out the genetic component in XML format. The format of the XML is defined in the GeneticAlgorithm.xsd and GeneticProgramming.xsd schema files. (Overrides RSGeneticBase.TRSCustomGeneticComponent.LoadFromFile(string).)
|
|
LoadFromStream(TStream)
|
Loads the entire genetic component from the XML stream specified by the stream parameter, including the Genes (genetic algorithms) or Instructions (genetic programming) and the Population. Use the LoadFromStream and SaveToStream methods to stream in and out the genetic component in XML format. The format of the XML is defined in the GeneticAlgorithm.xsd and GeneticProgramming.xsd schema files. (Overrides RSGeneticBase.TRSCustomGeneticComponent.LoadFromStream(TStream).)
|
|
LoadFromXML(IXMLGeneticProgram)
|
Overloaded. Load the entire genetic programming scenario from the XML
Warning
|
The component reads and writes the metadata about instructions (i.e., name, arity, comment) but does not actually read or write the OnExecute code. After reading a genetic programming scenario, you need to add OnExecute event handlers to instructions.
|
Important Note
|
When reading a genetic programming scenario, the component will attempt to match currently existing instructions to instruction names in the scenario. IF an instruction is found, the instruction will be preserved (including its OnExecute event).
After reading the scenario, any previous instructions not found in the scenario will be deleted.
|
|
|
LoadFromXML(IXMLGPDomainType)
|
Overloaded. Load the genetic programming domain ( instructions, fittest individual, population) from the XML
Warning
|
The component reads and writes the metadata about instructions (i.e., name, arity, comment) but does not actually read or write the OnExecute code. After reading a genetic programming scenario, you need to add OnExecute event handlers to instructions.
|
Important Note
|
When reading a genetic programming scenario, the component will attempt to match currently existing instructions to instruction names in the scenario. IF an instruction is found, the instruction will be preserved (including its OnExecute event).
After reading the scenario, any previous instructions not found in the scenario will be deleted.
|
|
|
LoadFromXML(IXMLGPInstructions)
|
Overloaded. Load the genetic programming instructions from the XML
Warning
|
The component reads and writes the metadata about instructions (i.e., name, arity, comment) but does not actually read or write the OnExecute code. After reading a genetic programming scenario, you need to add OnExecute event handlers to instructions.
|
Important Note
|
When reading a genetic programming scenario, the component will attempt to match currently existing instructions to instruction names in the scenario. IF an instruction is found, the instruction will be preserved (including its OnExecute event).
After reading the scenario, any previous instructions not found in the scenario will be deleted.
|
|
|
MaxNodeArity
|
Returns the maximum number of children and node ( RSGenerics.GeneticProgramEngine.TRSGPNode<T> ) in the component can accept (Inherited from RSGenerics.GeneticProgramming.TRSCustomGeneticProgramming<T>.)
|
|
Mutate(TIndividual,TGPMutationMethod)
|
Overloaded. Mutates the DNA of the individual using the Mutation method. The mutation method controls how the genetic program tree is modified.
This method is called by the overloaded Mutate method when mutation is found to have occurred by its probability.
|
|
PopulationNotify(TRSIndividual,TCollectionNotification)
|
Called when an individual is added or removed from the Population (Inherited from RSGeneticBase.TRSCustomGeneticComponent.)
|
|
PopulationUpdate(TRSIndividual)
|
Called when an individual has changed (Inherited from RSGeneticBase.TRSCustomGeneticComponent.)
|
|
PrioritizePopulation
|
Prioritizes or sorts the population based on Fitness or WeightedFitness and the FitnessMethod. (Inherited from RSGeneticBase.TRSCustomGeneticComponent.)
|
|
Reproduce(TRSIndividual,TRSIndividual,TRSIndividual)
|
Overloaded. The Reproduce method takes the two Parents and "mates" them to create the new Children. The Child parameters must exist but all of their information will be overwritten by the Parents. The New Child is copied from its first parent and then Crossover, Mutate, and Invert are called according to the Operations property and the respective probability of the operation. Finally, an OnReproduction event occurs.
The Evolve method calls the Reproduce methods.
|
|
Reproduce(TRSIndividual,TRSIndividual,TRSIndividual,TRSIndividual)
|
Overloaded. The Reproduce method takes the two Parents and "mates" them to create the new Children. The Child parameters must exist but all of their information will be overwritten by the Parents. Child1 is copied from the first parent and Child2 is copied from the second parent, and then Crossover, Mutate, and Invert are called according to the Operations property and the respective probability of the operation. Finally, an OnReproduction event occurs.
The Evolve method calls the Reproduce methods.
|
|
SaveToFile(string)
|
Saves the entire genetic component to the XML file specified by the Filename parameter, including the Genes (genetic algorithms) or Instructions (genetic programming) and the Population. Use the LoadFromFile and SaveToFile methods to stream in and out the genetic component in XML format. The format of the XML is defined in the GeneticAlgorithm.xsd and GeneticProgramming.xsd schema files. (Inherited from RSGeneticBase.TRSCustomGeneticComponent.)
|
|
SaveToStream(TStream)
|
Saves the entire genetic component to the XML stream specified by the stream parameter, including the Genes (genetic algorithms) or Instructions (genetic programming) and the Population. Use the LoadFromFile and SaveToFile methods to stream in and out the genetic component in XML format. The format of the XML is defined in the GeneticAlgorithm.xsd and GeneticProgramming.xsd schema files. (Overrides RSGeneticBase.TRSCustomGeneticComponent.SaveToStream(TStream).)
|
|
SaveToXML(IXMLGeneticDocumentType)
|
Overloaded. Saves the entire genetic component to the XML specified by the parameter, including the Genes (genetic algorithms) or Instructions (genetic programming) and the Population. Use the LoadFromFile and SaveToFile methods to stream in and out the genetic component in XML format. The format of the XML is defined in the GeneticAlgorithm.xsd and GeneticProgramming.xsd schema files. (Inherited from RSGeneticBase.TRSCustomGeneticComponent.)
|
|
SaveToXML(IXMLGeneticProgram)
|
Overloaded. Saves the genetic programming scenario to XML
Warning
|
The component writes the metadata about instructions (i.e., name, arity, comment) but does not actually write the OnExecute code.
|
|
|
SaveToXML(IXMLGPDomainType)
|
Overloaded. Saves the genetic programming domain ( instructions, fittest individual, population) to XML
Warning
|
The component writes the metadata about instructions (i.e., name, arity, comment) but does not actually write the OnExecute code.
|
|
|
SaveToXML(IXMLGPInstructions)
|
Overloaded. Saves the genetic programming instructions to XML
Warning
|
The component writes the metadata about instructions (i.e., name, arity, comment) but does not actually write the OnExecute code.
|
|
|
SearchSpaceSize(Cardinal)
|
Returns the size of size of the total set of trees from one level of nodes up to a maximum size identified by the variable level. This space contains every combination of the functions and terminals, and the arity of each function arity for every tree of depth 1 up to the stated maximum depth. This number is useful for getting an idea of the size of the search space and may encourage you to reduce the number of functions, terminals, or arity of functions. (Inherited from RSGenerics.GeneticProgramming.TRSCustomGeneticProgramming<T>.)
|
|
SelectElitist(TObject,TRSPopulation,TRSIndividual)
|
Selected a Parent individual from the Population using the Elitist method.
The top nth percentile parents are chosen (and re-chosen) using this method. Elitist is a heavy-weight selection algorithm (in our implementation at least) because we must figure out the top nth percentile population first
|
|
SelectParent(TRSPopulation)
|
Selects a parent for the new generation using the SelectionMethod or the OnSelection event. (Inherited from RSGeneticBase.TRSCustomGeneticComponent.)
|
|
SelectRandom(TObject,TRSPopulation,TRSIndividual)
|
Selected a Parent individual from the Population at random.
(Inherited from RSGeneticBase.TRSCustomGeneticComponent.)
|
|
SelectRoulette(TObject,TRSPopulation,TRSIndividual)
|
Selected a Parent individual from the Population using the Roulette Wheel (fitness proportional) method.
The better "fit" parents are more likely to be chosen (and re-chosen), e.g., the probability of selection is proportional to the fitness of the parent. Also known as fitness proportionate selection.
|
|
SelectStochasticTournament(TObject,TRSPopulation,TRSIndividual)
|
Selected a Parent individual from the Population using the Elitist method.
Select "best" (in this case using roulette wheel) parents from a tournament field (size of tournament field is determined by the TournamentField property), e.g., select the best parent by selecting better fit individuals proportionally TournamentField times and then choosing the "winner" of the tournament. Note: for speed purposes, this selection method does not ensure that the same individual cannot be picked twice
|
|
SelectTournament(TObject,TRSPopulation,TRSIndividual)
|
Selected a Parent individual from the Population using the Tournament method.
Select "best" parents from a tournament field (size of tournament field is determined by the TournamentField property), e.g., select the best parent from randomly selecting individuals TournamentField times and then choosing the "winner" of the tournament. Note: for speed purposes, this selection method does not ensure that the same individual cannot be picked twice
|
|
SumOfWeights(TGPMutationMethodWeights)
|
Calculates the sum of all the MutationWeights (Inherited from RSGenerics.GeneticProgramming.TRSCustomGeneticProgramming<T>.)
|
|
SwapGenerations
|
Swaps the Population and PreviousGeneration collections in preparation for evolving a new generation. (Inherited from RSGeneticBase.TRSCustomGeneticComponent.)
|
|
ToString
|
Provides a strings description of the genetic programming component and its important properties. The function uses the Describe method to build the string. (Inherited from RSGeneticBase.TRSCustomGeneticComponent.)
|
|
UnfitFitness
|
Returns a value that represents extreme unfitness. Useful for breeding out an individual by settings its fitness to this value (Inherited from RSGeneticBase.TRSCustomGeneticComponent.)
|