public MaxMinAntSystem2OptBest4SPP(SPPInstance instance, int numberAnts, double rho, double alpha, double beta, int maxReinit) : base(instance.NumberItems, SPPUtils.Fitness(instance, SPPUtils.RandomSolution(instance)), numberAnts, rho, alpha, beta, maxReinit) { Instance = instance; }
public override void LocalSearch(int[] solution) { if (solution[0] >= Instance.NumberSubsets) { solution[0] = Statistics.RandomDiscreteUniform(0, Instance.NumberSubsets - 1); } SPPUtils.LocalSearch2OptBest(Instance, solution); }
protected override double Fitness(int[] solution) { if (solution[0] >= Instance.NumberSubsets) { solution[0] = Statistics.RandomDiscreteUniform(0, Instance.NumberSubsets - 1); } return(SPPUtils.Fitness(Instance, solution)); }
public void Start(string fileInput, string fileOutput, int timeLimit) { SPPInstance instance = new SPPInstance(fileInput); int[] assignment = SPPUtils.GRCSolution(instance, 1.0); SPPUtils.LocalSearch2OptFirst(instance, assignment); SPPSolution solution = new SPPSolution(instance, assignment); solution.Write(fileOutput); }
public void Write(string file) { double deviation = SPPUtils.Fitness(Instance, Assignment); using (StreamWriter writer = File.CreateText(file)) { writer.WriteLine(deviation); writer.WriteLine(Instance.NumberItems); writer.WriteLine(Instance.NumberSubsets); writer.WriteLine(); for (int i = 0; i < Instance.NumberItems; i++) { writer.WriteLine(Assignment[i] + 1); } } }
protected override int[] InitialSolution() { int[] solution; if (generatedSolutions < 2) { solution = SPPUtils.GRCSolution(Instance, 1.0); } else { solution = SPPUtils.RandomSolution(Instance); } generatedSolutions++; return(solution); }
protected override int[] GetNeighbor(int[] solution) { return(SPPUtils.GetNeighbor(Instance, solution)); }
protected override Tuple <int, int> GetTabu(int[] current, int[] neighbor) { return(SPPUtils.GetTabu(current, neighbor)); }
protected override double Distance(int[] a, int[] b) { return(SPPUtils.Distance(Instance, a, b)); }
protected override void Improve(int[] solution) { SPPUtils.LocalSearch2OptFirst(Instance, solution); }
protected override double Fitness(int[] solution) { return(SPPUtils.Fitness(Instance, solution)); }
protected override void LocalSearch(int[] solution) { SPPUtils.LocalSearch2OptBest(Instance, solution); }
protected override int[] InitialSolution() { return(SPPUtils.GRCSolution(Instance, RclTreshold)); }
protected override void PerturbateSolution(int[] solution, int perturbation) { SPPUtils.PerturbateSolution(Instance, solution, perturbation); }
protected override double Fitness(int[] individual) { return(SPPUtils.Fitness(Instance, individual)); }
protected override void LocalSearch(int[] individual) { SPPUtils.LocalSearch2OptBest(Instance, individual); }
protected override int[] GRCSolution() { return(SPPUtils.GRCSolution(Instance, RCLThreshold)); }