private async void RunOptimizer([NotNull] object sender, [NotNull] RoutedEventArgs args) { await Task.Run(() => { var parameters = new GeneticAlgorithmParameters { CrossoverRate = 0.85, ElitismRate = 0.1, Generations = 300, MutationRate = 0.7, PopulationSize = 50 }; var optimizer = new GeneticCompoundFDPOptimizer(parameters); optimizer.GenerationExtincts += OnGenerationExtincts; optimizer.Run(); optimizer.GenerationExtincts -= OnGenerationExtincts; PrintChromosomes(optimizer); void OnGenerationExtincts(int generation) { Dispatcher.Invoke(() => { FeedbackLabel.Text = $"Generation {generation}/{parameters.Generations}"; GenerationResult.Text = PrintChromosomes(optimizer); }); } }); }
private void Run_Optimizer(object sender, RoutedEventArgs e) { var parameters = new GeneticAlgorithm.GeneticAlgorithmParameters { CrossoverRate = 0.85, ElitismRate = 0.1, Generations = 300, MutationRate = 0.7, PopulationSize = 50 }; var optimizer = new GeneticCompoundFDPOptimizer(parameters); optimizer.GenerationExtincts += (generation) => { Console.WriteLine("Generation {0}", generation); PrintChromosomes(optimizer); }; optimizer.Run(); Console.WriteLine("Last generation"); PrintChromosomes(optimizer); }
private void Run_Optimizer(object sender, RoutedEventArgs e) { var parameters = new GeneticAlgorithm.GeneticAlgorithmParameters { CrossoverRate = 0.85, ElitismRate = 0.1, Generations = 300, MutationRate = 0.7, PopulationSize = 50 }; var optimizer = new GeneticCompoundFDPOptimizer(parameters); optimizer.GenerationExtincts += (generation) => { Console.WriteLine("Generation {0}", generation); PrintChromosomes(optimizer); }; optimizer.Run(); Console.WriteLine("Last generation"); PrintChromosomes(optimizer); }