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

Differential Evolution Algorithm - 1220 (our version!!) More...

#include <de_1220.h>

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

Public Member Functions

 de_1220 (int=100, int=1, const std::vector< int > &=construct_default_strategies(), bool=true, double=1e-6, double=1e-6)
 Constructor. More...
 
base_ptr clone () const
 Clone method.
 
void evolve (population &) const
 Evolve implementation. More...
 
std::string get_name () const
 Algorithm name.
 
- 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

Differential Evolution Algorithm - 1220 (our version!!)

Since Differential Evolution has always been one of PaGMO's best algorithm we dared to propose our own algoritmic variant we call DE 1220. Our variant has self-adaptation of CR, F and the mutation variant, so that the only parameter left to be specified is the population size.

NOTE: when called on mixed-integer problems DE 1220 treats the integer part as fixed and optimizes the continuous part.

NOTE2: when called on stochastic optimization problems, DE 1220 changes the seed at the end of each generation.

NOTE3: the pagmo::population::individual_type::cur_v is also updated in DE 1220 as soon as a new chromosome is accepted.

Author
Dario Izzo (dario.nosp@m..izz.nosp@m.o@goo.nosp@m.glem.nosp@m.ail.c.nosp@m.om)

Definition at line 57 of file de_1220.h.

Constructor & Destructor Documentation

pagmo::algorithm::de_1220::de_1220 ( int  gen = 100,
int  variant_adptv = 1,
const std::vector< int > &  allowed_variants = construct_default_strategies(),
bool  memory = true,
double  ftol = 1e-6,
double  xtol = 1e-6 
)

Constructor.

Allows to specify in detail all the parameters of the algorithm.

Parameters
[in]gennumber of generations.
[in]variant_adptvparameter adaptation scheme to be used (one of 1..2)
[in]allowed_variantsa vector of integers containing mutation variants allowed (in the 1..18 range)
[in]memorywhen true the algorithm re-initialize randomly the parameters at each call
[in]ftolstopping criteria on the x tolerance
[in]xtolstopping criteria on the f tolerance
Exceptions
value_errorif gen is negative, variant_adptv is not in [1,2], varianis contains value outside the [1,18] range

Definition at line 55 of file de_1220.cpp.

Member Function Documentation

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

Evolve implementation.

Run the DE-1220 algorithm for the number of generations specified in the constructors. At each improvments velocity is also updated.

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

Implements pagmo::algorithm::base.

Definition at line 84 of file de_1220.cpp.

std::string pagmo::algorithm::de_1220::human_readable_extra ( ) const
protectedvirtual

Extra human readable algorithm info.

Returns
a formatted string displaying the parameters of the algorithm.

Reimplemented from pagmo::algorithm::base.

Definition at line 588 of file de_1220.cpp.


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