All good questions. That's why I was looking at the code -- to see how exactly "the standard deviation is scaled to reflect each gene's range." I can specify mutation-stdev's manually for each gene in my application, not a problem. I suggest that the sentence about scaling be removed from the JavaDoc, as it seems to be erroneous. Thanks! Siggy On Wed, Jun 3, 2015 at 3:38 PM, Sean Luke <[log in to unmask]> wrote: > No, wait, it's *not* a bug. ECJ's stdev is not scaled to fit in bounds. > You'd have to say: > > >> pop.subpop.0.species.mutation-stdev.0 = 0.0001 > > [or whatever] > > I understand your intuition here, but stdev is a fixed quantity. Imagine > if someone had the stdev set and then they needed to change the min/max > gene, and found that the stdev magically changed as well. And if it were a > relative quantity, what min/max width range would it be relative *to*? > > Maybe I might be able to add some parameter like mutation-rstdev which > sets the stdev on a per-gene basis based on the min and max genes. But > you'd need to give me exactly what it should be relative to and how you > think it should be scaled. > > Sean > > On Jun 3, 2015, at 8:16 AM, Sean Luke <[log in to unmask]> wrote: > > > Then that must be a bug. I can look into it, but if you want to beat me > to it, you might check out FloatVectorSpecies. > > > > Sean > > > > On Jun 3, 2015, at 4:20 AM, Eric Scott <[log in to unmask]> wrote: > > > >> Dear Wizards, > >> > >> The JavaDoc for FloatVectorSpecies claims that when using Guassian > mutation, "if the gene-by-gene range is used, than the standard deviation > is scaled to reflect each gene's range." > >> > >> As far as I can tell, however, this doesn't actually happen. Stepping > through the debugger with the following mutation parameters, I can watch > DoubleVectorIndividual.gaussianMutation() as it samples from a std of 0.1 > when mutation gene 0. I would have expected it to scale the std to be > 0.0001 or such. > >> > >> pop.subpop.0.species.min-gene = -1.0 > >> pop.subpop.0.species.max-gene = 1.0 > >> pop.subpop.0.species.min-gene.0 = -.001 > >> pop.subpop.0.species.max-gene.0 = .001 > >> pop.subpop.0.species.mutation-type = gauss > >> pop.subpop.0.species.mutation-stdev = 0.1 > >> pop.subpop.0.species.mutation-bounded = true > >> pop.subpop.0.species.mutation-prob = 0.03 > >> > >> Is this an error in the documentation? Or am I missing something? > >> > >> Thanks, > >> Siggy > >> > >> -- > >> > >> Ph.D student in Computer Science > >> George Mason University > >> http://mason.gmu.edu/~escott8/ > -- Ph.D student in Computer Science George Mason University http://mason.gmu.edu/~escott8/