Print

Print


It's not in the manual, it's at the top of the Javadoc for
FloatVectorSpecies
<https://cs.gmu.edu/~eclab/projects/ecj/docs/classdocs/ec/vector/FloatVectorSpecies.html>
.

On Wed, Jun 3, 2015 at 9:08 PM, Sean Luke <[log in to unmask]> wrote:

> I don't see in the documentation where it says that standard deviation is
> scaled.  Could you point it out?  Please use the current PDF of the manual
> on the SVN repository.
>
> Sean
>
> On Jun 3, 2015, at 5:04 PM, Eric Scott <[log in to unmask]> wrote:
>
> > 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/
>



-- 

Ph.D student in Computer Science
George Mason University
http://mason.gmu.edu/~escott8/