Print

Print


Martin V. wrote:

> - Do all of 7 functions have minimum at 0.0?
Many of the functions in ECSuite are inverted so that ECJ can perform 
maximization instead of minimization. You can see how the functions are 
implemented and look at the fitness of the ideal individuals inside the 
evaluate() method in ec/app/ecsuite/ECSuite.java.

There you can see that with the Rosenbrock, Rastrigrin, Sphere, and Step 
problem types, an individual's fitness is ideal when the fitness is 
equal to 0.0f. Noisy quartic, Booth, and Griewangk have no ideal fitness 
value defined.
> - What is the probability of crossover (one-type)? No parameter is 
> specified in ecsuite.params, like the one for mutation probability 
> (0.005).
VectorCrossoverPipeline (which is used in ecsuite.params) grabs 
individuals from the two sources and always performs the crossover. Note 
that there also exists a parameter 
"pop.subpop.0.species.crossover-prob", however it is only for use with 
any-point crossover.
> - How can I find ideal individual (minimum of the function), do I need 
> to change some parameters? Now for rastrigin (default function) I find 
> the best individual have value of about -235 (towards zero is better).
> I have run the evolution few times with random seed but with no luck 
> to get fitnes towards 0. Maybe I need to change mutation probability, 
> the number of generations, the number of individuals, the size of the 
> genome...etc.?
Rastrigin is a function with a lot of local minima. You will have to do 
your own experimentation with the various parameters to find what 
parameters work well. Note that with floating point vectors, you may not 
be able to get exactly 0.0, but approximately 0.0. Actually, in my 
experience, if you see "Found Ideal Individual" on one of the ECSuite 
problems, it is often an indicator that something went wrong...

Try increasing the population size (pop.subpop.0.size). Also, just to 
make sure things are working, you may just want to try the same function 
with a smaller genome size. For example, try 10 genes instead of 50. You 
can adjust the genome size via the genome-size parameter. You might also 
try experimenting with Gaussian mutation instead of reset mutation for 
this problem.

--Chris Vo