Beispiel #1
0
Datei: GA.cs Projekt: rsppv/Neuro
        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>();
        }
Beispiel #2
0
Datei: GA.cs Projekt: rsppv/Neuro
        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>();
        }