/// <summary> /// Uruchamianie Algorytmu Genetycznego /// </summary> private void StartGA() { RunGA(() => { //m_sampleController.Reset(); m_sampleContext.Population = new Population(Convert.ToInt32(PopulationMinUpDown.Value), Convert.ToInt32(PopulationMaxUpDown.Value), m_sampleController.CreateChromosome());//new IChromosome.BinaryChromosomeBase()); m_sampleContext.Population.GenerationStrategy = m_generationStrategy; m_ga = new MyGeneticAlgorithm(m_sampleContext.Population, m_fitness, m_selection, m_crossover, m_mutation); m_ga.CrossoverProbability = 0.75f; //Convert.ToSingle(hslCrossoverProbability.Value); m_ga.MutationProbability = Convert.ToSingle(MutationProbTrackbar.Value); // przechwycenie mutacji m_ga.Reinsertion = m_reinsertion; m_ga.Termination = m_termination; /*m_ga.Termination = new Termination( * if (TimeThresholdRadioBtn) m_termination = new TimeEvolvingTermination(); * else m_termination = new GenerationNumberTermination());*/ m_sampleContext.GA = m_ga; m_ga.GenerationRan += delegate { Gtk.Application.Invoke(delegate { m_sampleController.Update(); }); }; m_sampleController.ConfigGA(m_ga); m_ga.Start(); }); }