morinim / vita

Vita - Genetic Programming Framework
Mozilla Public License 2.0
35 stars 6 forks source link

Clone scaling #11

Open morinim opened 7 years ago

morinim commented 7 years ago

Before evaluating an individual, we could check if identical individuals (clones) are already present in the population.

When the number of clones (n) is greater than zero, the actual fitness assigned to the individual is multiplied by S (the parameter is called the clone scaling factor).

While a continous range of values is possible, in many programs S is set either to 1 (no clone scaling) or to 0 (clone extermination).

(from "Evolving Assembly Programs: How Games Help Microprocessor Validation". Corno, Sanchez, Squillero)

Because of the hash table based fitness scoring, in Vita we cannot assign different fitness values to syntactically equivalent individuals.

Anyway the hash table can be augmented with information used to calculate an approximation of n and the evaluator_proxy can be modified to use these information.