Example #1
0
        static bool RunRandomAlgorytm(string sourceFileName, int amountOfRandoms)
        {
            DateTime date = DateTime.Now;
            int      calculationNumber = CalculationNumber++;
            CapacitatedVehicleRoutingProblem problem = new CapacitatedVehicleRoutingProblem();

            problem.GetDataFromSourceFile(_inputFolderPath + sourceFileName);
            RandomAlgorythm algorythm = new RandomAlgorythm(problem, amountOfRandoms);
            var             result    = algorythm.Calculate();

            SaveRandomResultToFile(result, _outputFolderPath + sourceFileName + date.Month + "_" + date.Day + "_" + date.Hour + "_" + date.Minute + "_" + date.Second + "_random");
            Console.WriteLine("Hello World! 2");
            return(true);
        }
Example #2
0
        static bool RunGeneticAlgorytm(float crossProbability, float mutationProbability, int amountOfGenerations, int generationSize, int tournamentSize, string sourceFileName, bool useRoulette, out float bestScore, bool mutationBySwap, bool crossOX)
        {
            DateTime date = DateTime.Now;
            int      calculationNumber = CalculationNumber++;

            Thread.CurrentThread.Name = GetOutputFileName(date, crossProbability, mutationProbability, amountOfGenerations, generationSize, tournamentSize, useRoulette, sourceFileName, calculationNumber);
            CapacitatedVehicleRoutingProblem problem = new CapacitatedVehicleRoutingProblem();

            problem.GetDataFromSourceFile(_inputFolderPath + sourceFileName);
            GeneticAlgorythm algorythm = new GeneticAlgorythm(problem, crossProbability, mutationProbability,
                                                              amountOfGenerations, generationSize, tournamentSize, useRoulette, mutationBySwap, crossOX);
            var result = algorythm.Calculate();

            SaveResultToFile(result, _outputFolderPath + GetOutputFileName(date, crossProbability, mutationProbability,
                                                                           amountOfGenerations, generationSize, tournamentSize, useRoulette, sourceFileName, calculationNumber), problem);
            Console.WriteLine("Hello World! 2");
            bestScore = result[result.Length - 1].Max;
            return(true);
        }
Example #3
0
        static bool RunGreedyAlgorytm(string sourceFileName)
        {
            var           tasks                      = new List <Task <float> >();
            DateTime      date                       = DateTime.Now;
            List <string> lines                      = new List <string>();
            int           calculationNumber          = CalculationNumber++;
            CapacitatedVehicleRoutingProblem problem = new CapacitatedVehicleRoutingProblem();

            problem.GetDataFromSourceFile(_inputFolderPath + sourceFileName);
            float        sum     = 0;
            List <float> results = new List <float>();

            for (int i = 0; i < 59; i++)
            {
                var result = (new GreedyAlgorythm(problem, i)).Calculate();

                results.Add(result.Value);
            }
            sum = results.Sum();
            //obliczenie średniej i odchylenia standardowego
            float average = sum / results.Count;
            float max     = results.Max();
            float min     = results.Min();
            float averageDiviationsSum = 0;
            float standardDeviation    = 0;

            for (int i = 0; i < results.Count; i++)
            {
                averageDiviationsSum += (float)Math.Pow(results[i] - average, 2);
            }
            standardDeviation = (float)Math.Sqrt(averageDiviationsSum / results.Count);
            //obliczenie średniej i odchylenia standardowego
            lines.Add("max: " + (int)max);
            lines.Add("min: " + (int)min);
            lines.Add("average: " + (int)average);
            lines.Add("standardDeviation: " + (int)standardDeviation);
            File.AppendAllLines(_outputFolderPath + "greedy1" + ".txt", lines);

            return(true);
        }