//--------------------------------------------------------------------- public static void TestRandomWalkv2(string mesh_type) { int[] sizes_mesh = new int[21] { 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50 }; int[] final_positions = new int[21] { 99, 143, 195, 255, 323, 399, 483, 575, 675, 783, 899, 1023, 1155, 1295, 1443, 1599, 1763, 1935, 2115, 2303, 2499 }; for (int i = 0; i < sizes_mesh.Length; i++) { string size = "_" + sizes_mesh[i] + "x" + sizes_mesh[i] + ".txt"; string file_name = mesh_type + size; //Create the mesh environment MeshEnvironment env = new MeshEnvironment(_start: 0, _final: final_positions[i], _file_name: file_name, sizes_mesh[i]); env.InitEnviroment(type_mesh: mesh_type); Console.WriteLine("Init Execution -> " + file_name); //------------------------------------------------------------------- for (int j = 0; j < num_test; j++) { RandomWalkv2 rw2 = new RandomWalkv2(); rw2.ExecuteRandomWalk(ref env); AntColonyOptimizationv0 acov0 = new AntColonyOptimizationv0(_random_walk: true); acov0.ExecuteACO(ref env); ////Store variables in a txt Console.WriteLine("Execution {0} of " + file_name, j); StoreVariables_RW2(mesh_type, ref env, ref rw2); StoreVariable_RW2_and_ACOv0(mesh_type, ref env, ref acov0, ref rw2); env.InitPheromones(0); } Console.WriteLine("End Execution -> " + file_name); Console.WriteLine("---------------------------------------------"); } }
//-------------------------------------------------------------------- public static void TestACOv0(string mesh_type) { int[] sizes_mesh = new int[21] { 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50 }; int[] final_positions = new int[21] { 99, 143, 195, 255, 323, 399, 483, 575, 675, 783, 899, 1023, 1155, 1295, 1443, 1599, 1763, 1935, 2115, 2303, 2499 }; for (int i = 0; i < sizes_mesh.Length; i++) { string size = "_" + sizes_mesh[i] + "x" + sizes_mesh[i] + ".txt"; string file_name = mesh_type + size; int j = 0; Console.WriteLine("Execution -> " + file_name); while (j < num_test) { //Create the mesh environment MeshEnvironment env = new MeshEnvironment(_start: 0, _final: final_positions[i], _file_name: file_name, sizes_mesh[i]); env.InitEnviroment(type_mesh: mesh_type); //------------------------------------------------------------------- //Create and Execute ACOv0 AntColonyOptimizationv0 acov0 = new AntColonyOptimizationv0(); acov0.ExecuteACO(ref env); //------------------------------------------------------------------- //Store variables in a txt Console.WriteLine("Execution {0}", j); StoreTestingVariablesACOv0(mesh_type, ref env, ref acov0); j++; //} } } }
public static void Test_RWv2_ACOv0(string mesh_type) { int[] sizes_mesh = new int[21] { 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50 }; int[] final_positions = new int[21] { 99, 143, 195, 255, 323, 399, 483, 575, 675, 783, 899, 1023, 1155, 1295, 1443, 1599, 1763, 1935, 2115, 2303, 2499 }; for (int i = 0; i < sizes_mesh.Length; i++) { string size = "_" + sizes_mesh[i] + "x" + sizes_mesh[i] + ".txt"; string file_name = mesh_type + size; Console.WriteLine("Init Execution -> " + file_name); //------------------------------------------------------------------- //Create the mesh environment MeshEnvironment env = new MeshEnvironment(_start: 0, _final: final_positions[i], _file_name: file_name, sizes_mesh[i]); env.InitEnviroment(type_mesh: mesh_type); //------------------------------------------------------------------- for (int j = 0; j < num_test; j++) { //............................................................................ // ROUTE 1 env.FillDistanceMatrix(); DijkstraAlgorithm dk1 = new DijkstraAlgorithm(); dk1.Execute(ref env); RandomWalkv2 rw1 = new RandomWalkv2(); rw1.ExecuteRandomWalk(ref env); AntColonyOptimizationv0 aco1 = new AntColonyOptimizationv0(_random_walk: true); aco1.ExecuteACO(ref env); //............................................................................ //Insert the obstacle in a middle zone of the current optimal solution InsertSeveralObstacle(ref env, num_obstacle: 2, num_routes: 2); //............................................................................ // ROUTE 2 - REROUTING env.FillDistanceMatrix(); DijkstraAlgorithm dk2 = new DijkstraAlgorithm(); dk2.Execute(ref env); RandomWalkv2 rw2 = new RandomWalkv2(); rw2.ExecuteRandomWalk(ref env); AntColonyOptimizationv0 aco2 = new AntColonyOptimizationv0(_random_walk: true); aco2.ExecuteACO(ref env); //............................................................................ ////Store variables in a txt Console.WriteLine("Execution {0} of " + file_name, j); StoreVariable_RWv2_ACOv0(mesh_type, ref env, ref dk1, ref aco1, ref dk2, ref aco2); //............................................................................ //Reset environment env.InitPheromones(0); env.ClearObstacles(); } Console.WriteLine("End Execution -> " + file_name); Console.WriteLine("---------------------------------------------"); } }