initialize solution (population_size) |
solution divesificationGeneration(solution) |
evaluate solution, evolution |
solution improvement(solution) |
solutionSet.add(solution) |
while evolution < max_evolution
{
|
// building and insertion of individuals RefSet1 and RefSet2 |
referenceUpdate(true) |
newsolution subsetGeneration |
while newsolution > 0 { |
// update archive and reference sets using RefSet1 and RefSet2 |
referenceUpdate(false)
}
|
if evolution < max_evolution { |
solutionSet.clear |
solution RefSet1 (ref_set1_size) |
solution=improvement(solution) |
evaluate solution, evolution ++ |
solutionSet.add(solution) |
RefSet1.clear |
RefSet2.clear |
// compute the crowding distance assignment of achieve |
//individuals. Then, after sorting the archive, use them to |
//create solutionSet with “insert” individuals |
insert=populationSize/2 |
if insert > (archiveSize), insert= archiveSize |
if insert > (populationSize/2 size(solutionSet)), |
insert=(populationSize/2 size(solutionSet)) |
solutionSet.add (archive(insert)) |
// complete randomly the remaining individuals of solutionSet |
while size(solutionSet) < populationSize/2 { |
solution=divesificationGeneration(solution) |
evaluate solution, evolution |
solution=improvement(solution) |
solutionSet.add(solution) |