Hi all,
I've just started using PyEvolve (which is fantastic!), but I have a question regarding the elitism options. I have a search configured using the following options:
ga = GSimpleGA.GSimpleGA(genome)
pop = ga.getPopulation()
pop.scaleMethod.set(Scaling.SigmaTruncScaling)
ga.selector.set(Selectors.GRankSelector)
ga.setGenerations(500)
ga.setElitism(True)
ga.setElitismReplacement(20)
ga.setPopulationSize(200)
ga.setMutationRate(.05)
, and the results from my last three generations look like this:
Gen. 480 (96.00%): Max/Min/Avg Fitness(Raw) [1264100392.79(0.00)/264100392.79(-1000000000.00)/939100392.79(-325000000.00)]
Gen. 490 (98.00%): Max/Min/Avg Fitness(Raw) [1255293466.96(0.00)/255293466.96(-1000000000.00)/935293466.96(-320000000.00)]
Gen. 500 (100.00%): Max/Min/Avg Fitness(Raw) [1237307660.64(0.00)/237307660.64(-1000000000.00)/927307660.64(-310000000.00)]
My question is: if elitism is turned on, how is it possible that the Max Fitness is decreasing from one generation to the next? Doesn't elitism automatically promote the best individuals to the next generation?
Any help would be greatly appreciated!
Chris