AIMA.Core.Search.Local.GeneticAlgorithm.ga C# (CSharp) Метод

ga() приватный Метод

private ga ( Set population, FitnessFunction fitnessFn ) : String
population Set
fitnessFn FitnessFunction
Результат String
        private String ga(Set<String> population, FitnessFunction fitnessFn)
        {
            // new_population <- empty set
            HashSet<String> newPopulation = new HashSet<String>();

            // for i = 1 to SIZE(population) do
            for (int i = 0; i < population.Count; i++)
            {
                // x <- RANDOM-SELECTION(population, FITNESS-FN)
                String x = randomSelection(population, fitnessFn);
                // y <- RANDOM-SELECTION(population, FITNESS-FN)
                String y = randomSelection(population, fitnessFn);
                // child <- REPRODUCE(x, y)
                String child = reproduce(x, y);
                // if (small random probability) then child <- MUTATE(child)
                if (random.nextDouble() <= this.mutationProbability)
                {
                    child = mutate(child);
                }
                // add child to new_population
                newPopulation.Add(child);
            }
            // population <- new_population
            population.clear();
            population.AddRange(newPopulation);

            return retrieveBestIndividual(population, fitnessFn);
        }