#include <BB2004Evo.h>
Public Member Functions | |
BBPopulation (int size, const BBIndividual &initial) | |
~BBPopulation () | |
int | getSize () const |
T & | operator[] (int index) |
const T & | operator[] (int index) const |
void | interpolate () |
void | extrapolate () |
const BBIndividual & | getFittest () |
Statistics & | getStatistics () |
Private Member Functions | |
const T & | drawIndividual () |
void | updateFitness () |
void | mutate () |
Static Private Member Functions | |
static double | random () |
Private Attributes | |
Statistics | statistics |
T * | current |
T * | old |
int | size |
double * | fitness |
double * | fitnessSum |
double | overallFitness |
T | The class of the individuals. It has to be derived from class BBIndividual. |
Definition at line 143 of file BB2004Evo.h.
BBPopulation< T >::BBPopulation | ( | int | size, | |
const BBIndividual & | initial | |||
) | [inline] |
Constructor.
size | The number of individuals in the population. | |
initial | The individual the population is initialized with. |
Definition at line 217 of file BB2004Evo.h.
BBPopulation< T >::~BBPopulation | ( | ) | [inline] |
Destructor.
Definition at line 232 of file BB2004Evo.h.
const T& BBPopulation< T >::drawIndividual | ( | ) | [inline, private] |
The function draws an indiviual from the previous population. The probability of being drawn is based on the ratio of the individual fitness in relation to the overall fitness of the population.
Definition at line 166 of file BB2004Evo.h.
Referenced by BBPopulation< CalibrationIndividual >::extrapolate(), and BBPopulation< CalibrationIndividual >::interpolate().
void BBPopulation< T >::extrapolate | ( | ) | [inline] |
const BBIndividual& BBPopulation< T >::getFittest | ( | ) | [inline] |
int BBPopulation< T >::getSize | ( | ) | const [inline] |
The function returns the number of Individuals.
Definition at line 244 of file BB2004Evo.h.
Statistics& BBPopulation< T >::getStatistics | ( | ) | [inline] |
void BBPopulation< T >::interpolate | ( | ) | [inline] |
The function evolves the population.
Definition at line 264 of file BB2004Evo.h.
Referenced by BB2004Calibrator::evolve().
void BBPopulation< T >::mutate | ( | ) | [inline, private] |
The function mutates the half of the population if a single individual was drawn too often.
Definition at line 201 of file BB2004Evo.h.
Referenced by BBPopulation< CalibrationIndividual >::extrapolate(), BBPopulation< CalibrationIndividual >::interpolate(), and BBPopulation< CalibrationIndividual >::mutate().
const T& BBPopulation< T >::operator[] | ( | int | index | ) | const [inline] |
The constant operator provides access to the individuals.
index | The index of the individual. |
Definition at line 258 of file BB2004Evo.h.
T& BBPopulation< T >::operator[] | ( | int | index | ) | [inline] |
The operator provides access to the individuals.
index | The index of the individual. |
Definition at line 251 of file BB2004Evo.h.
static double BBPopulation< T >::random | ( | ) | [inline, static, private] |
The function provides random values.
Definition at line 158 of file BB2004Evo.h.
Referenced by BBPopulation< CalibrationIndividual >::drawIndividual().
void BBPopulation< T >::updateFitness | ( | ) | [inline, private] |
The function updates the fitness of the whole population. It also updates the overall fitness.
Definition at line 187 of file BB2004Evo.h.
Referenced by BBPopulation< CalibrationIndividual >::extrapolate(), BBPopulation< CalibrationIndividual >::getFittest(), and BBPopulation< CalibrationIndividual >::interpolate().
T* BBPopulation< T >::current [private] |
The current set of individuals.
Definition at line 147 of file BB2004Evo.h.
Referenced by BBPopulation< CalibrationIndividual >::BBPopulation(), BBPopulation< CalibrationIndividual >::extrapolate(), BBPopulation< CalibrationIndividual >::getFittest(), BBPopulation< CalibrationIndividual >::interpolate(), BBPopulation< CalibrationIndividual >::mutate(), BBPopulation< CalibrationIndividual >::operator[](), BBPopulation< CalibrationIndividual >::updateFitness(), and BBPopulation< CalibrationIndividual >::~BBPopulation().
double* BBPopulation< T >::fitness [private] |
The fitnesses of the individuals.
Definition at line 150 of file BB2004Evo.h.
Referenced by BBPopulation< CalibrationIndividual >::BBPopulation(), BBPopulation< CalibrationIndividual >::getFittest(), BBPopulation< CalibrationIndividual >::updateFitness(), and BBPopulation< CalibrationIndividual >::~BBPopulation().
double* BBPopulation< T >::fitnessSum [private] |
The accumulated fitnesses of the individuals.
Definition at line 151 of file BB2004Evo.h.
Referenced by BBPopulation< CalibrationIndividual >::BBPopulation(), BBPopulation< CalibrationIndividual >::drawIndividual(), BBPopulation< CalibrationIndividual >::updateFitness(), and BBPopulation< CalibrationIndividual >::~BBPopulation().
T * BBPopulation< T >::old [private] |
The previous set of individuals.
Definition at line 147 of file BB2004Evo.h.
Referenced by BBPopulation< CalibrationIndividual >::BBPopulation(), BBPopulation< CalibrationIndividual >::drawIndividual(), BBPopulation< CalibrationIndividual >::extrapolate(), BBPopulation< CalibrationIndividual >::interpolate(), and BBPopulation< CalibrationIndividual >::~BBPopulation().
double BBPopulation< T >::overallFitness [private] |
The sum of fitness in the current population.
Definition at line 152 of file BB2004Evo.h.
Referenced by BBPopulation< CalibrationIndividual >::drawIndividual(), and BBPopulation< CalibrationIndividual >::updateFitness().
int BBPopulation< T >::size [private] |
The number of individuals in the population.
Definition at line 149 of file BB2004Evo.h.
Referenced by BBPopulation< CalibrationIndividual >::drawIndividual(), BBPopulation< CalibrationIndividual >::extrapolate(), BBPopulation< CalibrationIndividual >::getFittest(), BBPopulation< CalibrationIndividual >::getSize(), BBPopulation< CalibrationIndividual >::interpolate(), BBPopulation< CalibrationIndividual >::mutate(), and BBPopulation< CalibrationIndividual >::updateFitness().
Statistics BBPopulation< T >::statistics [private] |
The object is used to do some statistics on drawing individuals.
Definition at line 146 of file BB2004Evo.h.
Referenced by BBPopulation< CalibrationIndividual >::drawIndividual(), BBPopulation< CalibrationIndividual >::extrapolate(), BBPopulation< CalibrationIndividual >::getStatistics(), BBPopulation< CalibrationIndividual >::interpolate(), and BBPopulation< CalibrationIndividual >::mutate().