PaGMO
1.1.5
|
MOEA/D - DE. More...
#include <moea_d.h>
Public Types | |
enum | weight_generation_type { RANDOM =0, GRID =1, LOW_DISCREPANCY =2 } |
Mechanism used to generate the weight vectors. More... | |
Public Member Functions | |
moead (int gen=100, weight_generation_type=GRID, population::size_type=20, double realb=0.9, unsigned int limit=2, double CR=1.0, double F=0.5, double eta_m=20, bool preserve_diversity=true) | |
Constructor. More... | |
base_ptr | clone () const |
Clone method. | |
void | evolve (population &) const |
Evolve implementation. | |
std::string | get_name () const |
Algorithm name. | |
std::vector< fitness_vector > | generate_weights (const unsigned int, const unsigned int) const |
Weight generation. More... | |
Public Member Functions inherited from pagmo::algorithm::base | |
base () | |
Default constructor. More... | |
virtual | ~base () |
Trivial destructor. More... | |
std::string | human_readable () const |
Return human readable representation of the algorithm. More... | |
void | set_screen_output (const bool p) |
Setter-Getter for protected m_screen_output data. More... | |
bool | get_screen_output () const |
Gets screen output. More... | |
void | reset_rngs (const unsigned int) const |
Resets the seed of the internal rngs using a user-provided seed. More... | |
Protected Member Functions | |
std::string | human_readable_extra () const |
Extra human readable algorithm info. More... | |
Friends | |
class | boost::serialization::access |
Additional Inherited Members | |
Protected Attributes inherited from pagmo::algorithm::base | |
bool | m_screen_output |
Indicates to the derived class whether to print stuff on screen. | |
rng_double | m_drng |
Random number generator for double-precision floating point values. | |
rng_uint32 | m_urng |
Random number generator for unsigned integer values. | |
unsigned int | m_fevals |
A counter for the number of function evaluations. | |
MOEA/D - DE.
This class implements the Multi Objective Evolutionary Algorithm based on Decomposition and Differential Evolution crossover. The reference papers can be found below. By activating or deactivating the bool preserve_diversity one can select to use the ideas introduced in the second paper or not. In all cases Tchebycheff decomposition and a differential evolution operator are used
pagmo::algorithm::moead::moead | ( | int | gen = 100 , |
weight_generation_type | weight_generation = GRID , |
||
population::size_type | T = 20 , |
||
double | realb = 0.9 , |
||
unsigned int | limit = 2 , |
||
double | cr = 1.0 , |
||
double | f = 0.5 , |
||
double | eta_m = 20 , |
||
bool | preserve_diversity = true |
||
) |
Constructor.
Constructs a MOEA/D-DE algorithm
[in] | gen | Number of generations to evolve. |
[in] | weight_generation | Method to generate the weights (GRID, LOW-DISCREPANCY or RANDOM) |
[in] | T | Size of the neighborhood |
[in] | realb | Chance that the neighbourhood is T rather than the whole population (only if m_preserve_diversity is true) |
[in] | limit | Maximum number of copies reinserted in the population (only if m_preserve_diversity is true) |
[in] | cr | Crossover parameter in the Differential Evolution operator |
[in] | f | f parameter in the Differential Evolution operator |
[in] | eta_m | Distribution index for the polynomial mutation |
[in] | preserve_diversity | when true activates the two diversity preservation mechanism described in Li, Hui, and Qingfu Zhang paper |
value_error | if gen is negative, weight_generation is not one of the allowed types, realb,cr or f are not in [1.0] or m_eta is < 0 |
Definition at line 66 of file moea_d.cpp.
std::vector< fitness_vector > pagmo::algorithm::moead::generate_weights | ( | const unsigned int | n_f, |
const unsigned int | n_w | ||
) | const |
Weight generation.
Generates the weights used to decompose the problem.
[in] | n_f | dimesnion of each weight (i.e. fitness dimension) |
[in] | n_w | number of weights |
if | the population size is not possible for the selected generation method |
Definition at line 152 of file moea_d.cpp.
|
protectedvirtual |
Extra human readable algorithm info.
Will return a formatted string displaying the parameters of the algorithm.
Reimplemented from pagmo::algorithm::base.
Definition at line 439 of file moea_d.cpp.