org.encog.neural.neat.training.species
Class OriginalNEATSpeciation

java.lang.Object
  extended by org.encog.ml.ea.species.ThresholdSpeciation
      extended by 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

Constructor Summary
OriginalNEATSpeciation()
           
 
Method Summary
 double getCompatibilityScore(Genome gen1, Genome gen2)
          Determine how compatible two genomes are.
 double getConstDisjoint()
           
 double getConstExcess()
           
 double getConstMatched()
           
 void setConstDisjoint(double constDisjoint)
           
 void setConstExcess(double constExcess)
           
 void setConstMatched(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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

OriginalNEATSpeciation

public OriginalNEATSpeciation()
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:
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.