Пример #1
0
        public void Play2048PatternTest2()
        {
            var selection            = new EliteSelection();
            var crossover            = new TwoPointCrossover();
            var mutation             = new PartialShuffleMutation();
            var fitness              = new ClosestToMillion();
            var bestChromosomeTodate = new Play2048Chromosome(20, new List <string>()
            {
                "up", "down", "left", "right"
            });
            //bestChromosomeTodate.Pattern = "";
            var population = new Population(4, 5, bestChromosomeTodate);

            var ga = new GeneticAlgorithm(population, fitness, selection, crossover, mutation);

            ga.Termination = new GenerationNumberTermination(1);

            Console.WriteLine("GA running...");
            ga.GenerationRan += Ga_GenerationRan;
            ga.Population.BestChromosomeChanged += Population_BestChromosomeChanged;
            ga.Init();

            //queue up all the patterns...


            Console.WriteLine((bestChromosome as Play2048Chromosome).Pattern);
            Console.WriteLine("Best solution found has {0} fitness was born in generation {1}", ga.BestChromosome.Fitness, bestGen);
        }
        public void Play2048PatternTest()
        {
            var selection  = new EliteSelection();
            var crossover  = new TwoPointCrossover();
            var mutation   = new PartialShuffleMutation();
            var fitness    = new ClosestToMillion();
            var chromosome = new Play2048Chromosome(20, new List <string>()
            {
                "up", "down", "left", "right"
            });
            var population = new Population(22, 42, chromosome);

            var ga = new GeneticAlgorithm(population, fitness, selection, crossover, mutation);

            ga.Termination = new GenerationNumberTermination(10);

            Console.WriteLine("GA running...");
            ga.GenerationRan += Ga_GenerationRan;
            ga.Population.BestChromosomeChanged += Population_BestChromosomeChanged;

            Task.Run(async() => { await Start(ga); }).Wait();


            GA.GetSingleton().NextPattern = string.Empty;

            Console.WriteLine((bestChromosome as Play2048Chromosome).Pattern);
            Console.WriteLine("Best solution found has {0} fitness was born in generation {1}", ga.BestChromosome.Fitness, bestGen);
        }
Пример #3
0
        public void Play2048PatternTest()
        {
            var selection  = new EliteSelection();
            var crossover  = new CutAndSpliceCrossover();
            var mutation   = new PartialShuffleMutation();
            var fitness    = new ClosestToMillion();
            var chromosome = new Play2048Chromosome(20, new List <string>()
            {
                "up", "down", "left", "right"
            });
            var population = new CustomPopulation(2, 4, chromosome);

            var ga = new GeneticAlgorithm(population, fitness, selection, crossover, mutation);

            ga.Termination = new GenerationNumberTermination(10);

            Console.WriteLine("GA running...");
            ga.GenerationRan += Ga_GenerationRan;


            Console.WriteLine("Best solution found has {0} fitness was born in generation {1}", ga.BestChromosome.Fitness, bestGen);
        }