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