PaGMO
1.1.5
|
Base class for migration replacement policies. More...
#include <base_r_policy.h>
Public Member Functions | |
base_r_policy (const double &rate=1, rate_type type=fractional) | |
Constructor from migration rate and type. More... | |
virtual | ~base_r_policy () |
Trivial destructor. More... | |
virtual base_r_policy_ptr | clone () const =0 |
Clone method. More... | |
virtual std::vector< std::pair< population::size_type, std::vector< population::individual_type >::size_type > > | select (const std::vector< population::individual_type > &immigrants, const population &destination) const =0 |
Assign pairs of individuals for replacement during migration. More... | |
Public Member Functions inherited from pagmo::migration::base | |
base (const double &, rate_type) | |
Constructor from migration rate and type. More... | |
population::size_type | get_n_individuals (const population &) const |
Get number of individuals to migrate from/to input population. More... | |
std::string | human_readable () const |
Return human readable representation. More... | |
virtual | ~base () |
Destructor. More... | |
Friends | |
class | boost::serialization::access |
Additional Inherited Members | |
Protected Member Functions inherited from pagmo::migration::base | |
virtual std::string | human_readable_extra () const |
Return extra information in human readable representation. More... | |
Static Protected Member Functions inherited from pagmo::migration::base | |
template<class ForwardIterator , class T > | |
static void | iota (ForwardIterator first, ForwardIterator last, T value) |
Iota function, usefull to fill iterator range with increasing values. More... | |
Protected Attributes inherited from pagmo::migration::base | |
double | m_rate |
Migration rate. More... | |
rate_type | m_type |
Migration rate type. | |
Base class for migration replacement policies.
The task of a migration replacement policy is to select in a population the individuals that will replaced by immigrating individuals. The selection is performed by the pure virtual select() method.
The base::get_n_individuals() method for this class is meant to represent the maximum number of individuals in the target population that can be replaced by the immigrants. How many of these will actually be replaced will depend on the specific policy implementation.
Definition at line 57 of file base_r_policy.h.
pagmo::migration::base_r_policy::base_r_policy | ( | const double & | rate = 1 , |
rate_type | type = fractional |
||
) |
Constructor from migration rate and type.
Default replacement policy is to allow the replacement of the 100% of the target population.
[in] | rate | migration rate. |
[in] | type | migration rate type. |
Definition at line 39 of file base_r_policy.cpp.
|
virtual |
|
pure virtual |
Clone method.
Provided that the derived policy implements properly the copy constructor, virtually all implementations of this method will look like this:
return base_ptr(new derived_policy(*this));
@return migration::base_s_policy_ptr to a copy of this.
Implemented in pagmo::migration::hv_greedy_r_policy, pagmo::migration::hv_fair_r_policy, pagmo::migration::fair_r_policy, pagmo::migration::random_r_policy, and pagmo::migration::worst_r_policy.
|
pure virtual |
Assign pairs of individuals for replacement during migration.
Note, that this method does not alter the target population, it just provides the replacement choice. The actual replacement is done in the archipelago class. The first element of a pair should be the index of the one from the destination population. The second one - the index of the individual from the immigrants vector which is to replace the first one.
[in] | immigrants | vector of incoming individuals. |
[in] | destination | population into which the immigrants will be replaced. |
Implemented in pagmo::migration::hv_greedy_r_policy, pagmo::migration::hv_fair_r_policy, pagmo::migration::fair_r_policy, pagmo::migration::random_r_policy, and pagmo::migration::worst_r_policy.