Ejemplo n.º 1
0
        private void GA_Simple_Button_Click(object sender, RoutedEventArgs e)
        {
            GSA.GA.Algorithm.UniformRate    = Double.Parse(CrossOverProbTextBox.Text);
            GSA.GA.Algorithm.MutationRate   = Double.Parse(MutationProbTextBox.Text);
            GSA.GA.Algorithm.TournamentSize = Int32.Parse(TournamentSizeTextBox.Text);
            GSA.GA.Algorithm.Elitism        = ElitismCheckBox.IsChecked.Value;
            GSA.GA.Algorithm.Rnd            = new Random();

            LogTextBox log = new GSA.LogTextBox(LogTextBox);

            String solutionSelected = SolutionTextBox.Text;

            if (validateSol(solutionSelected))
            {
                GSA.GA.FitnessCalc.setSolution(solutionSelected);
                GSA.GA.Population myPop = new GSA.GA.Population(50, true);

                int generationCount = 0;
                while (myPop.getFittest().getFitness() < GSA.GA.FitnessCalc.getMaxFitness())
                {
                    generationCount++;
                    log.Write("Generation: " + generationCount + " Fittest: " + myPop.getFittest().getFitness(), Brushes.Yellow);
                    myPop = GSA.GA.Algorithm.evolvePopulation(myPop);
                }
                log.Write("Solution found!", Brushes.GreenYellow);
                log.Write("Generation: " + generationCount);
                log.Write("Genes:");
                log.Write(myPop.getFittest().ToString());
            }
            else
            {
                log.Write("La solución no es válida, recuerda: 64 bits de 0 y 1", Brushes.Red);
            }
            scrollEl.ScrollToBottom();
        }
Ejemplo n.º 2
0
        private void GA_Simple_Button_Click(object sender, RoutedEventArgs e)
        {
            GSA.GA.Algorithm.UniformRate = Double.Parse(CrossOverProbTextBox.Text);
            GSA.GA.Algorithm.MutationRate = Double.Parse(MutationProbTextBox.Text);
            GSA.GA.Algorithm.TournamentSize = Int32.Parse(TournamentSizeTextBox.Text);
            GSA.GA.Algorithm.Elitism = ElitismCheckBox.IsChecked.Value;
            GSA.GA.Algorithm.Rnd = new Random();

            LogTextBox log = new GSA.LogTextBox(LogTextBox);

            String solutionSelected = SolutionTextBox.Text;
                if (validateSol(solutionSelected)) {
                GSA.GA.FitnessCalc.setSolution(solutionSelected);
                GSA.GA.Population myPop = new GSA.GA.Population(50, true);

                int generationCount = 0;
                while (myPop.getFittest().getFitness() < GSA.GA.FitnessCalc.getMaxFitness()) {
                    generationCount++;
                    log.Write("Generation: " + generationCount + " Fittest: " + myPop.getFittest().getFitness(), Brushes.Yellow);
                    myPop = GSA.GA.Algorithm.evolvePopulation(myPop);
                }
                log.Write("Solution found!", Brushes.GreenYellow);
                log.Write("Generation: " + generationCount);
                log.Write("Genes:");
                log.Write(myPop.getFittest().ToString());
            } else {
                log.Write("La solución no es válida, recuerda: 64 bits de 0 y 1", Brushes.Red);
            }
            scrollEl.ScrollToBottom();
        }