BBPopulation< T > Class Template Reference

#include <BB2004Evo.h>

List of all members.

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 BBIndividualgetFittest ()
StatisticsgetStatistics ()

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


Detailed Description

template<class T>
class BBPopulation< T >

The template class represents a population of indiviuals.
Parameters:
T The class of the individuals. It has to be derived from class BBIndividual.

Definition at line 143 of file BB2004Evo.h.


Constructor & Destructor Documentation

template<class T>
BBPopulation< T >::BBPopulation ( int  size,
const BBIndividual initial 
) [inline]

Constructor.

Parameters:
size The number of individuals in the population.
initial The individual the population is initialized with.

Definition at line 217 of file BB2004Evo.h.

template<class T>
BBPopulation< T >::~BBPopulation (  )  [inline]

Destructor.

Definition at line 232 of file BB2004Evo.h.


Member Function Documentation

template<class T>
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.

Returns:
The individual that has been drawn.

Definition at line 166 of file BB2004Evo.h.

Referenced by BBPopulation< CalibrationIndividual >::extrapolate(), and BBPopulation< CalibrationIndividual >::interpolate().

template<class T>
void BBPopulation< T >::extrapolate (  )  [inline]

Definition at line 282 of file BB2004Evo.h.

Referenced by BB2004Calibrator::evolve().

template<class T>
const BBIndividual& BBPopulation< T >::getFittest (  )  [inline]

Definition at line 300 of file BB2004Evo.h.

Referenced by BB2004Calibrator::evolve().

template<class T>
int BBPopulation< T >::getSize (  )  const [inline]

The function returns the number of Individuals.

Returns:
The number of individuals.

Definition at line 244 of file BB2004Evo.h.

template<class T>
Statistics& BBPopulation< T >::getStatistics (  )  [inline]

Definition at line 311 of file BB2004Evo.h.

Referenced by BB2004Calibrator::evolve().

template<class T>
void BBPopulation< T >::interpolate (  )  [inline]

The function evolves the population.

Returns:
The fittest individual.

Definition at line 264 of file BB2004Evo.h.

Referenced by BB2004Calibrator::evolve().

template<class T>
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().

template<class T>
const T& BBPopulation< T >::operator[] ( int  index  )  const [inline]

The constant operator provides access to the individuals.

Parameters:
index The index of the individual.
Returns:
A reference to the individual with the index.

Definition at line 258 of file BB2004Evo.h.

template<class T>
T& BBPopulation< T >::operator[] ( int  index  )  [inline]

The operator provides access to the individuals.

Parameters:
index The index of the individual.
Returns:
A reference to the individual with the index.

Definition at line 251 of file BB2004Evo.h.

template<class T>
static double BBPopulation< T >::random (  )  [inline, static, private]

The function provides random values.

Returns:
A random value in the range of [0 ... 1[.

Definition at line 158 of file BB2004Evo.h.

Referenced by BBPopulation< CalibrationIndividual >::drawIndividual().

template<class T>
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().


Member Data Documentation

template<class T>
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().

template<class T>
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().

template<class T>
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().

template<class T>
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().

template<class T>
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().

template<class T>
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().

template<class T>
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().


The documentation for this class was generated from the following file:
Generated on Thu Dec 7 01:19:13 2006 for DT2005.panorama by  doxygen 1.4.7