Exemplo n.º 1
0
        public void Process()
        {
            Stopwatch stopwatch = new Stopwatch();

            stopwatch.Start();
            int i = 0;
            while (i < numberOfExecution)
            {
                currentPopulation = GeneratePopulation();
                GenerationWhere80PercetangeBestAchieved = 0;
                GenerationWhere90PercetangeBestAchieved = 0;
                GenerationWhere95PercetangeBestAchieved = 0;
                heaven = new List<double>();

                for (int j = 1; j <= numberOfGenerations; j++)
                {
                    Generation generation = new Generation(currentPopulation, probabilityOfMutation, typeOfAlgorithm, parentSelection);
                    currentPopulation = generation.CreateNewPopulation();

                    var best = generation.FindBest();
                    CheckPercentage(best[1], j);

                    if (heaven.Count != 0)
                    {
                        if (best[0] > generation.Fitness(heaven[0]))
                        {
                            heaven[0] = best[1];
                        }
                    }
                    else
                    {
                        heaven.Add(best[1]);
                    }
                    //Console.WriteLine("Epoka: " + j + ", Najlepszy wynik: " + best[0] + ", x = " + best[1] + " ,niebo:" + heaven[0]);
                }

                arrayOfBestResults[i] = heaven[0];
                i++;
            }
            stopwatch.Stop();
            Console.WriteLine("niebo: " + heaven[0]);
            Console.WriteLine("mediana: " + CountMedian(arrayOfBestResults));
            Console.WriteLine("średnia: " + CountAverage(arrayOfBestResults));
            Console.WriteLine("czas wykonania: " + stopwatch.Elapsed);
            Console.WriteLine("#####################");
            Console.WriteLine($"80% najlepszego zostało osiągnięte w {GenerationWhere80PercetangeBestAchieved} epoce");
            Console.WriteLine($"90% najlepszego zostało osiągnięte w {GenerationWhere90PercetangeBestAchieved} epoce");
            Console.WriteLine($"95% najlepszego zostało osiągnięte w {GenerationWhere95PercetangeBestAchieved} epoce");
        }