OPAL (Object Oriented Parallel Accelerator Library)
2.2.0
OPAL
|
#include <Population.h>
Public Types | |
typedef Individual_t::genes_t | genes_t |
typedef boost::shared_ptr < Individual_t > | individual |
typedef std::pair< unsigned int, individual > | ind_t |
typedef std::map< unsigned int, individual >::iterator | indItr_t |
population iterator type More... | |
Public Member Functions | |
Population () | |
~Population () | |
unsigned int | add_individual (individual ind) |
void | remove_individual (individual ind) |
individual | get_individual (int identity) |
individual | get_staging (int identity) |
void | commit_individuals (std::set< unsigned int > ids) |
void | keepSurvivors (std::set< unsigned int > survivors) |
bool | isRepresentedInPopulation (genes_t ind_genes) |
check if a gene set is already represented in the population More... | |
double | computeHypervolume (size_t island_id, const std::vector< double > &referencePoint) |
void | commit_individuals () |
indItr_t | stagingBegin () |
iterator begin on staging area More... | |
indItr_t | stagingEnd () |
iterator end on staging area More... | |
unsigned int | size () const |
indItr_t | begin () |
iterator begin on population container More... | |
indItr_t | end () |
iterator end on population container More... | |
indItr_t | erase (indItr_t it) |
erase individual More... | |
Private Member Functions | |
unsigned int | getFreeID () |
Private Attributes | |
std::map< unsigned int, individual > | individuals |
population container holding all individuals More... | |
std::map< unsigned int, individual > | stagingArea |
staging area for individuals probably joining population More... | |
std::queue< unsigned int > | freeids |
queue to handle free individual IDs More... | |
unsigned int | last_identity |
last used (= next free) ID More... | |
Managing a population of individuals. We maintain two sets: a set of all (evaluated) individuals in the population and a set of new potential individuals (the selector decides which individuals join the population), called 'stagingArea'. Most operations work on the 'stagingArea', population is kept for visualization purposes.
Definition at line 29 of file Population.h.
typedef Individual_t::genes_t Population< Individual_t >::genes_t |
Definition at line 38 of file Population.h.
typedef std::pair< unsigned int, individual > Population< Individual_t >::ind_t |
Definition at line 40 of file Population.h.
typedef std::map<unsigned int, individual>::iterator Population< Individual_t >::indItr_t |
population iterator type
Definition at line 43 of file Population.h.
typedef boost::shared_ptr<Individual_t> Population< Individual_t >::individual |
Definition at line 39 of file Population.h.
|
inline |
Definition at line 32 of file Population.h.
References Population< Individual_t >::last_identity.
|
inline |
Definition at line 36 of file Population.h.
|
inline |
Adds an individual to the population
ind | an individual that will be added to the population |
Definition at line 50 of file Population.h.
References Population< Individual_t >::getFreeID(), and Population< Individual_t >::stagingArea.
|
inline |
iterator begin on population container
Definition at line 210 of file Population.h.
References Population< Individual_t >::individuals.
|
inline |
Definition at line 116 of file Population.h.
References Population< Individual_t >::get_staging(), Population< Individual_t >::individuals, and Population< Individual_t >::stagingArea.
|
inline |
Definition at line 191 of file Population.h.
References Population< Individual_t >::individuals, and Population< Individual_t >::stagingArea.
|
inline |
Definition at line 161 of file Population.h.
References endl(), Inform::flush(), Hypervolume::FromFile(), and Population< Individual_t >::individuals.
|
inline |
iterator end on population container
Definition at line 212 of file Population.h.
References Population< Individual_t >::individuals.
|
inline |
erase individual
Definition at line 214 of file Population.h.
References Population< Individual_t >::individuals.
|
inline |
Get an individual of the current population with a specific ID
identity | an ID of the individual in the population |
Definition at line 83 of file Population.h.
References Population< Individual_t >::individuals.
|
inline |
Get an individual of the 'stagingArea' with a specific ID
identity | an ID of the individual in the stagingArea |
Definition at line 102 of file Population.h.
References Population< Individual_t >::stagingArea.
Referenced by Population< Individual_t >::commit_individuals().
|
inlineprivate |
Manages free individual IDs
Definition at line 234 of file Population.h.
References Population< Individual_t >::freeids, and Population< Individual_t >::last_identity.
Referenced by Population< Individual_t >::add_individual().
|
inline |
check if a gene set is already represented in the population
Definition at line 150 of file Population.h.
References Population< Individual_t >::individuals.
|
inline |
Remove all non-surviving individuals from the population and put IDs back in pool of free IDs.
survivors | to keep for next generation |
Definition at line 131 of file Population.h.
References Population< Individual_t >::freeids, Population< Individual_t >::individuals, and Population< Individual_t >::last_identity.
|
inline |
Definition at line 59 of file Population.h.
References Population< Individual_t >::freeids, Population< Individual_t >::last_identity, and Population< Individual_t >::stagingArea.
|
inline |
Size of population
Definition at line 207 of file Population.h.
References Population< Individual_t >::individuals.
|
inline |
iterator begin on staging area
Definition at line 198 of file Population.h.
References Population< Individual_t >::stagingArea.
|
inline |
iterator end on staging area
Definition at line 200 of file Population.h.
References Population< Individual_t >::stagingArea.
|
private |
queue to handle free individual IDs
Definition at line 225 of file Population.h.
Referenced by Population< Individual_t >::getFreeID(), Population< Individual_t >::keepSurvivors(), and Population< Individual_t >::remove_individual().
|
private |
population container holding all individuals
Definition at line 219 of file Population.h.
Referenced by Population< Individual_t >::begin(), Population< Individual_t >::commit_individuals(), Population< Individual_t >::computeHypervolume(), Population< Individual_t >::end(), Population< Individual_t >::erase(), Population< Individual_t >::get_individual(), Population< Individual_t >::isRepresentedInPopulation(), Population< Individual_t >::keepSurvivors(), and Population< Individual_t >::size().
|
private |
last used (= next free) ID
Definition at line 228 of file Population.h.
Referenced by Population< Individual_t >::getFreeID(), Population< Individual_t >::keepSurvivors(), Population< Individual_t >::Population(), and Population< Individual_t >::remove_individual().
|
private |
staging area for individuals probably joining population
Definition at line 222 of file Population.h.
Referenced by Population< Individual_t >::add_individual(), Population< Individual_t >::commit_individuals(), Population< Individual_t >::get_staging(), Population< Individual_t >::remove_individual(), Population< Individual_t >::stagingBegin(), and Population< Individual_t >::stagingEnd().