static private List <Genome> GeneratePopulation(AutoevolutionaryGeneticAlgorithmParameters <T, U> parameters, int cant)
        {
            var population = new List <Genome>();

            for (int i = 0; i < parameters.MaxPopulation; i++)
            {
                var genDesc = parameters.IndividualFabrik.GetGeneticDescriptor();
                genDesc.AddRange(parameters.EvolutionaryInformationFabrik.GetGeneticDescriptor());

                var gens = parameters.IndividualFabrik.GetRandomGenList();
                gens.AddRange(parameters.EvolutionaryInformationFabrik.GetRandomGenList());

                population.Add(new Genome(genDesc, gens));
            }
            return(population);
        }
 public AutoEvolutionaryGeneticAlgorithm(AutoevolutionaryGeneticAlgorithmParameters <T, U> parameters)
     : this(parameters, GenerateInitialPopulation(parameters), 0)
 {
 }
 static private List <Genome> GenerateInitialPopulation(AutoevolutionaryGeneticAlgorithmParameters <T, U> parameters)
 {
     return(GeneratePopulation(parameters, parameters.MaxPopulation));
 }
 public AutoEvolutionaryGeneticAlgorithm(AutoevolutionaryGeneticAlgorithmParameters <T, U> parameters, List <Genome> generation, int generationNumber)
     : base(parameters)
 {
     Population       = generation.Select(g => new AutoEvolutionaryGenomeWarper <T, U>(parameters.IndividualFabrik, parameters.EvolutionaryInformationFabrik, g, parameters.InitialLives)).ToList();
     GenerationNumber = generationNumber;
 }