Advertisement
Guest User

Untitled

a guest
Jan 18th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.37 KB | None | 0 0
  1. private static Schema updateAccept(Schema schema, Random random, AfstandenMatrix a)
  2. {
  3. int randomDag = random.Next(0, 4);
  4. int randomWagen = random.Next(0, 1);
  5.  
  6. // Filter orders op meegenomen, en voeg random een van deze orders toe aan een random schema
  7. Dictionary<int, Order> filterOrders = schema.orders.Where(kvp => !kvp.Value.Meegenomen && kvp.Value.Frequentie.PWK == 1).ToDictionary(kvp => kvp.Key, kvp => kvp.Value);
  8.  
  9. // breakt als er geen orders zijn die niet worden meegenomen
  10. if (filterOrders.Count == 0) return schema;
  11.  
  12.  
  13. // Vindt random order in dictionary
  14. Order randomOrder = filterOrders.ElementAt(random.Next(0, filterOrders.Count)).Value;
  15.  
  16. if (randomOrder.Frequentie.PWK != 1) return schema;
  17.  
  18. //kans iets
  19. for(int i=0;i<=4;i++){
  20. for(int j=0,j<=1,j++){
  21. int groottelijst[i,j] = dagen[i].schemaPerWagen[j].Count;
  22. float omggroottelijst[i,j] = 1/dagen[i].schemaPerWagen[j].Count;
  23. float totaallijst += 1/(dagen[i].schemaPerWagen[j].Count);
  24.  
  25. }
  26. }
  27.  
  28. int RandomGetal = random.Next(0,1000);
  29. for(i=0;i<=4;i++){
  30. for(j=0,j<=1,j++){
  31. int kans [i*2 + j] = kans [i*2 + j - 1] + ((1/dagen[ i ].schemaPerWagen[j].Count) / totaallijst)*1000;
  32. }
  33. }
  34. for(int p = 0; p<=9; p++)
  35. if(p!=0){
  36. if (kans[p-1]>=RandomGetal&&RandomGetal>kans[p]){
  37. return p;
  38. }
  39. }
  40. else {
  41. return 0;
  42. //doe iets anders
  43.  
  44. }
  45.  
  46. // Maak daar een schemaUnit van
  47. int q = p/2;
  48. SchemaUnit randomUnit = new SchemaUnit(randomOrder, new Vuilniswagen(randomWagen), 0);
  49. List<SchemaUnit> randomList = schema.dagen[q].SchemaPerWagen[p%2];
  50. int randomIndex = random.Next(0, schema.dagen[q].SchemaPerWagen[p%2].Count);
  51.  
  52. // Voeg schemaUnit toe aan random lijst als dat kan
  53. if (canPlace(randomUnit, randomList, randomIndex, a))
  54. {
  55. schema.dagen[(p-1)/2].SchemaPerWagen[p%2].Insert(randomIndex, randomUnit);
  56.  
  57. // Geef aan dat order wordt meegenomen
  58. randomOrder.Meegenomen = true;
  59. }
  60. // Pas de rest van de lijst aan
  61. correctList(Math.Max(randomIndex - 1, 0), schema.dagen[q].SchemaPerWagen[p%2], a);
  62.  
  63. // Return nieuwe schema
  64. return schema;
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement