The problem I'm working on has gene strings that can vary from 50-500 fixed-range integers in length. I'm finding that we get pretty good results and convergence rate out of our GA with small genomes, but at the upper end of the range things go nowhere fast. Our GA is configured using the same pipeline and such as one of the example problems:
pop.subpops = 1
pop.subpop.0 = ec.Subpopulation
pop.subpop.0.size = 100
pop.subpop.0.duplicate-retries = 0
pop.subpop.0.fitness = ec.simple.SimpleFitness
pop.subpop.0.species.crossover-type = one
pop.subpop.0.species.crossover-prob = 0.8
pop.subpop.0.species.mutation-prob = 0.04
pop.subpop.0.species.pipe = ec.vector.breed.VectorMutationPipeline
pop.subpop.0.species.pipe.source.0 = ec.vector.breed.VectorCrossoverPipeline
pop.subpop.0.species.pipe.source.0.source.0 = ec.select.TournamentSelection
pop.subpop.0.species.pipe.source.0.source.1 = ec.select.TournamentSelection
pop.subpop.0.species.pipe.source.0.source.0.size = 2
pop.subpop.0.species.pipe.source.0.source.1.size = 2
select.tournament.size = 2
state = ec.simple.SimpleEvolutionState
pop = ec.Population
init = ec.simple.SimpleInitializer
finish = ec.simple.SimpleFinisher
breed = ec.simple.SimpleBreeder
Min/max gene sizes and genome size are set at runtime. Any suggestions on what I can do to improve performance with very large genomes?
Thanks,
Sandeep