Sender: |
|
Date: |
Fri, 3 Feb 2006 10:03:24 -0500 |
MIME-version: |
1.0 (Apple Message framework v746.2) |
Reply-To: |
|
Content-type: |
text/plain; charset=US-ASCII; delsp=yes; format=flowed |
Subject: |
|
From: |
|
In-Reply-To: |
|
Content-transfer-encoding: |
7bit |
Comments: |
|
Parts/Attachments: |
|
|
500 is not all that big. Is ECJ slowing down or are you just not
converging? Could it be that at larger lengths your problem becomes
harrier?
As a rule of thumb, the mutation probability is often set to 1/L,
where L is the length of your genome. But that shouldn't create
stagnation in your case.
ECJ's default mutation pipeline for integers is just integer
randomization; you might think about making a smarter mutator for
your problem.
On Feb 3, 2006, at 9:02 AM, Sandeep Mulgund wrote:
> 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
|
|
|