Esempio n. 1
0
        /// <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();
            });
        }