Example #1
0
        public void ItCanAdvanceToTheNextGeneration()
        {
            var population = new OrderedPopulation(GATestHelper.GetTravelingSalesmanDefaultConfiguration(), _pool, _possibleValues);
            var nextGen    = population.Advance();

            Assert.AreEqual(0, population.GenerationNumber);
            Assert.AreEqual(1, nextGen.GenerationNumber);
        }
Example #2
0
        public void ItKeepsElities()
        {
            var toKeep = GATestHelper.GetRandomInteger(1, 99);
            var config = GATestHelper.GetTravelingSalesmanDefaultConfiguration();

            config.ElitismRate = 0.01 * toKeep;

            var population = new OrderedPopulation(config, _pool, _possibleValues);
            var nextGen    = population.Advance();

            Assert.IsTrue(nextGen.Chromosomes.Where(o => o.GenerationNumber == 1).Count() > 0);
        }
Example #3
0
        public void ItAllowsDuplicates()
        {
            var config     = GATestHelper.GetTravelingSalesmanDefaultConfiguration();
            var population = new OrderedPopulation(config, _pool, _possibleValues);

            var nextGen = population.Advance();
            var hashset = new HashSet <string>();

            foreach (var chromosome in nextGen.Chromosomes)
            {
                hashset.Add(chromosome.ToString());
            }

            Assert.AreNotEqual(config.PopulationSize, hashset.Count());
        }
Example #4
0
        public void ItCanRetireChromosomes()
        {
            var config = GATestHelper.GetTravelingSalesmanDefaultConfiguration();

            config.RetirementStrategy = RetirementStrategy.MaxAge;
            config.ElitismRate        = 0.10;
            config.MaxRetirement      = 1;
            config.MaxGenerations     = 4;
            config.PopulationSize     = 10;

            var population = new OrderedPopulation(config, _pool, _possibleValues);

            var nextGen = population.Advance();

            Assert.IsTrue(nextGen.Retired.Count() > 0);
        }
Example #5
0
        public void ItCanAdvanceToTheNextGenerationViaImmigration()
        {
            var config = GATestHelper.GetTravelingSalesmanDefaultConfiguration();

            config.CrossoverRate = 0.0;
            config.ElitismRate   = 0.0;

            var population = new OrderedPopulation(config, _pool, _possibleValues);
            var nextGen    = population.Advance();

            Assert.AreEqual(0, population.GenerationNumber);
            Assert.AreEqual(1, nextGen.GenerationNumber);

            foreach (var chromosome in nextGen.Chromosomes)
            {
                Assert.AreEqual(1, chromosome.GenerationNumber);
            }
        }