protected virtual IEvolvable crossover(IEvolvable other) { EvolvablePopulation mate = (EvolvablePopulation)other; EvolvablePopulation child = (EvolvablePopulation)(this.Fitness > mate.Fitness ? this.Clone() : other.Clone()); foreach (IEvolvable individual in mate.individuals) { child.individuals.Add(individual.Clone()); } return(child); }
public EvolvablePopulation(EvolvablePopulation original) : base(original) { construct(original.ParentPopulation, original.EvolveMutations, original.EvolveCrossovers, original.EvolveFitnessEvaluations, original.fitnessHistory); }