Modernized GAlib  3.0.0 current
Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
GAGeneticAlgorithm Class Referenceabstract

The base GA class is virtual - it defines the core data elements and parts of the interface that are common to all genetic algorithms (as defined in GAlib, that is). More...

#include <GABaseGA.h>

Inheritance diagram for GAGeneticAlgorithm:
[legend]
Collaboration diagram for GAGeneticAlgorithm:
[legend]

Public Types

enum  { MINIMIZE = -1 , MAXIMIZE = 1 }
 
using Terminator = bool(*)(GAGeneticAlgorithm &)
 
- Public Types inherited from GAID
enum  {
  BaseGA = 0 , SimpleGA , SteadyStateGA , IncrementalGA ,
  DemeGA , Population = 10 , Scaling = 15 , NoScaling ,
  LinearScaling , SigmaTruncationScaling , PowerLawScaling , Sharing ,
  Selection = 40 , RankSelection , RouletteWheelSelection , TournamentSelection ,
  UniformSelection , SRSSelection , DSSelection , Genome = 50 ,
  BinaryStringGenome , BinaryStringGenome2D , BinaryStringGenome3D , Bin2DecGenome ,
  ListGenome , TreeGenome , ArrayGenome , ArrayGenome2D ,
  ArrayGenome3D , ArrayAlleleGenome , ArrayAlleleGenome2D , ArrayAlleleGenome3D ,
  StringGenome , FloatGenome , IntGenome , DoubleGenome
}
 

Public Member Functions

 GADefineIdentity ("GAIncrementalGA", GAID::BaseGA)
 
 GAGeneticAlgorithm (const GAGenome &)
 
 GAGeneticAlgorithm (const GAPopulation &)
 
 GAGeneticAlgorithm (const GAGeneticAlgorithm &)
 
virtual void copy (const GAGeneticAlgorithm &)
 
bool done ()
 Calls the completion measure routine to tell whether or not the GA is done.
 
virtual void initialize (unsigned int seed=0)=0
 Undefined for the base class. More...
 
virtual void step ()=0
 Evolve by one generation. More...
 
virtual void evolve (unsigned int seed=0)
 This method is provided as a convenience so that you don't have to increment the GA generation-by-generation by hand. More...
 
virtual int write (const char *) const
 
virtual int write (std::ostream &) const
 
virtual int read (const char *)
 
virtual int read (std::istream &)
 
void * userData () const
 
void * userData (void *d)
 
Terminator terminator () const
 
Terminator terminator (Terminator f)
 
const GAParameterListparameters () const
 
const GAParameterListparameters (const GAParameterList &)
 
const GAParameterListparameters (int &, char **, bool flag=false)
 
const GAParameterListparameters (const std::string &filename, bool f=false)
 
const GAParameterListparameters (std::istream &, bool flag=false)
 
virtual int get (const char *, void *) const
 
virtual int setptr (const std::string &name, const void *)
 
int set (const std::string &s, int v)
 
int set (const std::string &s, unsigned int v)
 
int set (const std::string &s, char v)
 
int set (const std::string &s, const char *v)
 
int set (const std::string &s, const void *v)
 
int set (const std::string &name, double v)
 
virtual int minimaxi () const
 
virtual int minimaxi (int m)
 
int minimize ()
 
int maximize ()
 
int nGenerations () const
 
int nGenerations (unsigned int n)
 
int nConvergence () const
 
int nConvergence (unsigned int n)
 
float pConvergence () const
 
float pConvergence (float p)
 
float pCrossover () const
 
float pCrossover (float p)
 
float pMutation () const
 
float pMutation (float p)
 
GAGenome::SexualCrossover crossover (GAGenome::SexualCrossover f)
 
GAGenome::SexualCrossover sexual () const
 
GAGenome::AsexualCrossover crossover (GAGenome::AsexualCrossover f)
 
GAGenome::AsexualCrossover asexual () const
 
const GAStatisticsstatistics () const
 
float convergence () const
 
int generation () const
 
void flushScores ()
 
int scoreFrequency () const
 
int scoreFrequency (unsigned int x)
 
int flushFrequency () const
 
int flushFrequency (unsigned int x)
 
std::string scoreFilename () const
 
std::string scoreFilename (const std::string &fn)
 
int selectScores ()
 
int selectScores (int w)
 
bool recordDiversity () const
 
bool recordDiversity (bool f)
 
virtual const GAPopulationpopulation () const
 
virtual const GAPopulationpopulation (const GAPopulation &)
 
virtual int populationSize () const
 
virtual int populationSize (unsigned int value)
 
virtual int nBestGenomes () const
 
virtual int nBestGenomes (unsigned int n)
 
virtual GAScalingSchemescaling () const
 
virtual GAScalingSchemescaling (const GAScalingScheme &s)
 
virtual GASelectionSchemeselector () const
 
virtual GASelectionSchemeselector (const GASelectionScheme &s)
 
virtual void objectiveFunction (GAGenome::Evaluator f)
 
virtual void objectiveData (const GAEvalData &v)
 
- Public Member Functions inherited from GAID
bool sameClass (const GAID &b) const
 
virtual const char * className () const
 
virtual int classID () const
 

Static Public Member Functions

static GAParameterListregisterDefaultParameters (GAParameterList &)
 
static bool TerminateUponGeneration (GAGeneticAlgorithm &)
 
static bool TerminateUponConvergence (GAGeneticAlgorithm &)
 
static bool TerminateUponPopConvergence (GAGeneticAlgorithm &)
 

Protected Attributes

GAStatistics stats
 
GAParameterList params
 
GAPopulationpop
 
Terminator cf
 function for determining done-ness
 
void * ud
 pointer to user data structure
 
int d_seed
 
unsigned int ngen
 
unsigned int nconv
 
float pconv
 
float pcross
 
float pmut
 
int minmax
 
GAGenome::SexualCrossover scross
 sexual crossover to use
 
GAGenome::AsexualCrossover across
 asexual crossover to use
 

Detailed Description

The base GA class is virtual - it defines the core data elements and parts of the interface that are common to all genetic algorithms (as defined in GAlib, that is).

Member Function Documentation

◆ evolve()

virtual void GAGeneticAlgorithm::evolve ( unsigned int  seed = 0)
inlinevirtual

This method is provided as a convenience so that you don't have to increment the GA generation-by-generation by hand.

If you do decide to do it by hand, be sure that you initialize before you start evolving!

◆ initialize()

virtual void GAGeneticAlgorithm::initialize ( unsigned int  seed = 0)
pure virtual

Undefined for the base class.

The initialization routine typically calls the population initializer (which typically calls the genome initializers). It should also reset the statistics.

Implemented in GASteadyStateGA, GASimpleGA, GAIncrementalGA, GADemeGA, and GADCrowdingGA.

◆ step()

virtual void GAGeneticAlgorithm::step ( )
pure virtual

Evolve by one generation.

'generation' can be defined different ways for different genetic algorithms, but in the traditional formulation a generation mean creation of a new population (or portion thereof).

Implemented in GASteadyStateGA, GASimpleGA, GAIncrementalGA, GADemeGA, and GADCrowdingGA.


The documentation for this class was generated from the following file: