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

Parallel Decomposition (PaDe) More...

#include <pade.h>

Inheritance diagram for pagmo::algorithm::pade:
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

 pade (int gen=10, unsigned int max_parallelism=1, pagmo::problem::decompose::method_type=pagmo::problem::decompose::BI, const pagmo::algorithm::base &=pagmo::algorithm::jde(100), population::size_type=8, weight_generation_type=LOW_DISCREPANCY, const fitness_vector &=std::vector< double >())
 Constructor. More...
 
 pade (const pade &)
 Copy constructor. Performs a deep copy. Necessary as a pointer to a base algorithm is here contained.
 
base_ptr clone () const
 Clone method.
 
void evolve (population &) const
 Evolve implementation. More...
 
std::string get_name () const
 Algorithm name.
 
std::vector< fitness_vectorgenerate_weights (const unsigned int, const unsigned int) const
 Generates the weights used in the problem decomposition. 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

Parallel Decomposition (PaDe)

This class implement a multi-objective optimization algorithm based on parallel decomposition. For each element of the population a different single objective problem is generated using a decomposition method. Those single-objective problems are thus solved in parallel. At the end of the evolution the population is set as the best individual for each single-objective problem.

PaDe assumes all the objectives need to be minimized.

Author
Andrea Mambrini (andre.nosp@m.a.ma.nosp@m.mbrin.nosp@m.i@gm.nosp@m.ail.c.nosp@m.om)
Dario Izzo (dario.nosp@m..izz.nosp@m.o@gma.nosp@m.il.c.nosp@m.om)

Definition at line 52 of file pade.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 56 of file pade.h.

Constructor & Destructor Documentation

pagmo::algorithm::pade::pade ( int  gen = 10,
unsigned int  threads = 1,
pagmo::problem::decompose::method_type  method = pagmo::problem::decompose::BI,
const pagmo::algorithm::base solver = pagmo::algorithm::jde(100),
population::size_type  T = 8,
weight_generation_type  weight_generation = LOW_DISCREPANCY,
const fitness_vector z = std::vector<double>() 
)

Constructor.

Constructs a PaDe algorithm

Parameters
[in]genNumber of generations to evolve.
[in]threadsthe amounts of threads that will be used
[in]methodthe decomposition method to use (Weighted, Tchebycheff or BI)
[in]solverthe algorithm to solve the single objective problems.
[in]Tthe size of the population on each subproblem (must be an even number)
[in]weight_generationthe method to generate the weight vectors (RANDOM, GRID or LOW-DISCREPANCY)
[in]zthe reference point used for decomposition (with Tchebycheff and BI)
Exceptions
value_errorif gen is negative, weight_generation is not sane
See also
pagmo::problem::decompose::method_type

Definition at line 69 of file pade.cpp.

Member Function Documentation

void pagmo::algorithm::pade::evolve ( population pop) const
virtual

Evolve implementation.

Run the PaDe algorithm for the number of generations specified in the constructors.

Parameters
[in,out]popinput/output pagmo::population to be evolved.

Implements pagmo::algorithm::base.

Definition at line 217 of file pade.cpp.

std::vector< fitness_vector > pagmo::algorithm::pade::generate_weights ( const unsigned int  n_f,
const unsigned int  n_w 
) const

Generates the weights used in the problem decomposition.

Run the PaDe algorithm for the number of generations specified in the constructors.

Parameters
[in]n_fdiemension of the fitness space
[in]n_wnumber of weights to be produced

Definition at line 140 of file pade.cpp.

std::string pagmo::algorithm::pade::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 379 of file pade.cpp.


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