Beispiel #1
0
        public static void testInsertion()
        {
            Simulation       si = new Simulation(new SnakeGame(), 50);
            ObservationSaver os = new ObservationSaver(si);

            os.SavePopulation();
        }
Beispiel #2
0
        private void goButton_Click(object sender, EventArgs e)
        {
            int runs       = getRuns();
            int iterations = getIterations();

            if (runs == -1 || iterations == -1)
            {
                return;
            }
            string[] attributeValues = new string[] {
                textBox_populationSize.Text,
                textBox_crossoverBredAmount.Text,
                textBox_mutateAfterCrossoverAmount.Text,
                textBox_mutationRate.Text,
                textBox_allowSinglePointCrossover.Text,
                textBox_allowTwoPointCrossover.Text,
                textBox_allowUniformCrossover.Text,
                comboBox_replacementRule.SelectedIndex.ToString(),
                textBox_initialMutation.Text,
                textBox_initialSimilarity.Text
            };
            GANNAI.ConfigurationParser confParser = new ConfigurationParser(attributeValues);
            double[] c;
            while ((c = confParser.getNextConfiguration()) != null)
            {
                simulation = new Simulation(game, (int)c[0], c[1], c[2], c[3], (int)c[4], (int)c[5], (int)c[6], (int)c[7], c[8], c[9]);
                for (int i = 0; i < runs; i++)
                {
                    if (saveToDBButton.Checked)
                    {
                        obs = new ObservationSaver(simulation);
                    }
                    StartTraining(iterations);
                    progressBar1.Value = (int)(((confParser.getProgress() * (i + 1)) / runs) * 100);
                    if (saveToDBButton.Checked)
                    {
                        obs.SaveBestBitstring(simulation.GetBest().Chromosome.Bitstring, simulation.GetBest().GetFitness());
                    }
                }
                PrintFitnessValues();
                visualizeButton.Enabled   = true;
                generationCountLabel.Text = "Generation No: " + simulation.Population.Generation.ToString();
                diversityLabel.Text       = "Diversity: " + simulation.Population.MeasureDiversity().ToString();

                //System.Console.WriteLine(simulation.Population.GetDiversityMeasurements().ToString());

                //foreach(KeyValuePair<string, double> entry in simulation.Population.GetDiversityMeasurements()) {
                //    Console.WriteLine(String.Format("{0}: {1}", entry.Key, entry.Value));
                //}
            }
        }