82 virtual void doCrossOver(
const std::vector<std::vector<IModel*> > &parents)=0;
TRandom3 * m_random
Stores a random number generator.
double m_scoreMean
Stores the mean score for the population.
IModel * getBestFitted(int rank=0)
Abstract class describing a population of models.
virtual void selectParents(int &p1, int &p2)
void setMutateRate(double rate)
void setFigureOfMerit(IFigureOfMerit *fom)
IFigureOfMerit * getFigureOfMerit()
bool m_sorted
Stores whether the ranking is valid or needs to be redone.
double m_mutateRate
Stores the mutate rate.
std::vector< std::vector< IModel * > > m_parents
Stores the list of parents about to be crossed-over.
void checkFigureOfMerit()
virtual void doMutate(IModel *model)=0
IFigureOfMerit * m_fom
Stores the figure of merit to be used to calculate scores and perform the ranking.
void setRandomSeed(int seed)
std::vector< IModel * > m_individuals
Stores the individuals of this population.
virtual void doInitialize(int n)=0
virtual void doCrossOver(const std::vector< std::vector< IModel *> > &parents)=0
Abstract class describing the interface for a model.
double m_scoreRMS
Stores the score RMS for the population.