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

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `OriginalNEATSpeciation()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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.