public abstract class Gene extends java.lang.Object implements Prototype
In addition to serialization for checkpointing, Genes may read and write themselves to streams in three ways.
Default Base
vector.gene
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
P_GENE |
Constructor and Description |
---|
Gene() |
Modifier and Type | Method and Description |
---|---|
java.lang.Object |
clone()
Creates a new individual cloned from a prototype,
and suitable to begin use in its own evolutionary
context.
|
Parameter |
defaultBase()
Returns the default base for this prototype.
|
abstract boolean |
equals(java.lang.Object other)
Unlike the standard form for Java, this function should return true if this
gene is "genetically identical" to the other gene.
|
abstract int |
hashCode()
Generates a hash code for this gene -- the rule for this is that the hash code
must be the same for two genes that are equal to each other genetically.
|
void |
mutate(EvolutionState state,
int thread)
Mutate the gene.
|
void |
printGene(EvolutionState state,
int verbosity,
int log)
Prints the gene in a way that can be read by readGene().
|
void |
printGene(EvolutionState state,
java.io.PrintWriter writer)
Prints the gene in a way that can be read by readGene().
|
void |
printGeneForHumans(EvolutionState state,
int verbosity,
int log)
Nice printing.
|
java.lang.String |
printGeneToString()
Prints the gene to a string in a fashion readable by readGeneFromString and parseable by readGene(state, reader).
|
java.lang.String |
printGeneToStringForHumans()
Prints the gene to a string in a human-readable fashion.
|
void |
readGene(EvolutionState state,
java.io.DataInput dataInput)
Override this if you need to read rules in from a binary stream
|
void |
readGene(EvolutionState state,
java.io.LineNumberReader reader)
Reads a gene printed by printGene(...).
|
void |
readGeneFromString(java.lang.String string,
EvolutionState state)
Reads a gene from a string, which may contain a final '\n'.
|
abstract void |
reset(EvolutionState state,
int thread)
The reset method randomly reinitializes the gene.
|
void |
setup(EvolutionState state,
Parameter base)
Sets up the object by reading it from the parameters stored
in state, built off of the parameter base base.
|
void |
writeGene(EvolutionState state,
java.io.DataOutput dataOutput)
Override this if you need to write rules out to a binary stream
|
public static final java.lang.String P_GENE
public void setup(EvolutionState state, Parameter base)
Prototype
For prototypes, setup(...) is typically called once for the prototype instance; cloned instances do not receive the setup(...) call. setup(...) may be called more than once; the only guarantee is that it will get called at least once on an instance or some "parent" object from which it was ultimately cloned.
public Parameter defaultBase()
Prototype
defaultBase
in interface Prototype
public java.lang.Object clone()
Prototype
Typically this should be a full "deep" clone. However, you may share certain elements with other objects rather than clone hem, depending on the situation:
Implementations.
public Object clone()
{
try
{
return super.clone();
}
catch ((CloneNotSupportedException e)
{ throw new InternalError(); } // never happens
}
public Object clone()
{
try
{
MyObject myobj = (MyObject) (super.clone());
// put your deep-cloning code here...
}
catch ((CloneNotSupportedException e)
{ throw new InternalError(); } // never happens
return myobj;
}
public Object clone()
{
MyObject myobj = (MyObject) (super.clone());
// put your deep-cloning code here...
return myobj;
}
public abstract int hashCode()
hashCode
in class java.lang.Object
public abstract boolean equals(java.lang.Object other)
equals
in class java.lang.Object
public abstract void reset(EvolutionState state, int thread)
public void mutate(EvolutionState state, int thread)
public void printGeneForHumans(EvolutionState state, int verbosity, int log)
public java.lang.String printGeneToStringForHumans()
public java.lang.String printGeneToString()
public void readGeneFromString(java.lang.String string, EvolutionState state)
public void printGene(EvolutionState state, int verbosity, int log)
public void printGene(EvolutionState state, java.io.PrintWriter writer)
public void readGene(EvolutionState state, java.io.LineNumberReader reader) throws java.io.IOException
java.io.IOException
public void writeGene(EvolutionState state, java.io.DataOutput dataOutput) throws java.io.IOException
java.io.IOException
public void readGene(EvolutionState state, java.io.DataInput dataInput) throws java.io.IOException
java.io.IOException