/// <summary> /// Metoda wykonuje testy zależności czasowej /// </summary> /// <param name="cities"></param> /// <param name="timestamp"></param> /// <param name="maxNumberOfIterations"></param> /// <param name="numberOfTrials"></param> /// <param name="path"></param> public static void RunTimeTest(Cities cities, int timestamp, int maxNumberOfIterations, int numberOfTrials, string path) { string output = "|ZALEŻNOŚĆ CZASOWA|" + Environment.NewLine, elapsedTime = "", relativeError = ""; int tempDistance, bestDistance = cities.BestDistance; Stopwatch stopWatch = new Stopwatch(); for (int i = 0; i <= numberOfTrials; i++) { Console.WriteLine("Próba: " + i.ToString()); stopWatch.Start(); ///// DO DOBRANIA + wyłącz wyświetlanie wyniku tempDistance = Int32.Parse(TabuSearch.RunAlgorithm(cities.AdjacencyMatrix, timestamp, maxNumberOfIterations)); stopWatch.Stop(); if (i != 0) { relativeError = ((tempDistance - bestDistance) / bestDistance).ToString(); elapsedTime = stopWatch.Elapsed.TotalMilliseconds.ToString(); output += cities.AdjacencyMatrix.GetLength(0).ToString() + ";" + elapsedTime + ";" + relativeError + Environment.NewLine; } stopWatch.Reset(); } WriteOutputToFile(path, output); }
/// <summary> /// Metoda odpowiedzialna za uruchomienie testów z zadanymi parametrami /// </summary> /// <param name="cities"></param> Obiekt reprezentujący dany przypadek TSP /// <param name="timestamp"></param> Pojemność tabu /// <param name="maxNumberOfIterations"></param> Maksymalna liczba iteracji /// <param name="numberOfTrials"></param> Liczba prób /// <param name="path"></param> Ścieżka dla danych wyjściowych public static void RunTimestampTest(Cities cities, int timestamp, int maxNumberOfIterations, int numberOfTrials, string path) { string output = "|ZALEŻNOŚĆ OD TIMESTAMP|" + Environment.NewLine, relativeError = ""; float bestDistance = (float)cities.BestDistance, tempDistance; for (int i = 0; i <= numberOfTrials; i++) { Console.WriteLine("Próba: " + i.ToString()); //Ilosc iteracji do dobrania tempDistance = float.Parse(TabuSearch.RunAlgorithm(cities.AdjacencyMatrix, timestamp, maxNumberOfIterations)); if (i != 0) { relativeError = (((tempDistance - bestDistance) / bestDistance) * 100.0f).ToString(); output += relativeError + Environment.NewLine; } } WriteOutputToFile(path, output); }