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)); }
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)); }