public NeatEvolutionAlgorithm <NeatGenome> CreateEvolutionAlgorithm(IGenomeFactory <NeatGenome> genomeFactory, List <NeatGenome> genomeList) { IDistanceMetric distanceMetric = new ManhattanDistanceMetric(1.0, 0.0, 10.0); ISpeciationStrategy <NeatGenome> speciationStrategy = new KMeansClusteringStrategy <NeatGenome>(distanceMetric); IComplexityRegulationStrategy complexityRegulationStrategy = ExperimentUtils.CreateComplexityRegulationStrategy(_complexityRegulationStr, _complexityThreshold); NeatEvolutionAlgorithm <NeatGenome> ea = new NeatEvolutionAlgorithm <NeatGenome>(_eaParams, speciationStrategy, complexityRegulationStrategy); // Create black box evaluator SimpleEvaluator evaluator = new SimpleEvaluator(_optimizer); IGenomeDecoder <NeatGenome, IBlackBox> genomeDecoder = CreateGenomeDecoder(); IGenomeListEvaluator <NeatGenome> innerEvaluator = new UnityParallelListEvaluator <NeatGenome, IBlackBox>(genomeDecoder, evaluator, _optimizer); IGenomeListEvaluator <NeatGenome> selectiveEvaluator = new SelectiveGenomeListEvaluator <NeatGenome>(innerEvaluator, SelectiveGenomeListEvaluator <NeatGenome> .CreatePredicate_OnceOnly()); //ea.Initialize(selectiveEvaluator, genomeFactory, genomeList); ea.Initialize(innerEvaluator, genomeFactory, genomeList); return(ea); }
public void WillReturnHigherScoreForBetterBoard() { int[,] data1 = new int[,] { {9,6,2,7,1,5,8,3,4}, {4,7,8,9,6,3,5,1,2}, {3,1,5,4,2,8,6,9,7}, {1,2,7,6,5,9,3,4,8}, {8,9,4,2,3,1,7,5,6}, {5,3,6,8,7,4,9,2,1}, {6,5,3,1,4,7,2,8,9}, {7,8,1,3,9,2,4,0,5}, {2,4,9,5,8,6,1,7,0} }; int[,] data2 = new int[,] { {9,6,2,7,1,5,8,3,4}, {4,7,8,9,6,3,5,1,2}, {3,1,5,4,2,8,6,9,7}, {1,2,7,6,5,9,3,4,8}, {8,9,4,2,3,1,7,5,6}, {5,3,6,8,7,4,9,2,1}, {6,5,3,1,4,7,0,8,9}, {7,8,1,3,9,2,4,0,5}, {2,4,9,5,8,6,1,7,0} }; var eval = new SimpleEvaluator(new SimpleMoveFinder()); var score1 = eval.GetScore(new Board(data1)); var score2 = eval.GetScore(new Board(data2)); Assert.True(score1.CompareTo(score2) > 0); }
static void Main(string[] args) { //TODO: akolyada: introduce DI var se = new SimpleEvaluator(); IExpressionsReader rdr = new FileExpressionsReader("../../input_numbers.txt"); List <Tuple <string, decimal> > results = new List <Tuple <string, decimal> >(); foreach (string expression in rdr) { Console.Write($"{expression} = "); string expr = expression; var res = se.Evaluate(expr); results.Add(new Tuple <string, decimal>(expr, res)); Console.WriteLine(res); } File.WriteAllLines($"../../calculationResults_{DateTime.Now.Ticks}.txt", results.Select(n => $"{n.Item1} = {n.Item2}").ToArray()); Console.WriteLine(); Console.Write("Press any key..."); Console.ReadKey(); }
public NeatEvolutionAlgorithm<NeatGenome> CreateEvolutionAlgorithm(IGenomeFactory<NeatGenome> genomeFactory, List<NeatGenome> genomeList) { IDistanceMetric distanceMetric = new ManhattanDistanceMetric(1.0, 0.0, 10.0); ISpeciationStrategy<NeatGenome> speciationStrategy = new KMeansClusteringStrategy<NeatGenome>(distanceMetric); IComplexityRegulationStrategy complexityRegulationStrategy = ExperimentUtils.CreateComplexityRegulationStrategy(_complexityRegulationStr, _complexityThreshold); NeatEvolutionAlgorithm<NeatGenome> ea = new NeatEvolutionAlgorithm<NeatGenome>(_eaParams, speciationStrategy, complexityRegulationStrategy); // Create black box evaluator SimpleEvaluator evaluator = new SimpleEvaluator(_optimizer); IGenomeDecoder<NeatGenome, IBlackBox> genomeDecoder = CreateGenomeDecoder(); IGenomeListEvaluator<NeatGenome> innerEvaluator = new UnityParallelListEvaluator<NeatGenome, IBlackBox>(genomeDecoder, evaluator, _optimizer); IGenomeListEvaluator<NeatGenome> selectiveEvaluator = new SelectiveGenomeListEvaluator<NeatGenome>(innerEvaluator, SelectiveGenomeListEvaluator<NeatGenome>.CreatePredicate_OnceOnly()); //ea.Initialize(selectiveEvaluator, genomeFactory, genomeList); ea.Initialize(innerEvaluator, genomeFactory, genomeList); return ea; }
public void Setup() { var se = new SimpleEvaluator(new SilentExpressionEvaluator()); }