private static void TestSerailDataVisits(string serialDataName, int numberOfRuns = 5) { var solverInputData = Deserialize(serialDataName); // solverInputData.DayDuration = solverInputData.DayDuration.Select(d => (int)(d / 0.7)).ToArray(); double mip_gap = 0; for (int i = 1; i <= numberOfRuns; i++) { var sw = Stopwatch.StartNew(); var solver = new ClusteringILPSolver(solverInputData); solver.Solve(mip_gap, 10 * 60 * 1000); var routeResult = solver.GetResult(); sw.Stop(); ConsoleExt.WriteLine($"{i}/{numberOfRuns}: Elapsed s: {sw.ElapsedMilliseconds / 1000}", InfoColor); Console.WriteLine(); Console.WriteLine(); var routes = routeResult.Waypoints .Cast <List <Waypoint> >() .Select(wp => wp.Aggregate("", (carry, n) => carry + Environment.NewLine + solverInputData.VisitNames[n.Visit])); int ctr = 0; foreach (var route in routes) { File.WriteAllText($"R{ctr}_{mip_gap}.csv", $"Address{Environment.NewLine}{route}"); ConsoleExt.WriteLine(ctr.ToString(), ResultColor); ConsoleExt.WriteLine(route, ResultColor); ctr++; } } }
private static void TestGeolocator() { var key = "AIzaSyAdTPEkyVKvA0ZvVNAAZK5Ot3fl8zyBsks"; var routeCalculator = new GoogleRouteCalculator(key); var(distance, duration) = routeCalculator.CalculateWalkingDistance("Othmarsingerstrasse 18 5600 Lenzburg", "Migros Lenzburg"); ConsoleExt.WriteLine($"Distance [m]: {distance}, Duration [s]: {duration}", OutputColor); }
private static void ExportMPSVisits(int n_visits) { var solverInputData = Deserialize($"SerializedObjects/ClusteringSolverInput{n_visits}Visits.serial"); new ClusteringILPSolver(solverInputData).ExportMPSAsFile($"New_{n_visits}_mps.mps"); ConsoleExt.WriteLine($"Saved mps for {n_visits} visits", InfoColor); }
private static void TestSerailDataVisits(string serialDataName, int numberOfRuns = 5) { var solverInputData = Deserialize(serialDataName); for (int i = 1; i <= numberOfRuns; i++) { var sw = Stopwatch.StartNew(); var solver = new SchedulingILPSolver(solverInputData); solver.Solve(0, 10 * 60 * 1000); var route = solver.GetResult(); sw.Stop(); ConsoleExt.WriteLine($"{i}/{numberOfRuns}: Elapsed s: {sw.ElapsedMilliseconds / 1000}", OutputColor); ConsoleExt.WriteLine($"SolutionVal: {route.SolutionValue}", ConsoleColor.Yellow); } }
private static void TestAlgorithm(int n_visits) { ConsoleExt.WriteLine($"Start testing algorithm with {n_visits} visits", OutputColor); TestSerailDataVisits($"SerializedObjects/SolverInput{n_visits}Visits.serial"); }
private static void TestAlgorithm(int n_visits) { ConsoleExt.WriteLine($"Start testing algorithm with {n_visits} visits", InfoColor); TestSerailDataVisits($"SerializedObjects/ClusteringSolverInput{n_visits}Visits.serial", numberOfRuns: 1); }