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); } } }
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); } }
protected override double Fitness(int[] solution) { return(TSPUtils.Fitness(Instance, solution)); }
protected override double Fitness(int[] individual) { return(TSPUtils.Fitness(Instance, individual)); }