proc stepsUp() |
population← creatPopulation(); //Create initial population. |
archive← creatFront(); //Create a external archive for storing non-dominated solutions. |
while! StopCondition()//Termination condition. |
for individuals←1 to population.Size |
//Select the neighbors for the current individual (MOORE is adopted). |
neighborhood← selection(neighborhood); |
//Select two parent individuals from the neighbors. |
parent1← selection(neighborhood); |
parent2← selection(neighborhood); |
//Make sure the two parent individuals are different. |
while parent1==parent2 |
parent2← selection(neighborhood); |
|
//Crossover operator with DE strategy and Pseudocode 2 presents |
the detailed operation. |
offspring← crossoverInDE(position(individual),position(parent1), |
position(parent2)); |
offspring← Mutation(offspring); // Mutation. |
evalutionFitness(offspring); // Evaluate the offspring individuals. |
// The superior offspring replaces the present individual. |
insert(position(individual), offspring, population); |
// Put the non-dominated individuals into the external archive. |
addToArchive(individual); |
|
population←replaceIndividuals(population, archive); //Feedback mechanism. |
|
end_proc stepsUp; |