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; }