public Ga(int generationNumber, int populationSize, double crossRate, double mutationRate, ICrossible crossover, ISelectable selection) { if (mutationRate < 0 || mutationRate > 1) { throw new ArgumentOutOfRangeException("mutationRate [0;1]"); } if (crossRate < 0 || crossRate > 1) { throw new ArgumentOutOfRangeException("crossRate [0;1]"); } if (generationNumber == 0) { throw new ArgumentException("Количество поколений должно быть больше нуля"); } if (populationSize % 2 == 1) { throw new ArgumentException("Размер популяции должен быть четным"); } MutationRate = mutationRate; CrossRate = crossRate; PopulationSize = populationSize; GenerationNumber = generationNumber; Crossover = crossover; Selection = selection; Population = new Population(PopulationSize); bests = new List <IIndividual>(); }
public Ga(int generationNumber, int populationSize, double crossRate, double mutationRate, ICrossible crossover, ISelectable selection) { if (mutationRate < 0 || mutationRate > 1) throw new ArgumentOutOfRangeException("mutationRate [0;1]"); if (crossRate < 0 || crossRate > 1) throw new ArgumentOutOfRangeException("crossRate [0;1]"); if (generationNumber == 0) throw new ArgumentException("Количество поколений должно быть больше нуля"); if (populationSize % 2 == 1) throw new ArgumentException("Размер популяции должен быть четным"); MutationRate = mutationRate; CrossRate = crossRate; PopulationSize = populationSize; GenerationNumber = generationNumber; Crossover = crossover; Selection = selection; Population = new Population(PopulationSize); bests = new List<IIndividual>(); }