org.encog.neural.networks.training.genetic
Class NeuralGeneticAlgorithm

java.lang.Object
  extended by org.encog.neural.networks.training.BasicTraining
      extended by org.encog.neural.networks.training.genetic.NeuralGeneticAlgorithm
All Implemented Interfaces:
Train

public class NeuralGeneticAlgorithm
extends BasicTraining

Implements a genetic algorithm that allows a feedforward or simple recurrent neural network to be trained using a genetic algorithm. There are essentially two ways you can make use of this class. Either way, you will need a score object. The score object tells the genetic algorithm how well suited a neural network is. If you would like to use genetic algorithms with a training set you should make use TrainingSetScore class. This score object uses a training set to score your neural network. If you would like to be more abstract, and not use a training set, you can create your own implementation of the CalculateScore method. This class can then score the networks any way that you like.


Nested Class Summary
 class NeuralGeneticAlgorithm.NeuralGeneticAlgorithmHelper
          Very simple class that implements a genetic algorithm.
 
Constructor Summary
NeuralGeneticAlgorithm(BasicNetwork network, Randomizer randomizer, CalculateScore calculateScore, int populationSize, double mutationPercent, double percentToMate)
          Construct a neural genetic algorithm.
 
Method Summary
 NeuralGeneticAlgorithm.NeuralGeneticAlgorithmHelper getGenetic()
           
 BasicNetwork getNetwork()
          Get the current best network from the training.
 void iteration()
          Perform one training iteration.
 void setGenetic(NeuralGeneticAlgorithm.NeuralGeneticAlgorithmHelper genetic)
          Set the genetic helper class.
 
Methods inherited from class org.encog.neural.networks.training.BasicTraining
addStrategy, finishTraining, getCloud, getError, getIteration, getStrategies, getTraining, isTrainingDone, iteration, postIteration, preIteration, setCloud, setError, setIteration, setTraining
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NeuralGeneticAlgorithm

public NeuralGeneticAlgorithm(BasicNetwork network,
                              Randomizer randomizer,
                              CalculateScore calculateScore,
                              int populationSize,
                              double mutationPercent,
                              double percentToMate)
Construct a neural genetic algorithm.

Parameters:
network - The network to base this on.
randomizer - The randomizer used to create this initial population.
calculateScore - The score calculation object.
populationSize - The population size.
mutationPercent - The percent of offspring to mutate.
percentToMate - The percent of the population allowed to mate.
Method Detail

getGenetic

public NeuralGeneticAlgorithm.NeuralGeneticAlgorithmHelper getGenetic()
Returns:
The genetic algorithm implementation.

getNetwork

public BasicNetwork getNetwork()
Description copied from interface: Train
Get the current best network from the training.

Returns:
The network that is being trained.

iteration

public void iteration()
Perform one training iteration.


setGenetic

public void setGenetic(NeuralGeneticAlgorithm.NeuralGeneticAlgorithmHelper genetic)
Set the genetic helper class.

Parameters:
genetic - The genetic helper class.


Copyright © 2011. All Rights Reserved.