proc stepsUp()
populationcreatPopulation(); //Create initial population.
archivecreatFront(); //Create a external archive for storing non-dominated solutions.
while! StopCondition()//Termination condition.
  for  individuals1  to  population.Size
   //Select the neighbors for the current individual (MOORE is adopted).
   neighborhoodselection(neighborhood);
   //Select two parent individuals from the neighbors.
   parent1selection(neighborhood);
   parent2selection(neighborhood);
   //Make sure the two parent individuals are different.
   while  parent1==parent2
    parent2selection(neighborhood);
   
   //Crossover operator with DE strategy and Pseudocode 2 presents
   the detailed operation.
   offspringcrossoverInDE(position(individual),position(parent1),
   position(parent2));
   offspringMutation(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);
  
  populationreplaceIndividuals(population, archive); //Feedback mechanism.
end_proc stepsUp;
Pseudocode 1: DECell pseudocode.