예제 #1
0
        internal void Update(Population population)
        {
            lblGenValue.Text = population.Generation.ToString();
            lblBestValue.Text = population.FitnessStats.Best.ToString();
            lblWorstValue.Text = population.FitnessStats.Worst.ToString();
            lblAvgValue.Text = Math.Round(population.FitnessStats.Average, 2).ToString("0.00");

            lblLastBest.Text = string.Format("({0})", population.FitnessStats.PreviousGenerationsBest.LastOrDefault());
            lblLastWorst.Text = string.Format("({0})", population.FitnessStats.PreviousGenerationsWorst.LastOrDefault());
            lblLastAvg.Text = string.Format("({0:0.00})", Math.Round(population.FitnessStats.PreviousGenerationsAverage.LastOrDefault(), 2));
        }
        public void Setup()
        {
            var weightCount = getNewBrain(SimpleSweeper.BrainInputs, SimpleSweeper.BrainOutputs).AllWeightsCount();

            Population = new Population(new GeneticAlgorithm(Settings));
            Population.Populate(Settings.SweeperCount, weightCount);

            _sweepers = createSweepers(Settings.SweeperCount).ToList();
            for (int i = 0; i < _sweepers.Count; i++)
            {
                _sweepers[i].Brain.UpdateGenome(Population.Genomes[i]);
            }

            _mines.AddRange(getMines(Settings.MineCount));
        }
예제 #3
0
        public void Update(Population population)
        {
            Image = new Bitmap(Width, Height);
            var avgpoints = getGraphPoints(population.FitnessStats.PreviousGenerationsAverage);
            var bestpoints = getGraphPoints(population.FitnessStats.PreviousGenerationsBest);
            var worstpoints = getGraphPoints(population.FitnessStats.PreviousGenerationsWorst);

            var graphHeight = (float)Height - 10;
            var maxHeight = bestpoints.Max(x => x.Y);
            var graphWidth = (float)(Width - 10);
            var maxWidth = bestpoints.Count();
            var yScale = graphHeight / maxHeight;
            var xScale = graphWidth / maxWidth;

            using (var graphics = Graphics.FromImage(Image))
            {
                if (avgpoints.Count() > 1)
                {
                    drawGrid(graphics, population.FitnessStats.PreviousGenerationsBest.Max(), avgpoints, yScale, xScale);

                    using (var neutralPen = new Pen(_neutralColor))
                    {
                        drawGraphLine(graphics, avgpoints, neutralPen, yScale, xScale);
                    }
                    using (var bestPen = new Pen(_bestColor))
                    {
                        drawGraphLine(graphics, bestpoints, bestPen, yScale, xScale);
                    }
                    using (var worstPen = new Pen(_worstColor))
                    {
                        drawGraphLine(graphics, worstpoints, worstPen, yScale, xScale);
                    }
                }
            }
            Image.RotateFlip(RotateFlipType.RotateNoneFlipY);
        }
        public void Setup()
        {
            _sweepers = createSweepers(Settings.SweeperCount).ToList();

            Population = new Population(new GeneticAlgorithm(Settings));
            Population.Populate(_sweepers.Select(x => x.Brain.Genome));

            createNewObjects();
        }
        public void Setup()
        {
            _sweepers = createSweepers(Settings.SweeperCount - 1).ToList();

            Population = new Population(new GeneticAlgorithm(Settings));
            Population.Populate(_sweepers.Select(x => x.Brain.Genome));

            Population.Genomes.Add(new EliteSweeper2070Genome());

            _mines.AddRange(getMines(Settings.MineCount));
        }