Exemple #1
0
        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++;
                }
            }
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
            }
        }
Exemple #5
0
 private static void TestAlgorithm(int n_visits)
 {
     ConsoleExt.WriteLine($"Start testing algorithm with {n_visits} visits", OutputColor);
     TestSerailDataVisits($"SerializedObjects/SolverInput{n_visits}Visits.serial");
 }
Exemple #6
0
        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);
        }