Advertisement
Guest User

Untitled

a guest
Jul 28th, 2016
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.48 KB | None | 0 0
  1. private void button1_Click(object sender, EventArgs e)
  2. {
  3. Knapsack();
  4. }
  5. private void Knapsack()
  6. {
  7. List<Plecak> descendingKanps = _plecakList.OrderByDescending(o => o.W).ToList();
  8. List<Produkt> descendingProducts = _produktList.OrderByDescending(o => o.cena).ToList();
  9. int N = descendingProducts.Count;
  10. double maxVal = 0;
  11. List<Produkt> addedProducts = new List<Produkt>();
  12. foreach (Plecak p in descendingKanps)
  13. {
  14.  
  15. double[,] V = new double[N + 1, (int)p.W + 1];
  16. for (int c = 0; c <= p.W; c++)
  17. {
  18. V[0, c] = 0;
  19. }
  20. for (int r = 0; r <= N; r++)
  21. {
  22. V[r, 0] = 0;
  23. }
  24. for (int pos = N - 1; pos >= 0; pos--)
  25. {
  26.  
  27. for (int i = 1; i <= N; i++)
  28. {
  29. for (int wt = 1; wt <= p.W; wt++)
  30. {
  31.  
  32. if (descendingProducts[i - 1].waga < wt + 1)
  33. {
  34. V[i, wt] = Math.Max(descendingProducts[i - 1].cena + V[i - 1, wt - descendingProducts[i - 1].waga], V[i - 1, wt]);
  35. }
  36. else
  37. V[i, wt] = V[i - 1, wt];
  38.  
  39.  
  40. maxVal = V[i, wt];
  41. }
  42.  
  43. }
  44.  
  45. }
  46. summary.Items.Add("maximum val for knapsack: " + p.nazwa + " is: " + maxVal);
  47. }
  48.  
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement