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; } } } }