public Ant(AntProblem parent, int startTown) { _parent = parent; CurTown = startTown; StartTown = startTown; _visited = new bool[_parent.Distances.Length]; _visited[StartTown] = true; _way.Add(StartTown); }
static void Main(string[] args) { //string folder = @"C:\Users\1\Downloads\ALL_tsp"; //string file = "a280"; //var distances = ParseDistances(Path.Combine(folder, file + ".tsp")); var distances = RandomDst(8); // var trueSolve = ParseSolve(Path.Combine(folder, file + ".opt.tour")); var trueSolve = StupidSolve(distances); //PrintMatrix(distances); PrintMatrixInFile(distances, "file.txt"); Console.WriteLine("Start"); Stopwatch sw = Stopwatch.StartNew(); var antProblem = new AntProblem(); antProblem.Distances = distances; var antSolve = antProblem.solve(); sw.Stop(); Console.WriteLine("Elapsed: " + (double)sw.ElapsedMilliseconds / 1000.0); double res1 = 0; for (int i = 0; i < antSolve.Count - 1; i++) { res1 += distances[antSolve[i]][antSolve[i + 1]]; } double res2 = 0; for (int i = 0; i < trueSolve.Count - 1; i++) { res2 += distances[trueSolve[i]][trueSolve[i + 1]]; } Console.WriteLine(res1); Console.WriteLine(res2); Console.WriteLine(); }