static List <AntsAlgorithm> GetAntsAlgorithms(Map map) { var routeAlgorithms = new List <AntsAlgorithm>(); double q = AntsAlgorithm.CalculateQ(map); routeAlgorithms.Add(new AntsAlgorithm(1000, 0.1, 0.9, q, 0)); for (double alpha = 0; alpha < 1; alpha += 0.1) { for (double beta = 0; beta < 1; beta += 0.1) { for (double rho = 0; rho < 1; rho += 0.25) { routeAlgorithms.Add(new AntsAlgorithm(30, alpha, beta, q, rho)); } } } return(routeAlgorithms); }
static void Main(string[] args) { //Map(@"C:\Users\mad-m\source\repos\BMSTU\AnalysisAlgorithms\Lab_06\src\Lab_06\data\map1.txt"); var map = new Map(9, 10); Console.WriteLine(map); var routeAlgorithms = new List <IRouteAlgorithm>(); routeAlgorithms.Add(new BruteForceAlgorithm()); routeAlgorithms.Add(new AntsAlgorithm(30, 1, 0, AntsAlgorithm.CalculateQ(map), 0.5)); foreach (var routeAlgorithm in routeAlgorithms) { var res = routeAlgorithm.GetRoute(map); Console.WriteLine(routeAlgorithm.GetType().Name); Console.WriteLine("Path: {0}", res); Console.WriteLine("Distance: {0}", res.Distance); Console.WriteLine(); } Console.WriteLine(); int samples = 1; var clock = new Stopwatch(); foreach (var routeAlgorithm in routeAlgorithms) { clock.Restart(); for (int i = 0; i < samples; i++) { clock.Start(); routeAlgorithm.GetRoute(map); clock.Stop(); } var avgTime = clock.ElapsedTicks / (double)samples; Console.WriteLine($"{routeAlgorithm.GetType().Name,-20} time work: {avgTime} ticks"); } Test(); }