public double Calculate(Oplossing oplossing, Dictionary <int, Order> order_list)
        {
            (double reistijd1, Dictionary <int, Order> orders_to_do1) = CalculateVrachtwagenKosten(oplossing.vrachtwagen1, order_list);
            (double reistijd2, Dictionary <int, Order> orders_to_do2) = CalculateVrachtwagenKosten(oplossing.vrachtwagen2, orders_to_do1);

            double strafkosten = 0;

            foreach ((int _, Order order) in orders_to_do2)
            {
                strafkosten += 3 * order.duur;
            }

            return(reistijd1 + reistijd2 + strafkosten);
        }
Exemple #2
0
        static void Main(string[] args)
        {
            string         path           = Directory.GetCurrentDirectory();
            InputProcessor inputprocessor = new InputProcessor(Path.Combine(path, @"..\..\..\", @"AfstandenMatrix.txt"), Path.Combine(path, @"..\..\..\", @"Orderbestand.txt"));
            //Console.WriteLine(inputprocessor.order_dict[-2].matrixID);
            ScoreCalculator scorecalculator = new ScoreCalculator(inputprocessor.afstanden_dict, inputprocessor.order_dict);
            LocalSearcher   localsearcher   = new LocalSearcher();

            Oplossing sample = new Oplossing();

            sample.vrachtwagen2[0].AddAfter(sample.vrachtwagen2[0].First, 18);

            Console.WriteLine(scorecalculator.Calculate(sample));
            Console.ReadLine();
        }
Exemple #3
0
        static void Main(string[] args)
        {
            InputProcessor inputprocessor = new InputProcessor(@"C:\Users\laars\OneDrive\Universiteit Utrecht\2019 - Kunstmatige Intelligentie\Blok 2\Optimalisering en complexiteit\Grote opdracht\Grote Opdracht\AfstandenMatrix.txt",
                                                               @"C:\Users\laars\OneDrive\Universiteit Utrecht\2019 - Kunstmatige Intelligentie\Blok 2\Optimalisering en complexiteit\Grote opdracht\Grote Opdracht\Orderbestand.txt");
            ScoreCalculator scorecalculator = new ScoreCalculator(inputprocessor.reistijden);
            LocalSearcher   localsearcher   = new LocalSearcher();

            Oplossing sample = new Oplossing();

            Order k = inputprocessor.order_dict[18];

            sample.vrachtwagen1[0].AddAfter(sample.vrachtwagen1[0].First, new Bezoek(18, k.aant * k.volume, k.MID, k.duur, k.aant * k.volume));

            Console.WriteLine(scorecalculator.Calculate(sample, inputprocessor.order_dict));
            Console.ReadLine();
        }
        public double Calculate(Oplossing oplossing)
        {
            HashSet <int> unvisited = new HashSet <int> (order_dict.Keys);

            (double reistijd1, HashSet <int> unvisited1) = CalculateVrachtwagenKosten(oplossing.vrachtwagen1, unvisited);
            (double reistijd2, HashSet <int> unvisited2) = CalculateVrachtwagenKosten(oplossing.vrachtwagen2, unvisited1);


            double strafkosten = 0;

            foreach (int order_id in unvisited2)
            {
                strafkosten += 3 * order_dict[order_id].led_duur * order_dict[order_id].PWK;
            }
            Console.WriteLine("reistijd: {0} | strafkosten: {1}", reistijd2, strafkosten);
            return(reistijd1 + reistijd2 + strafkosten);
        }