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

jDE - Differential Evolution Algorithm - Self-Adaptive C and R (2011) More...

#include <jde.h>

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

Public Member Functions

 jde (int=100, int=2, int=1, double=1e-6, double=1e-6, bool=false)
 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

jDE - Differential Evolution Algorithm - Self-Adaptive C and R (2011)

de.jpg
Differential Evolution block diagram.

Since its creation, the original Differential Evolution (pagmo::algorithm::de) algorithm has been modified several times and many improvements have been suggested. We thus provide in PaGMO, together with the original version of the algorithm, a modern version of the algorithm, with self-adaptation of its parameters pagmo::algorithm::de::m_cr and pagmo::algorithm::de::m_f and some of more recombination variants.

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

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

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

See also
http://labraj.uni-mb.si/images/0/05/CEC09_slides_Brest.pdf where m_variant_adptv = 1 is studied.
http://sci2s.ugr.es/EAMHCO/pdfs/contributionsCEC11/05949732.pdf for a paper where a similar apporach to m_variant_adptv=2 is described 'modern' de version are used.
Author
Dario Izzo (dario.nosp@m..izz.nosp@m.o@goo.nosp@m.glem.nosp@m.ail.c.nosp@m.om)

Definition at line 64 of file jde.h.

Constructor & Destructor Documentation

pagmo::algorithm::jde::jde ( int  gen = 100,
int  variant = 2,
int  variant_adptv = 1,
double  ftol = 1e-6,
double  xtol = 1e-6,
bool  memory = false 
)

Constructor.

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

Parameters
[in]gennumber of generations.
[in]variantalgorithm variant (one of 1..18)
[in]variant_adptvparameter adaptation scheme to be used (one of 1..2)
[in]ftolstopping criteria on the f tolerance
[in]xtolstopping criteria on the x tolerance
[in]memorywhen true the algorithm preserves its internal state (adapted parameters) through successive calls
Exceptions
value_errorif f,cr are not in the [0,1] interval, strategy is not one of 1 .. 10, gen is negative

Definition at line 52 of file jde.cpp.

Member Function Documentation

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

Evolve implementation.

Run the jDE 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 79 of file jde.cpp.

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


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