PaGMO  1.1.5
Public Types | Public Member Functions | Protected Member Functions | Friends
pagmo::algorithm::moead Class Reference

MOEA/D - DE. More...

#include <moea_d.h>

Inheritance diagram for pagmo::algorithm::moead:
Inheritance graph
[legend]

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_vectorgenerate_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.
 

Detailed Description

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

See also
Zhang, Qingfu, and Hui Li. "MOEA/D: A multiobjective evolutionary algorithm based on decomposition." Evolutionary Computation, IEEE Transactions on 11.6 (2007): 712-731.
Li, Hui, and Qingfu Zhang. "Multiobjective optimization problems with complicated Pareto sets, MOEA/D and NSGA-II." Evolutionary Computation, IEEE Transactions on 13.2 (2009): 284-302.

Definition at line 50 of file moea_d.h.

Member Enumeration Documentation

Mechanism used to generate the weight vectors.

Enumerator
RANDOM 

Weights are generated uniformly at random on the simplex.

GRID 

Weights are generated on a uniform grid layed down on the simplex.

LOW_DISCREPANCY 

Weights are generated on the simplex with low-discrepancy.

Definition at line 54 of file moea_d.h.

Constructor & Destructor Documentation

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

Parameters
[in]genNumber of generations to evolve.
[in]weight_generationMethod to generate the weights (GRID, LOW-DISCREPANCY or RANDOM)
[in]TSize of the neighborhood
[in]realbChance that the neighbourhood is T rather than the whole population (only if m_preserve_diversity is true)
[in]limitMaximum number of copies reinserted in the population (only if m_preserve_diversity is true)
[in]crCrossover parameter in the Differential Evolution operator
[in]ff parameter in the Differential Evolution operator
[in]eta_mDistribution index for the polynomial mutation
[in]preserve_diversitywhen true activates the two diversity preservation mechanism described in Li, Hui, and Qingfu Zhang paper
Exceptions
value_errorif 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.

Member Function Documentation

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.

Parameters
[in]n_fdimesnion of each weight (i.e. fitness dimension)
[in]n_wnumber of weights
Returns
an std:vector containing the weights (fitness_vector)
Exceptions
ifthe population size is not possible for the selected generation method

Definition at line 152 of file moea_d.cpp.

std::string pagmo::algorithm::moead::human_readable_extra ( ) const
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.


The documentation for this class was generated from the following files: