EO Generic Classes


EOAgeGA
Simple algorithm for evolutionary computation It is not exactly a Simple GA, as defined by Goldberg, it is just a simple implementation of a Genetic Algorithm
EOEasyGA
Simple algorithm for evolutionary computation It is not exactly a Simple GA, as defined by Goldberg, it is just a simple implementation of a Genetic Algorithm
EOES
Simple algorithm for evolutionary computation It is a wrapper for EasyGA, but lets the user only the decisions of some constants
struct EOESGene
Each gene in an Evolution Strategies is composed of a value plus an standard deviation, sigma, used for mutation
bool operator < ( EOESGene _e1, EOESGene _e2 )
Tricky operator to avoid errors in some VC++ systems
bool operator == ( EOESGene _e1, EOESGene _e2 )
Tricky operator to avoid errors in some VC++ systems
ostream& operator << ( ostream& _s, const EOESGene& _e )
EOESChrom
Basic chromosome for evolution strategies (ES), as defined by Rechenberg and Schwefel
template <class fitnessT = float > ostream& operator << ( ostream& _s, EOESChrom<fitnessT>& _eo )
Standard output
EOESMutate
ES-style mutation: each gene in the chromosome is added its own sigma
Obviously, valid only for EOESChrom
EvalAll
Particular instantiation of the EOEvaluator class It takes each member in the population, and evaluates it, applying the evaluation function itīs been initialized with
EOFitTerm
Fitness termination: terminates after a the difference between the fitness of the best individual and a maximum fitness to achieve is less than certain number called epsilon
EOGenTerm
Generational termination: terminates after a number of generations
Generic genetic operators
EOSGA
Simple algorithm for evolutionary computation It is a wrapper for EasyGA, but lets the user only the decisions of some constants
EOSimAnnFreezer
Abstrac implementation of a freezer
EOSimAnnAlg
Implementation of a Simulated annealing algorithm using EO
EOVector
Adaptor that turns an STL vector into an EO with the same gene type as the type with which the vector has been instantiated
template <class T, class fitnessT = float > ostream& operator << ( ostream& _s, EOVector<T, fitnessT>& _eo )
Standard output
EOVectorFactory
Factory method
EORandomSelect
EORandomSelect: an selection operator, which selects random chromosomes
EOLottery
EOLottery: an selection operator, which get the fitness from every chrommosome (fitness must have a standard typecast to float), and them creates a new population with fitness-proportionate selection
EORandomBreed
Takes those on the selection list and creates a list of new individuals Destroys the genetic pool
EORandomBreedLog
Exactly as RandomBreed, except that uses factories
Replacement algorithms
EOSteadyState
Selects those who are going to reproduce, eliminates those which are not fit
EORank
Takes those on the selection list and creates a list of new individuals Destroys the genetic pool
EOTournament
Selects those who are going to reproduce, eliminates those which are not fit using Tournament selection: a subset of the population of size tournamentSize is chosen, and the best is selected for the population
EO Generic Classes

Generic classes are one step above Abstract classes; they are concrete implementations of abstract classes, but they can be used for many instantiations of them. For instance, a crossover genetic operator (which should subclass EOop) can be used for any chromosome EO.

This genericity is achieved through templates; generic classes provide code, but code is type-independent, or at least for those types used to instantiate the class. The type with which the class is instantiated is indicated in its declaration: fitT or fitnessT is a fitness-Type, which should have the same interface as EOfitness, or directly subclass EOfitness, which is the same since EOfitness has no code per se; EOT is an EO; that template parameter should only be instantiated with an EO.

Generic classes can be user-created, but they should be user-contributed: if you program a class and feel it can be used for a wide range of audiences, please tell us.

The generic subdir includes also subsubdirs for instantiation of specific ADTs: EOselect contains specific instantiations of the EOselect abstract data type.

Generic classed should have EOG (as in EO-Generic) as preffix; this is not always respected but it should. EOGS indicates EO-Generic and implementations of Select-type objects.

Author:
J. J. Merelo
Version:
0.1

alphabetic index hierarchy of classes


BinOp