コード例 #1
0
        protected override int[] InitialSolution()
        {
            int[] solution;

            if (generatedSolutions == 0)
            {
                solution = TSPUtils.GreedySolution(Instance);
            }
            else
            {
                solution = TSPUtils.RandomSolution(Instance);
            }

            generatedSolutions++;
            return(solution);
        }
コード例 #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);
     }
 }