Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private static Schema updateAccept(Schema schema, Random random, AfstandenMatrix a)
- {
- int randomDag = random.Next(0, 4);
- int randomWagen = random.Next(0, 1);
- // Filter orders op meegenomen, en voeg random een van deze orders toe aan een random schema
- Dictionary<int, Order> filterOrders = schema.orders.Where(kvp => !kvp.Value.Meegenomen && kvp.Value.Frequentie.PWK == 1).ToDictionary(kvp => kvp.Key, kvp => kvp.Value);
- // breakt als er geen orders zijn die niet worden meegenomen
- if (filterOrders.Count == 0) return schema;
- // Vindt random order in dictionary
- Order randomOrder = filterOrders.ElementAt(random.Next(0, filterOrders.Count)).Value;
- if (randomOrder.Frequentie.PWK != 1) return schema;
- //kans iets
- for(int i=0;i<=4;i++){
- for(int j=0,j<=1,j++){
- int groottelijst[i,j] = dagen[i].schemaPerWagen[j].Count;
- float omggroottelijst[i,j] = 1/dagen[i].schemaPerWagen[j].Count;
- float totaallijst += 1/(dagen[i].schemaPerWagen[j].Count);
- }
- }
- int RandomGetal = random.Next(0,1000);
- for(i=0;i<=4;i++){
- for(j=0,j<=1,j++){
- int kans [i*2 + j] = kans [i*2 + j - 1] + ((1/dagen[ i ].schemaPerWagen[j].Count) / totaallijst)*1000;
- }
- }
- for(int p = 0; p<=9; p++)
- if(p!=0){
- if (kans[p-1]>=RandomGetal&&RandomGetal>kans[p]){
- return p;
- }
- }
- else {
- return 0;
- //doe iets anders
- }
- // Maak daar een schemaUnit van
- int q = p/2;
- SchemaUnit randomUnit = new SchemaUnit(randomOrder, new Vuilniswagen(randomWagen), 0);
- List<SchemaUnit> randomList = schema.dagen[q].SchemaPerWagen[p%2];
- int randomIndex = random.Next(0, schema.dagen[q].SchemaPerWagen[p%2].Count);
- // Voeg schemaUnit toe aan random lijst als dat kan
- if (canPlace(randomUnit, randomList, randomIndex, a))
- {
- schema.dagen[(p-1)/2].SchemaPerWagen[p%2].Insert(randomIndex, randomUnit);
- // Geef aan dat order wordt meegenomen
- randomOrder.Meegenomen = true;
- }
- // Pas de rest van de lijst aan
- correctList(Math.Max(randomIndex - 1, 0), schema.dagen[q].SchemaPerWagen[p%2], a);
- // Return nieuwe schema
- return schema;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement