(1) | FOR ALL individuals DO Initialize() END FOR; |
(2) | FOR ALL individuals DO Evaluate()=>fitness END FOR; |
(3) | Sort(individuals according to fitness); |
(4) | IF terminal condition is met THEN STOP END IF; |
(5) | FOR ALL individuals DO |
| SELECT Rand() OF |
CASE a DO Mutate()=> new_individuals; |
CASE b DO Symmetric_crossover(i-th, (i+1)th individuals) => new_individuals; |
CASE c DO One_point_crossover(i-th, (i+1)th individuals) => new_individuals; |
CASE d DO Re-generating() => new_individuals; |
END SELECT; |
END FOR; |
(6) | FOR ALL new_individuals DO |
New ES_algorithm_object with related ES_individuals and ES_fitness arrays |
//for each GPA individual new independent parameter optimizer is created |
FOR ALL ES_individuals DO Initialize() END FOR; |
| Evaluate() => ES_fitness; |
FOR ALL ES_cycles DO |
FOR ALL ES_individuals DO |
| Evaluate() => ES_fitness; |
END FOR; |
FOR ALL ES_individuals DO |
| Intelligent_crossover() => new_ES_individuals |
| Evaluate() => new_ES_fitness; |
END FOR; |
FOR ALL ES_individuals DO |
| IF new_ES_fitness < ES_fitness THEN |
| ES_individual = new_ES_individual; |
| ES_fitness = new_ES_fitness; |
END IF; |
END FOR; |
Sort(ES_individuals, ES_fitness); |
END FOR; |
new_individual = ES_individual[0]; new_fitness = ES_fitness[0]; |
END FOR; |
(7) | FOR ALL individuals DO IF new_fitness < fitness THEN |
| individual = new_individual; |
| fitness = new_fitness; |
| END IF; |
| END FOR; |
(8) | GOTO 3); |