Modernized GAlib
3.0.0 current
|
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>
Public Types | |
enum | { MINIMIZE = -1 , MAXIMIZE = 1 } |
using | Terminator = bool(*)(GAGeneticAlgorithm &) |
![]() | |
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 GAParameterList & | parameters () const |
const GAParameterList & | parameters (const GAParameterList &) |
const GAParameterList & | parameters (int &, char **, bool flag=false) |
const GAParameterList & | parameters (const std::string &filename, bool f=false) |
const GAParameterList & | parameters (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 GAStatistics & | statistics () 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 GAPopulation & | population () const |
virtual const GAPopulation & | population (const GAPopulation &) |
virtual int | populationSize () const |
virtual int | populationSize (unsigned int value) |
virtual int | nBestGenomes () const |
virtual int | nBestGenomes (unsigned int n) |
virtual GAScalingScheme & | scaling () const |
virtual GAScalingScheme & | scaling (const GAScalingScheme &s) |
virtual GASelectionScheme & | selector () const |
virtual GASelectionScheme & | selector (const GASelectionScheme &s) |
virtual void | objectiveFunction (GAGenome::Evaluator f) |
virtual void | objectiveData (const GAEvalData &v) |
![]() | |
bool | sameClass (const GAID &b) const |
virtual const char * | className () const |
virtual int | classID () const |
Static Public Member Functions | |
static GAParameterList & | registerDefaultParameters (GAParameterList &) |
static bool | TerminateUponGeneration (GAGeneticAlgorithm &) |
static bool | TerminateUponConvergence (GAGeneticAlgorithm &) |
static bool | TerminateUponPopConvergence (GAGeneticAlgorithm &) |
Protected Attributes | |
GAStatistics | stats |
GAParameterList | params |
GAPopulation * | pop |
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 | |
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).
|
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!
|
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.
|
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.