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:
- java.io.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
-
-
Constructor Summary
Constructors Constructor and Description OriginalNEATSpeciation()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description doublegetCompatibilityScore(Genome gen1, Genome gen2)Determine how compatible two genomes are.doublegetConstDisjoint()doublegetConstExcess()doublegetConstMatched()voidsetConstDisjoint(double constDisjoint)voidsetConstExcess(double constExcess)voidsetConstMatched(double constMatched)-
Methods inherited from class org.encog.ml.ea.species.ThresholdSpeciation
addSpeciesMember, findBestSpecies, getCompatibilityThreshold, getMaxNumberOfSpecies, getNumGensAllowedNoImprovement, getOwner, getSortGenomes, init, performSpeciation, removeSpecies, setCompatibilityThreshold, setMaxNumberOfSpecies, setNumGensAllowedNoImprovement, setSortGenomes
-
-
-
-
Method Detail
-
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:
getCompatibilityScorein classThresholdSpeciation- 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
-
-
DMelt 3.0 © DataMelt by jWork.ORG