Differential Evolution
#
File position: /EMOC/src/operator/de.h and /EMOC/src/operator/de.cpp
void DE(Individual *parent1, Individual *parent2, Individual *parent3, Individual *offspring, std::vector<double>& lower_bound, std::vector<double>& upper_bound, CrossoverParameter& cross_para)
Do the differential evolution on parent1
, parent2
and parent3
, the results are stored in offspring
.
Parameter: |
parent1: Individual*, default=None     The pointer to the first parent individual to do differential evolution.
parent2: Individual*, default=None     The pointer to the second parent individual to do differential evolution.
parent3: Individual*, default=None     The pointer to the third parent individual to do differential evolution.
offspring: Individual*, default=None     The pointer to the offspring individual of differential evolution results. The memory of the offspring need to be allocated outside the function.
lower_bound: std::vector<double>, default=None     The lower boundary of decision variables.
upper_bound: std::vector<double>, default=None     The upper boundary of decision variables.
cross_para: CrossoverParameter, default=None     The parameter of this crossover. The type CrossoverParameter is just a simple structure which has three member variables (i.e., the crossover probability, the distribution index1 and the distribution index2). |
Returns: |
void
|