Esempio n. 1
0
 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;
 }
Esempio n. 2
0
 public override void LocalSearch(int[] solution)
 {
     if (solution[0] >= Instance.NumberSubsets)
     {
         solution[0] = Statistics.RandomDiscreteUniform(0, Instance.NumberSubsets - 1);
     }
     SPPUtils.LocalSearch2OptBest(Instance, solution);
 }
Esempio n. 3
0
 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);
        }
Esempio n. 7
0
 protected override int[] GetNeighbor(int[] solution)
 {
     return(SPPUtils.GetNeighbor(Instance, solution));
 }
Esempio n. 8
0
 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));
 }
Esempio n. 12
0
 protected override void LocalSearch(int[] solution)
 {
     SPPUtils.LocalSearch2OptBest(Instance, solution);
 }
Esempio n. 13
0
 protected override int[] InitialSolution()
 {
     return(SPPUtils.GRCSolution(Instance, RclTreshold));
 }
Esempio n. 14
0
 protected override void PerturbateSolution(int[] solution, int perturbation)
 {
     SPPUtils.PerturbateSolution(Instance, solution, perturbation);
 }
 protected override double Fitness(int[] individual)
 {
     return(SPPUtils.Fitness(Instance, individual));
 }
Esempio n. 16
0
 protected override void LocalSearch(int[] individual)
 {
     SPPUtils.LocalSearch2OptBest(Instance, individual);
 }
Esempio n. 17
0
 protected override int[] GRCSolution()
 {
     return(SPPUtils.GRCSolution(Instance, RCLThreshold));
 }