Hi
Here's a quote from ec.vector.DoubleVectorIndividual
public void defaultMutate(EvolutionState state, int thread)
{
FloatVectorSpecies s = (FloatVectorSpecies) species;
if (!(s.mutationProbability > 0.0))
return;
MersenneTwisterFast rng = state.random[thread];
if (s.individualGeneMinMaxUsed())
{
if (s.mutationType == FloatVectorSpecies.C_GAUSS_MUTATION)
...
So the floating point species has a mutationProbability and a
mutationType. Here are the parameters and their allowed values for
the mutation behaviour:
public final static String P_MUTATIONTYPE = "mutation-type";
public static String P_STDEV = "mutation-stdev";
public final static String V_RESET_MUTATION = "reset";
public final static String V_GAUSS_MUTATION = "gauss";
public final static int C_RESET_MUTATION = 0;
public final static int C_GAUSS_MUTATION = 1;
public final static String P_MINGENE = "min-gene";
public final static String P_MAXGENE = "max-gene";
public final static String P_OUTOFBOUNDS_RETRIES = out-of-bounds-retries";
Gabriel
On Wed, 25 Jul 2007, Ivar Nastad wrote:
> this could be basic, but bear with me:
>
> my current ECJ configuration uses a fixed mutation rate for the mutation
> operator. in ES theory, the mutation rate is used in binary search spaces,
> determining the probability of flipping e.g. a 1-bit in a parental vector
> y. In my real-valued search space the mutation strength, i.e. the standard
> deviation of a single component of the mutation vector, is used in the
> mutation operator. to quote H-P Schwefel: "The mutation rate in binary
> search spaces is viewed as the pendant to the mutation strength in real-
> valued search spaces".
>
> my question is therefore:
> is the use of a mutation rate in a real-valued search space "ok"?
> is there a possibility in ECJ to replace the mutation rate with the
> mutation strength?
>
> I'm also looking into the concept of self-adapting mutation strength/rate,
> so I`m grateful for any useful information related to this in an ECJ
> context.
>
> thanks,
> Ivar Nastad
> NTNU
>
|