Example #1
0
 public Ant(AntProblem parent, int startTown)
 {
     _parent             = parent;
     CurTown             = startTown;
     StartTown           = startTown;
     _visited            = new bool[_parent.Distances.Length];
     _visited[StartTown] = true;
     _way.Add(StartTown);
 }
Example #2
0
        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();
        }