org.encog.neural.neat.training.species
Class OriginalNEATSpeciation
java.lang.Object
org.encog.ml.ea.species.ThresholdSpeciation
org.encog.neural.neat.training.species.OriginalNEATSpeciation
- All Implemented Interfaces:
- Serializable, Speciation
public class OriginalNEATSpeciation
- extends ThresholdSpeciation
The original NEAT Speciation Strategy. This is currently the only speciation
strategy implemented by Encog. There are other speciation strategies that
have been proposed (and implemented) for NEAT. One example is k-means.
NEAT starts up by creating an initial population of genomes with randomly
generated connections between input and output nodes. Not every input neuron
is necessarily connected, this allows NEAT to determine which input neurons
to use. Once the population has been generated it is speciated by iterating
over this population of genomes. The first genome is placed in its own
species.
The second genome is then compared to the first genome. If the compatibility
is below the threshold then the genome is placed into the same species as the
first. If not, the second genome founds a new species of its own. The
remaining genomes follow this same process.
-----------------------------------------------------------------------------
http://www.cs.ucf.edu/~kstanley/ Encog's NEAT implementation was drawn from
the following three Journal Articles. For more complete BibTeX sources, see
NEATNetwork.java.
Evolving Neural Networks Through Augmenting Topologies
Generating Large-Scale Neural Networks Through Discovering Geometric
Regularities
Automatic feature selection in neuroevolution
- See Also:
- Serialized Form
Methods inherited from class org.encog.ml.ea.species.ThresholdSpeciation |
addSpeciesMember, findBestSpecies, getCompatibilityThreshold, getMaxNumberOfSpecies, getNumGensAllowedNoImprovement, getOwner, getSortGenomes, init, performSpeciation, removeSpecies, setCompatibilityThreshold, setMaxNumberOfSpecies, setNumGensAllowedNoImprovement, setSortGenomes |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
OriginalNEATSpeciation
public OriginalNEATSpeciation()
getCompatibilityScore
public double getCompatibilityScore(Genome gen1,
Genome gen2)
- Determine how compatible two genomes are. More compatible genomes will be
placed into the same species. The lower the number, the more compatible.
- Specified by:
getCompatibilityScore
in class ThresholdSpeciation
- Parameters:
gen1
- The first genome.gen2
- The second genome.
- Returns:
- The compatability level.
getConstDisjoint
public double getConstDisjoint()
- Returns:
- the constDisjoint
getConstExcess
public double getConstExcess()
- Returns:
- the constExcess
getConstMatched
public double getConstMatched()
- Returns:
- the constMatched
setConstDisjoint
public void setConstDisjoint(double constDisjoint)
- Parameters:
constDisjoint
- the constDisjoint to set
setConstExcess
public void setConstExcess(double constExcess)
- Parameters:
constExcess
- the constExcess to set
setConstMatched
public void setConstMatched(double constMatched)
- Parameters:
constMatched
- the constMatched to set
Copyright © 2014. All Rights Reserved.