Bulk Fitness Function not evaluating entire population?
A follow up to my previous question. As I understand, the purpose of BulkFitnessFunction is to calculate a fitness relative to other individuals. So far so good.
But, as far as I can see, it is never the case (except in the very 1st iteration) that the ENTIRE population is passed to the BulkFitnessFunction’s evaluate(…) method. Instead, the NEW individuals are passed
(resulting from mutation and crossover). When I call a_chromosomes.getChromosomes(), I always get some value which is a proportion of the total population set…now, this would make sense for a regular fitness function, because you want to avoid evaluating the
individuals which did not change. However, with a bulk fitness function, if there are new individuals, this might have an impact on the fitness of the previously existing, non-changed individuals. It seems that BulkFitnessFunction, after the 1st
iteration, only evaluates the NEW individuals relative to each other, not ALL of the individuals (including new and preserved old) relative to each other. This sort of defeats the purpose of the BulkFitnessFunction for some (many?) applications.
Is my conclusion correct or am I wrong somewhere?
Is there some method then to gain access to the ENTIRE population in the BulkFitnessFunction’s evaluate(…) method?
Does the call to getPopulation() in Genotype get the entire population? Is the solution then to pass a reference to the Genotype object I am calling evolve() on to my BulkFitnessFunction implemetantion, so that the evaluate(…)
method can then have access to the entire population, and not just the newly created individuals?