1. Repeat 2. for i ← 1 to nPop do 3. initialize(pop(i)); 4. evaluate (pop(i)); 5. structure(pop(i)); 6. repeat 7. for j ← 1 to crossRate*popSize do 8. (ind1,ind2) ← selectedParents(pop(i)); 9. newInd ← crossover(ind1,ind2); 10. if λ • mutatioRate then 11. newInd ← mutation(newInd); 12. evaluate(newInd); 13. insert(newInd, pop(i)); 14. end for 15. structure (pop(i)); 16. until convergence(pop(i)); 17. executeMigration(pop(i),pop(i+1)); 18. until stopCriterion; |