public void CalcFitness(IReadOnlyPopulation pop)
 {
     foreach (Individual i in pop)
     {
         i.Fitness = CalcFitness(i);
     }
 }
Ejemplo n.º 2
0
        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);
        }