Example #1
0
        static int Main(string[] args)
        {
            //Problem problem = Reader.ReadProblem(DataSet.D, "M-n101-k10");
            IACOParameters parameters = new IACOParameters(1, 2, 15, 5000, 0.95, 0.05, 0.2, 1.0, 0.05, 0.2);

            AutomatedCalculation.RunIACOlgorithm(5, 1000.0, parameters, DataSet.M, OutputOptions.File, "IACOM.txt");
            AutomatedCalculation.RunIACOlgorithm(5, 1000.0, parameters, DataSet.S, OutputOptions.File, "IACOS.txt");
            AutomatedCalculation.RunIACOlgorithm(5, 1000.0, parameters, DataSet.D, OutputOptions.File, "IACOD.txt");
            // AutomatedCalculation.RunMinMaxAlgorithm(5, 1000.0, parameters, DataSet.M, OutputOptions.File, "minMaxM.txt");
            // AutomatedCalculation.RunMinMaxAlgorithm(5, 1000.0, parameters, DataSet.S, OutputOptions.File, "minMaxS.txt");
            // AutomatedCalculation.RunMinMaxAlgorithm(5, 1000.0, parameters, DataSet.D, OutputOptions.File, "minMaxD.txt");



            /*           var problem = Reader.ReadProblem(DataSet.M, "A-n32-k5");*/

            /*            IACOAntSystem iaco = new IACOAntSystem(parameters, 1000.0);
             *          iaco.LoadProblemInstance(problem);
             *          var executionTime = iaco.Solve();
             *          var sol = iaco.GetSolution();
             *          var result = sol != null ? sol.Cost.ToString() : "no solution found";
             *          Console.WriteLine(" GreedyAlgorithm cost: " + result);*/
            // var solver = new Solver(parameters2, problem.Graph, problem);
            // Console.WriteLine("TIME = " + solver.Solve());


            /*            ACO greedyAlgorithm = new ACO();
             *          greedyAlgorithm.LoadProblemInstance(problem);
             *          greedyAlgorithm.Solve();*/
            // Solution solution = greedyAlgorithm.GetSolution();

            return(0);
            // return new AppRunner<Cli>().Run(args);
        }
        public static void RunIACOlgorithm(int iterations, double maxVehicleDistance, IACOParameters parameters, DataSet set, OutputOptions options = OutputOptions.Console, string outPutFileName = null)
        {
            List <string> problems = ReadSet(set);

            foreach (string problem in problems)
            {
                Console.WriteLine(set + " " + problem);
                Problem problemInstance = Reader.ReadProblem(set, problem);
                for (int i = 0; i < iterations; i++)
                {
                    IACOAntSystem iaco = new IACOAntSystem(parameters, maxVehicleDistance);
                    iaco.LoadProblemInstance(problemInstance);
                    Console.WriteLine("Iteration " + i.ToString());
                    TimeSpan executionTime = iaco.Solve();
                    Solution sol           = iaco.GetSolution();
                    string   result;
                    switch (options)
                    {
                    case OutputOptions.Console:
                        result = sol != null?sol.Cost.ToString() : "no solution found";

                        Console.WriteLine(problemInstance.Name + " Perfect Solution: " + problemInstance.Solution.Cost + " GreedyAlgorithm cost: " + result);
                        break;

                    case OutputOptions.File:
                        using (StreamWriter sw = File.AppendText(outPutFileName))
                        {
                            string line = new FileLine(problemInstance, sol, executionTime, i).ToString();
                            sw.WriteLine(line);
                        }
                        break;

                    default:
                        break;
                    }
                }
            }
        }