public void Write(string file)
        {
            double cost = TSPUtils.Fitness(Instance, Path);

            using (StreamWriter writer = File.CreateText(file)) {
                writer.WriteLine(cost);
                writer.WriteLine(Instance.NumberCities);
                for (int i = 0; i < Instance.NumberCities; i++)
                {
                    writer.WriteLine(Path[i] + 1);
                }
            }
        }
Пример #2
0
 public MaxMinAntSystem2OptFirst4TSP(TSPInstance instance, int numberAnts, double rho,
                                     double alpha, double beta, int maxReinit,
                                     int candidateLength, double candidateWeight)
     : base(instance.NumberCities, TSPUtils.Fitness(instance, TSPUtils.RandomSolution(instance)),
            numberAnts, rho, alpha, beta, maxReinit)
 {
     Instance             = instance;
     this.candidateWeight = candidateWeight;
     // Build the candidate list.
     this.candidateLists = new List <Tuple <double, int> > [Instance.NumberCities];
     for (int i = 0; i < Instance.NumberCities; i++)
     {
         this.candidateLists[i] = new List <Tuple <double, int> >();
         for (int j = 0; j < Instance.NumberCities; j++)
         {
             if (i != j)
             {
                 this.candidateLists[i].Add(new Tuple <double, int>(Instance.Costs[i, j], j));
             }
         }
         this.candidateLists[i].Sort();
         this.candidateLists[i].RemoveRange(candidateLength, this.candidateLists[i].Count - candidateLength);
     }
 }
Пример #3
0
 protected override double Fitness(int[] solution)
 {
     return(TSPUtils.Fitness(Instance, solution));
 }
 protected override double Fitness(int[] individual)
 {
     return(TSPUtils.Fitness(Instance, individual));
 }