Hide Comments
Hide Comments

Comments (0)

Defines the initialization method to use for initializing an individuals genetic program tree, i.e., how are the initial GP trees formed.

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.

The Grow method creates a wider variety of shapes and sizes. 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.

The literature suggests that the shape of trees can impact which types of problems a genetic programming component will solve. Koza, in his original book "Genetic Programming," actually suggests using a method called ramped half and half, which involves using both the Full and Grow method and varying the desired depth of the trees. The depth limit is ramped from 2 to the full initialization depth limit, i.e., first individual has a depth limit of 2, second individual has a depth limit of 3, etc up to the full initialization depth limit. The depth limits are evenly divided amongst the population, e.g., if there are 100 individuals and a full initialization depth limit of 10, approximately 11 individuals will have a depth limit of 2, 11 will have a depth limit of 3, etc.

Namespace: RSGenerics.GeneticProgramming

expandingSyntax

Delphi

public
  property InitializationMethod: TGPInitializationMethod read FInitializationMethod write SetInitializationMethod default imFull;
 

Property Value

Type: TGPInitializationMethod

expandingSee Also

Comments (0)