PaGMO
1.1.5
|
jDE - Differential Evolution Algorithm - Self-Adaptive C and R (2011) More...
#include <jde.h>
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. | |
jDE - Differential Evolution Algorithm - Self-Adaptive C and R (2011)
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.
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.
[in] | gen | number of generations. |
[in] | variant | algorithm variant (one of 1..18) |
[in] | variant_adptv | parameter adaptation scheme to be used (one of 1..2) |
[in] | ftol | stopping criteria on the f tolerance |
[in] | xtol | stopping criteria on the x tolerance |
[in] | memory | when true the algorithm preserves its internal state (adapted parameters) through successive calls |
value_error | if f,cr are not in the [0,1] interval, strategy is not one of 1 .. 10, gen is negative |
|
virtual |
Evolve implementation.
Run the jDE algorithm for the number of generations specified in the constructors. At each improvments velocity is also updated.
[in,out] | pop | input/output pagmo::population to be evolved. |
Implements pagmo::algorithm::base.
|
protectedvirtual |
Extra human readable algorithm info.
Reimplemented from pagmo::algorithm::base.