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); }
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(); }
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); }