org.jgap.gp
Interface INodeValidator
-
- All Superinterfaces:
- java.io.Serializable
public interface INodeValidator extends java.io.SerializableA node validator checks whether a certain node is valid for a given evolution. See ProgramChromosome.growOrFullNode(..).Purpose of this validator: If you have an idea of how the shape of your evolved program must look like regarding some spots (like the first node in the first chromosome to be evolved) then you can constrain your imaginations with this validator. But take care that constraining too much ( e.g., while not considering your available functions) may lead to an endless loop. The endless loop can be avoided by stopping after a number of tries (see method validate, parameter a_tries).
- Since:
- 3.0
-
-
Field Summary
Fields Modifier and Type Field and Description static java.lang.StringCVS_REVISIONString containing the CVS revision.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method and Description booleanvalidate(ProgramChromosome a_chrom, CommandGene a_node, CommandGene a_rootNode, int a_tries, int a_num, int a_recurseLevel, java.lang.Class a_type, CommandGene[] a_functionSet, int a_depth, boolean a_grow, int a_childIndex, boolean a_fullProgram)Validates a_node in the context of a_chrom.
-
-
-
Field Detail
-
CVS_REVISION
static final java.lang.String CVS_REVISION
String containing the CVS revision. Read out via reflection!- See Also:
- Constant Field Values
-
-
Method Detail
-
validate
boolean validate(ProgramChromosome a_chrom, CommandGene a_node, CommandGene a_rootNode, int a_tries, int a_num, int a_recurseLevel, java.lang.Class a_type, CommandGene[] a_functionSet, int a_depth, boolean a_grow, int a_childIndex, boolean a_fullProgram)
Validates a_node in the context of a_chrom. Considers the recursion level (a_recursLevel), the type needed (a_type) for the node, the functions available (a_functionSet) and the depth of the whole chromosome needed (a_depth), and whether grow mode is used (a_grow is true) or not.- Parameters:
a_chrom- the chromosome that will contain the node, if valida_node- the selected node to be validateda_rootNode- the root node of a_node, may be null for top nodesa_tries- number of times the validator has been called, useful for stopping by returning true if the number exceeds a limita_num- the chromosome's index in the individual of this chromosomea_recurseLevel- level of recursiona_type- the return type of the node neededa_functionSet- the array of available functionsa_depth- the needed depth of the program chromosomea_grow- true: use grow mode, false: use full modea_childIndex- index of the child in the parent node to which it belongs (-1 if node is root node)a_fullProgram- true: whole program is available in a_chrom- Returns:
- true: node is valid; false: node is invalid
- Since:
- 3.0
-
-
DMelt 3.0 © DataMelt by jWork.ORG