Simulated Binary Crossover

Simulated Binary Crossover #

File position: /EMOC/src/operator/sbx.h and /EMOC/src/operator/sbx.cpp

void SBX(Individual* parent1, Individual* parent2, Individual* offspring1, Individual* offspring2, std::vector<double>& lower_bound, std::vector<double>& upper_bound, CrossoverParameter& cross_para)

Do the simulated binary crossover based on parent1 and parent2, the results are stored in offspring1 and offspring2.

Parameter:
parent1: Individual*, default=None
    The pointer to the first parent individual to do simulated binary crossover.

parent2: Individual*, default=None
    The pointer to the second parent individual to do simulated binary crossover.

offspring1: Individual*, default=None
    The pointer to the first offspring individual of simulated crossover results. The memory of the offspring need to be allocated outside the function.

offspring2: Individual*, default=None
    The pointer to the second offspring individual of simulated crossover 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