org.jgap.gp.function
Class SubProgram
- java.lang.Object
-
- org.jgap.gp.CommandGene
-
- org.jgap.gp.function.SubProgram
-
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, java.lang.Comparable, IMutateable, ICloneable
public class SubProgram extends CommandGene implements ICloneable, IMutateable
A connector for independent subprograms (subtrees). Each subtree except the last one must have a memory- or stack-modifying command (such as push or store), otherwise there is no connection between the subtrees (which would be useless bloating).- Since:
- 3.0
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.jgap.gp.CommandGene
CommandGene.COMMAND_TYPE
-
-
Field Summary
-
Fields inherited from class org.jgap.gp.CommandGene
BooleanClass, CharacterClass, DELTA, DoubleClass, FloatClass, IntegerClass, LongClass, nodeIndex, VoidClass
-
-
Constructor Summary
Constructors Constructor and Description SubProgram(GPConfiguration a_conf, java.lang.Class[] a_types)SubProgram(GPConfiguration a_conf, java.lang.Class[] a_types, boolean a_mutateable)SubProgram(GPConfiguration a_conf, java.lang.Class[] a_types, int a_subReturnType, int[] a_subChildTypes)SubProgram(GPConfiguration a_conf, java.lang.Class[] a_types, int a_subReturnType, int[] a_subChildTypes, boolean a_mutateable)SubProgram(GPConfiguration a_conf, int a_arity, java.lang.Class a_types)Collage constructor: Create a sub program that has a_arity elements of the same type a_types.SubProgram(GPConfiguration a_conf, int a_arity, java.lang.Class a_types, boolean a_mutateable)Collage constructor: Create a sub program that has a_arity elements of the same type a_types.SubProgram(GPConfiguration a_conf, int a_arity, java.lang.Class a_types, int a_minArity, int a_maxArity, boolean a_mutateable)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description CommandGeneapplyMutation()CommandGeneapplyMutation(int index, double a_percentage)Mutates a CommandGene.java.lang.Objectclone()intcompareTo(java.lang.Object a_other)The compareTo-method.booleanequals(java.lang.Object a_other)The equals-method.doubleexecute_double(ProgramChromosome c, int n, java.lang.Object[] args)Executes this node as a double.floatexecute_float(ProgramChromosome c, int n, java.lang.Object[] args)Executes this node as a float.intexecute_int(ProgramChromosome c, int n, java.lang.Object[] args)Executes this node as an integer.longexecute_long(ProgramChromosome c, int n, java.lang.Object[] args)Executes this node as a long.java.lang.Objectexecute_object(ProgramChromosome c, int n, java.lang.Object[] args)Executes this node as an object.voidexecute_void(ProgramChromosome c, int n, java.lang.Object[] args)Executes this node, returning nothing.java.lang.ClassgetChildType(IGPProgram a_ind, int a_chromNum)Gets the type of node allowed from the given child number.java.lang.StringgetName()booleanisValid(ProgramChromosome a_program)Subclasses capable of validating programs should overwrite this method.java.lang.StringtoString()-
Methods inherited from class org.jgap.gp.CommandGene
cleanup, dynamizeArity, ensureUniqueness, ensureUniqueness, ensureUniqueness2, execute_boolean, execute, getAllele, getApplicationData, getArity, getEnergy, getGPConfiguration, getPersistentRepresentation, getReturnType, getSubChildType, getSubChildTypes, getSubReturnType, hashCode, isAffectGlobalState, isCompareApplicationData, isFloatType, isIntegerType, isValid, setAllele, setApplicationData, setCompareApplicationData, setEnergy, setNoValidation, setReturnType, setToRandomValue, setValueFromPersistentRepresentation, size
-
-
-
-
Constructor Detail
-
SubProgram
public SubProgram(GPConfiguration a_conf, java.lang.Class[] a_types) throws InvalidConfigurationException
- Throws:
InvalidConfigurationException
-
SubProgram
public SubProgram(GPConfiguration a_conf, int a_arity, java.lang.Class a_types) throws InvalidConfigurationException
Collage constructor: Create a sub program that has a_arity elements of the same type a_types.- Parameters:
a_conf- the configuration to usea_arity- number of children in the collagea_types- uniform type of all children- Throws:
InvalidConfigurationException- Since:
- 3.4
-
SubProgram
public SubProgram(GPConfiguration a_conf, int a_arity, java.lang.Class a_types, boolean a_mutateable) throws InvalidConfigurationException
Collage constructor: Create a sub program that has a_arity elements of the same type a_types.- Parameters:
a_conf- the configuration to usea_arity- number of children in the collagea_types- uniform type of all childrena_mutateable- true: allow mutation of the sub program, i.e., the number of children (=arity) may be varied automatically during evolution- Throws:
InvalidConfigurationException- Since:
- 3.4
-
SubProgram
public SubProgram(GPConfiguration a_conf, int a_arity, java.lang.Class a_types, int a_minArity, int a_maxArity, boolean a_mutateable) throws InvalidConfigurationException
- Throws:
InvalidConfigurationException
-
SubProgram
public SubProgram(GPConfiguration a_conf, java.lang.Class[] a_types, boolean a_mutateable) throws InvalidConfigurationException
- Throws:
InvalidConfigurationException
-
SubProgram
public SubProgram(GPConfiguration a_conf, java.lang.Class[] a_types, int a_subReturnType, int[] a_subChildTypes) throws InvalidConfigurationException
- Throws:
InvalidConfigurationException
-
SubProgram
public SubProgram(GPConfiguration a_conf, java.lang.Class[] a_types, int a_subReturnType, int[] a_subChildTypes, boolean a_mutateable) throws InvalidConfigurationException
- Throws:
InvalidConfigurationException
-
-
Method Detail
-
toString
public java.lang.String toString()
- Specified by:
toStringin classCommandGene- Returns:
- the string representation of the command. Especially usefull to output a resulting formula in human-readable form.
-
getName
public java.lang.String getName()
- Overrides:
getNamein classCommandGene- Returns:
- textual name of this command
- Since:
- 3.2
-
execute_int
public int execute_int(ProgramChromosome c, int n, java.lang.Object[] args)
Description copied from class:CommandGeneExecutes this node as an integer. Override to implement.- Overrides:
execute_intin classCommandGene- Parameters:
c- ignored heren- ignored hereargs- ignored here- Returns:
- nothing but exception
-
execute_void
public void execute_void(ProgramChromosome c, int n, java.lang.Object[] args)
Description copied from class:CommandGeneExecutes this node, returning nothing. Override to implement.- Overrides:
execute_voidin classCommandGene- Parameters:
c- ignored heren- ignored hereargs- ignored here
-
execute_long
public long execute_long(ProgramChromosome c, int n, java.lang.Object[] args)
Description copied from class:CommandGeneExecutes this node as a long. Override to implement.- Overrides:
execute_longin classCommandGene- Parameters:
c- ignored heren- ignored hereargs- ignored here- Returns:
- nothing but exception
-
execute_float
public float execute_float(ProgramChromosome c, int n, java.lang.Object[] args)
Description copied from class:CommandGeneExecutes this node as a float. Override to implement.- Overrides:
execute_floatin classCommandGene- Parameters:
c- ignored heren- ignored hereargs- ignored here- Returns:
- nothing but exception
-
execute_double
public double execute_double(ProgramChromosome c, int n, java.lang.Object[] args)
Description copied from class:CommandGeneExecutes this node as a double. Override to implement.- Overrides:
execute_doublein classCommandGene- Parameters:
c- ignored heren- ignored hereargs- ignored here- Returns:
- nothing but exception
-
execute_object
public java.lang.Object execute_object(ProgramChromosome c, int n, java.lang.Object[] args)
Description copied from class:CommandGeneExecutes this node as an object. Override to implement.- Overrides:
execute_objectin classCommandGene- Parameters:
c- ignored heren- ignored hereargs- ignored here- Returns:
- nothing but exception
-
isValid
public boolean isValid(ProgramChromosome a_program)
Description copied from class:CommandGeneSubclasses capable of validating programs should overwrite this method. See class Push as a sample.- Overrides:
isValidin classCommandGene- Parameters:
a_program- the ProgramChromosome to validate- Returns:
- true: a_program is (superficially) valid with the current Command
-
getChildType
public java.lang.Class getChildType(IGPProgram a_ind, int a_chromNum)
Description copied from class:CommandGeneGets the type of node allowed from the given child number. Should be overridden in subclasses.- Overrides:
getChildTypein classCommandGene- Parameters:
a_ind- the individual the child belongs toa_chromNum- the chromosome number- Returns:
- the type of node allowed for that child, or null of no child exists
-
compareTo
public int compareTo(java.lang.Object a_other)
The compareTo-method.- Specified by:
compareToin interfacejava.lang.Comparable- Overrides:
compareToin classCommandGene- Parameters:
a_other- the other object to compare- Returns:
- -1, 0, 1
- Since:
- 3.0
-
equals
public boolean equals(java.lang.Object a_other)
The equals-method.- Overrides:
equalsin classCommandGene- Parameters:
a_other- the other object to compare- Returns:
- true if the objects are seen as equal
- Since:
- 3.0
-
clone
public java.lang.Object clone()
- Specified by:
clonein interfaceICloneable- Overrides:
clonein classjava.lang.Object- Returns:
- deep clone of this instance
- Since:
- 3.2
-
applyMutation
public CommandGene applyMutation(int index, double a_percentage) throws InvalidConfigurationException
Description copied from interface:IMutateableMutates a CommandGene.- Specified by:
applyMutationin interfaceIMutateable- Parameters:
index- references the part of a multipart object, normally not relevanta_percentage- the mutation rate (0.0 to 1.0)- Returns:
- the mutant
- Throws:
InvalidConfigurationException
-
applyMutation
public CommandGene applyMutation() throws InvalidConfigurationException
- Returns:
- mutated command gene
- Throws:
InvalidConfigurationException
-
-
DMelt 3.0 © DataMelt by jWork.ORG