{
Collections.shuffle(conf.getGeneticOperators());
BASE_MUTATION_RATE += .001;
if (BASE_MUTATION_RATE >= (double) CHROMOSOME_LENGTH / 2.0 )
BASE_MUTATION_RATE = 1;
IChromosome fittestChromosome = population.getFittestChromosome();
if (killThreads)
{
threads.remove(thread);
thread.interrupt();
}
double fitnessValue = fittestChromosome.getFitnessValue();
if (fitnessValue > bestScores[threadIndex])
{
bestScores[threadIndex] = fitnessValue;
evolutionsSinceDiscovery[threadIndex] = 0;
BASE_MUTATION_RATE = 1;