| 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; |