private static ChromosomeParameters MutateParameters(ChromosomeParameters parameters)
    {
        double[] param = parameters.ToArray();
        for (int i = 0; i < param.Length; i++)
        {
            param[i] = MutateParameter(param[i], 0, 1);
        }

        return(new ChromosomeParameters(param));
    }
Example #2
0
    public static ChromosomeParameters CrossParameters(ChromosomeParameters parameters1, ChromosomeParameters parameters2)
    {
        double[] p1  = parameters1.ToArray();
        double[] p2  = parameters2.ToArray();
        double[] res = new double[p1.Length];
        for (int i = 0; i < p1.Length; i++)
        {
            if (GenesManager.r.Next(2) == 0)
            {
                res[i] = p1[i];
            }
            else
            {
                res[i] = p2[i];
            }
        }

        return(new ChromosomeParameters(res));
    }