Multidimensional minimization by the differential evolution method. More...
#include <diff_evo_adapt.h>
This class minimizes a function using differential evolution. This method is a genetic algorithm and as such works well for non continuous problems, since it does not require the gradient of the function to be minimized.
This is an adaptive version of diff_evo as described in Brest06 .
Definition at line 56 of file diff_evo_adapt.h.
Public Types | |
typedef boost::numeric::ublas::vector< double > | ubvector |
![]() | |
typedef boost::numeric::ublas::vector< double > | ubvector |
Public Attributes | |
double | tau_1 |
Probability of adjusting f (default 0.1) | |
double | tau_2 |
Probability of adjusting cr (default 0.1) | |
![]() | |
size_t | pop_size |
Population size (default 0) More... | |
size_t | nconv |
The number of generations without a better fit before we assume that the algorithm has converged (default 25) | |
double | f |
Differential weight (default 0.75) More... | |
double | cr |
Crossover probability (default 0.8) More... | |
![]() | |
int | verbose |
Output control. | |
int | ntrial |
Maximum number of iterations. | |
double | tol_rel |
Function value tolerance. | |
double | tol_abs |
The independent variable tolerance. | |
int | last_ntrial |
The number of iterations for in the most recent minimization. | |
bool | err_nonconv |
If true, call the error handler if the routine does not "converge". | |
Lower bound and range of F (defaults 0.1 and 0.9) | |
double | fl |
double | fr |
vec_t | variables |
Vector containing the tunable variable F and CR. | |
ubvector | fmins |
Vector that keeps track of fmins values. | |
diff_evo_adapt () | |
virtual int | mmin (size_t nvar, vec_t &x0, double &fmin, func_t &func) |
Calculate the minimum fmin of func w.r.t the array x of size nvar . | |
virtual void | print_iter (size_t nvar, double fmin, int iter, vec_t &best_fit) |
Print out iteration information. | |
virtual int | initialize_population (size_t nvar, vec_t &x0) |
Initialize a population of random agents. | |
diff_evo_adapt (const diff_evo_adapt< func_t, vec_t, init_funct_t > &) | |
diff_evo_adapt< func_t, vec_t, init_funct_t > & | operator= (const diff_evo_adapt< func_t, vec_t, init_funct_t > &) |
Additional Inherited Members | |
![]() | |
virtual void | set_init_function (mm_funct &function) |
Set the function that is used to select the initial population. More... | |
virtual int | mmin (size_t nvar, boost::numeric::ublas::vector< double > &x0, double &fmin, multi_funct &func) |
Calculate the minimum fmin of func w.r.t the array x of size nvar . More... | |
virtual void | print_iter (size_t nvar, double fmin, int iter, boost::numeric::ublas::vector< double > &best_fit) |
Print out iteration information. More... | |
int | set_step (size_t nv, vec2_t &stepv) |
Set the step sizes for the default initialization. | |
![]() | |
mmin_base (const mmin_base< multi_funct, multi_funct, boost::numeric::ublas::vector< double > > &mb) | |
Copy constructor. | |
int | set_verbose_stream (std::ostream &out, std::istream &in) |
Set streams for verbose I/O. More... | |
virtual int | mmin_de (size_t nvar, boost::numeric::ublas::vector< double > &x, double &fmin, multi_funct &func, multi_funct &dfunc) |
Calculate the minimum min of func w.r.t. the array x of size nvar with gradient dfunc . | |
int | print_iter (size_t nv, vec2_t &x, double y, int iter, double value, double limit, std::string comment) |
Print out iteration information. More... | |
const char * | type () |
Return string denoting type ("mmin_base") | |
mmin_base< multi_funct, multi_funct, boost::numeric::ublas::vector< double > > & | operator= (const mmin_base< multi_funct, multi_funct, boost::numeric::ublas::vector< double > > &mb) |
Copy constructor from operator=. | |
![]() | |
virtual int | initialize_population (size_t nvar, boost::numeric::ublas::vector< double > &x0) |
Initialize a population of random agents. | |
virtual std::vector< int > | pick_unique_agents (int nr, size_t x) |
Pick number of unique agent id's. More... | |
![]() | |
boost::numeric::ublas::vector< double > | population |
Vector containing the population. More... | |
ubvector | fmins |
Vector that keeps track of the function values. | |
mm_funct * | rand_init_funct |
Function that is used to produce random init variables. More... | |
rng_gsl | gr |
Random number generator. | |
std::vector< double > | step |
Step size for initialization. | |
![]() | |
std::ostream * | outs |
Stream for verbose output. | |
std::istream * | ins |
Stream for verbose input. | |
Documentation generated with Doxygen. Provided under the
GNU Free Documentation License (see License Information).