ec.gp
Class GPFunctionSet
- java.lang.Object
-
- ec.gp.GPFunctionSet
-
- Direct Known Subclasses:
- PTCFunctionSet
public class GPFunctionSet extends java.lang.Object implements Clique
GPFunctionSet is a Clique which represents a set of GPNode prototypes forming a standard function set for forming certain trees in individuals. GPFunctionSets instances have unique names with which they're referenced by GPTreeConstraints objects indicating that they're used for certain trees. GPFunctionSets store their GPNode Prototypes in three hashtables, one for all nodes, one for nonterminals, and one for terminals. Each hashed item is an array of GPNode objects, hashed by the return type of the GPNodes in the array. GPFunctionSets also contain prototypical GPNode nodes which they clone to form their arrays.Parameters
base.name
String(name of function set. Must be different from other function set instances) base.size
int >= 1(number of functions in the function set) base.func.n
classname, inherits and != ec.gp.GPNode(class of function node n in the set) Parameter bases
base.func.n function node n - See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field and Description java.lang.StringnameName of the GPFunctionSetGPNode[][]nodesThe nodes that our GPTree can use: nodes[type][thenodes].java.util.Hashtablenodes_hThe nodes that our GPTree can use: arrays of nodes hashed by type.GPNode[][][]nodesByArityNodes == a given arity, that is: nodesByArity[type][arity][thenodes]java.util.HashtablenodesByNameThe nodes that our GPTree can use, hashed by name().GPNode[][]nonterminalsThe nonterminals our GPTree can use: nonterminals[type][thenodes].java.util.Hashtablenonterminals_hThe nonterminals our GPTree can use: arrays of nonterminals hashed by type.GPNode[][][]nonterminalsOverArityNonterminals >= a given arity, that is: nonterminalsOverArity[type][arity][thenodes] -- this will be O(n^2).GPNode[][][]nonterminalsUnderArityNonterminals <= a given arity, that is: nonterminalsUnderArity[type][arity][thenodes] -- this will be O(n^2).static java.lang.StringP_FUNCstatic java.lang.StringP_NAMEstatic java.lang.StringP_SIZEGPNode[][]terminalsThe terminals our GPTree can use: terminals[type][thenodes].java.util.Hashtableterminals_hThe terminals our GPTree can use: arrays of terminals hashed by type.
-
Constructor Summary
Constructors Constructor and Description GPFunctionSet()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method and Description static GPFunctionSetfunctionSetFor(java.lang.String functionSetName, EvolutionState state)Returns the function set for a given name.voidpostProcessFunctionSet()Sets up the arrays based on the hashtablesvoidsetup(EvolutionState state, Parameter base)Must be done after GPType and GPNodeConstraints have been set upjava.lang.StringtoString()Returns the name.
-
-
-
Field Detail
-
P_NAME
public static final java.lang.String P_NAME
- See Also:
- Constant Field Values
-
P_FUNC
public static final java.lang.String P_FUNC
- See Also:
- Constant Field Values
-
P_SIZE
public static final java.lang.String P_SIZE
- See Also:
- Constant Field Values
-
name
public java.lang.String name
Name of the GPFunctionSet
-
nodes_h
public java.util.Hashtable nodes_h
The nodes that our GPTree can use: arrays of nodes hashed by type.
-
nodes
public GPNode[][] nodes
The nodes that our GPTree can use: nodes[type][thenodes].
-
nonterminals_h
public java.util.Hashtable nonterminals_h
The nonterminals our GPTree can use: arrays of nonterminals hashed by type.
-
nonterminals
public GPNode[][] nonterminals
The nonterminals our GPTree can use: nonterminals[type][thenodes].
-
terminals_h
public java.util.Hashtable terminals_h
The terminals our GPTree can use: arrays of terminals hashed by type.
-
terminals
public GPNode[][] terminals
The terminals our GPTree can use: terminals[type][thenodes].
-
nodesByName
public java.util.Hashtable nodesByName
The nodes that our GPTree can use, hashed by name().
-
nodesByArity
public GPNode[][][] nodesByArity
Nodes == a given arity, that is: nodesByArity[type][arity][thenodes]
-
nonterminalsUnderArity
public GPNode[][][] nonterminalsUnderArity
Nonterminals <= a given arity, that is: nonterminalsUnderArity[type][arity][thenodes] -- this will be O(n^2). Obviously, the number of nonterminals at arity slot 0 is 0.
-
nonterminalsOverArity
public GPNode[][][] nonterminalsOverArity
Nonterminals >= a given arity, that is: nonterminalsOverArity[type][arity][thenodes] -- this will be O(n^2). Obviously, the number of nonterminals at arity slot 0 is all the nonterminals of that type.
-
-
Method Detail
-
toString
public java.lang.String toString()
Returns the name.- Overrides:
toStringin classjava.lang.Object
-
postProcessFunctionSet
public void postProcessFunctionSet()
Sets up the arrays based on the hashtables
-
setup
public void setup(EvolutionState state, Parameter base)
Must be done after GPType and GPNodeConstraints have been set up
-
functionSetFor
public static GPFunctionSet functionSetFor(java.lang.String functionSetName, EvolutionState state)
Returns the function set for a given name. You must guarantee that after calling functionSetFor(...) one or several times, you call state.output.exitIfErrors() once.
-
-
DMelt 3.0 © DataMelt by jWork.ORG