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/
|