public class NEATPopulation extends BasicPopulation implements java.io.Serializable, MLError, MLRegression
| Modifier and Type | Field and Description |
|---|---|
static int |
DEFAULT_CYCLES
Default number of activation cycles.
|
static double |
DEFAULT_HYPERNEAT_WEIGHT_RANGE
Default link weight range for HyperNEAT networks.
|
static double |
DEFAULT_NEAT_WEIGHT_RANGE
Default link weight range for NEAT networks.
|
static double |
DEFAULT_SURVIVAL_RATE
The default survival rate.
|
static java.lang.String |
PROPERTY_CYCLES
Property to hold the number of cycles.
|
static java.lang.String |
PROPERTY_NEAT_ACTIVATION
The activation function to use.
|
static java.lang.String |
PROPERTY_POPULATION_SIZE
Property tag for the population size.
|
static java.lang.String |
PROPERTY_SURVIVAL_RATE
Property tag for the survival rate.
|
| Constructor and Description |
|---|
NEATPopulation()
An empty constructor for serialization.
|
NEATPopulation(int inputCount,
int outputCount,
int populationSize)
Construct a starting NEAT population.
|
NEATPopulation(Substrate theSubstrate,
int populationSize)
Construct a starting HyperNEAT population.
|
| Modifier and Type | Method and Description |
|---|---|
long |
assignGeneID() |
long |
assignInnovationID() |
double |
calculateError(MLDataSet data)
Calculate the error of the ML method, given a dataset.
|
static double |
clampWeight(double w,
double weightRange)
Change the weight, do not allow the weight to go out of the weight range.
|
MLData |
compute(MLData input)
Compute regression.
|
int |
getActivationCycles() |
ChooseObject<ActivationFunction> |
getActivationFunctions() |
GeneticCODEC |
getCODEC() |
GenerateID |
getGeneIDGenerate() |
NEATGenomeFactory |
getGenomeFactory() |
double |
getInitialConnectionDensity() |
GenerateID |
getInnovationIDGenerate() |
NEATInnovationList |
getInnovations() |
int |
getInputCount() |
int |
getOutputCount() |
RandomFactory |
getRandomNumberFactory() |
Substrate |
getSubstrate() |
double |
getSurvivalRate() |
double |
getWeightRange() |
boolean |
isHyperNEAT() |
void |
reset()
Create an initial random population.
|
void |
setActivationCycles(int activationCycles)
Set the number of activation cycles to use.
|
void |
setCODEC(GeneticCODEC codec) |
void |
setInitialConnectionDensity(double initialConnectionDensity) |
void |
setInnovations(NEATInnovationList theInnovations)
Set the innovation list to use.
|
void |
setInputCount(int inputCount) |
void |
setNEATActivationFunction(ActivationFunction af)
Specify to use a single activation function.
|
void |
setOutputCount(int outputCount) |
void |
setRandomNumberFactory(RandomFactory randomNumberFactory) |
void |
setSubstrate(Substrate substrate) |
void |
setSurvivalRate(double theSurvivalRate)
Set the survival rate, this is the percent of the population allowed to mate.
|
void |
setWeightRange(double weightRange)
Sets the weight range for links in genomes in this population.
|
clear, createSpecies, determineBestSpecies, flatten, getBestGenome, getMaxIndividualSize, getName, getPopulationSize, getRules, getSpecies, purgeInvalidGenomes, setBestGenome, setGenomeFactory, setName, setPopulationSize, setRules, size, updatePropertiesgetProperties, getPropertyDouble, getPropertyLong, getPropertyString, setProperty, setProperty, setPropertypublic static final double DEFAULT_SURVIVAL_RATE
public static final java.lang.String PROPERTY_NEAT_ACTIVATION
public static final java.lang.String PROPERTY_POPULATION_SIZE
public static final java.lang.String PROPERTY_SURVIVAL_RATE
public static final int DEFAULT_CYCLES
public static final java.lang.String PROPERTY_CYCLES
public static final double DEFAULT_NEAT_WEIGHT_RANGE
public static final double DEFAULT_HYPERNEAT_WEIGHT_RANGE
public NEATPopulation()
public NEATPopulation(int inputCount,
int outputCount,
int populationSize)
inputCount - The input neuron count.outputCount - The output neuron count.populationSize - The population size.public NEATPopulation(Substrate theSubstrate, int populationSize)
theSubstrate - The substrate ID.populationSize - The population size.public static double clampWeight(double w,
double weightRange)
w - The amount to change the weight by.weightRange - Specify the weight range. The range is from -weightRange to
+weightRange.public long assignGeneID()
public long assignInnovationID()
public double calculateError(MLDataSet data)
calculateError in interface MLErrordata - The dataset.public MLData compute(MLData input)
compute in interface MLRegressioninput - The input data.public int getActivationCycles()
public ChooseObject<ActivationFunction> getActivationFunctions()
public GeneticCODEC getCODEC()
public GenerateID getGeneIDGenerate()
public NEATGenomeFactory getGenomeFactory()
getGenomeFactory in interface PopulationgetGenomeFactory in class BasicPopulationpublic double getInitialConnectionDensity()
public GenerateID getInnovationIDGenerate()
public NEATInnovationList getInnovations()
public int getInputCount()
getInputCount in interface MLInputpublic int getOutputCount()
getOutputCount in interface MLOutputpublic RandomFactory getRandomNumberFactory()
public Substrate getSubstrate()
public double getSurvivalRate()
public double getWeightRange()
public boolean isHyperNEAT()
public void reset()
public void setActivationCycles(int activationCycles)
activationCycles - The number of activatino cycles to use.public void setCODEC(GeneticCODEC codec)
codec - the codec to setpublic void setInitialConnectionDensity(double initialConnectionDensity)
initialConnectionDensity - the initialConnectionDensity to setpublic void setInnovations(NEATInnovationList theInnovations)
theInnovations - The innovation list to use.public void setInputCount(int inputCount)
inputCount - the inputCount to setpublic void setNEATActivationFunction(ActivationFunction af)
af - The activation function to use.public void setOutputCount(int outputCount)
outputCount - the outputCount to setpublic void setRandomNumberFactory(RandomFactory randomNumberFactory)
randomNumberFactory - the randomNumberFactory to setpublic void setSubstrate(Substrate substrate)
substrate - the substrate to setpublic void setSurvivalRate(double theSurvivalRate)
theSurvivalRate - The survival rate.public void setWeightRange(double weightRange)
weightRange - The link weight range.