コード例 #1
0
        private static void GaussianReal(Chromosome child, Parameters parameters)
        {
            // implemented for real valued encoding

            for (int i = 0; i < child.NoGenes; i++)
            {
                if (ExtendedRandom.NextUniform() < _info.Probability)
                {
                    child.RealGenes[i] = ExtendedRandom.NextNormal(child.RealGenes[i], _info.StandardDeviation);
                    if (child.RealGenes[i] < parameters.EncodingInfo.MinValues[i])
                    {
                        child.RealGenes[i] = parameters.EncodingInfo.MinValues[i];
                    }
                    if (child.RealGenes[i] > parameters.EncodingInfo.MaxValues[i])
                    {
                        child.RealGenes[i] = parameters.EncodingInfo.MaxValues[i];
                    }
                }
            }
        }