public void CalcFitness(IReadOnlyPopulation pop) { foreach (Individual i in pop) { i.Fitness = CalcFitness(i); } }
public void Initialize(IReadOnlyPopulation population) { if (!population.Frozen) { throw new ArgumentException(); } individuals = population.ReadOnlyIndividuals; double adjustedTotalFitness = population.TotalFitness - individuals.Count * population.MinFitness; normalizedProbabilities.Clear(); foreach (Individual individual in individuals) { normalizedProbabilities.Add((individual.Fitness - population.MinFitness) / adjustedTotalFitness); } buildAliasTables(normalizedProbabilities); }