Advertisement
Guest User

Untitled

a guest
Feb 20th, 2020
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.99 KB | None | 0 0
  1. set ITEMS;
  2. set BIDDERS;
  3. set POSITIVE_HYPEREDGES;
  4. set NEGATIVE_HYPEREDGES;
  5.  
  6. param positive_valuation{b in BIDDERS, e in POSITIVE_HYPEREDGES};
  7. param negative_valuation{b in BIDDERS, e in NEGATIVE_HYPEREDGES};
  8. param occurs_in_positive{i in ITEMS, e in POSITIVE_HYPEREDGES};
  9. param occurs_in_negative{i in ITEMS, e in NEGATIVE_HYPEREDGES};
  10. param num_items;
  11.  
  12. var assigned{b in BIDDERS, i in ITEMS}, binary;
  13. var positive_applies{b in BIDDERS, e in POSITIVE_HYPEREDGES}, binary;
  14. var negative_applies{b in BIDDERS, e in NEGATIVE_HYPEREDGES}, binary;
  15.  
  16. maximize efficiency: sum{b in BIDDERS, e in POSITIVE_HYPEREDGES} positive_valuation[b,e] - sum{b in BIDDERS, e in NEGATIVE_HYPEREDGES} negative_valuation[b,e];
  17.  
  18. s.t. assign_once{i in ITEMS}: sum{b in BIDDERS} assigned[b,i] <= 1;
  19. s.t. positive_constraint{b in BIDDERS, e in POSITIVE_HYPEREDGES}: num_items * positive_applies[b,e] + sum{i in ITEMS} occurs_in_positive[i,e] - sum{i in ITEMS} occurs_in_positive[i,e] * assigned[b,i] <= num_items;
  20. s.t. negative_constraint{b in BIDDERS, e in NEGATIVE_HYPEREDGES}: num_items * negative_applies[b,e] + sum{i in ITEMS} occurs_in_negative[i,e] - sum{i in ITEMS} occurs_in_negative[i,e] * assigned[b,i] <= num_items;
  21.  
  22. data;
  23.  
  24. set ITEMS := i_1 i_2 i_3 i_4 i_5;
  25. set BIDDERS := b_1 b_2 b_3;
  26. set POSITIVE_HYPEREDGES := p_1 p_2 p_3 p_4 p_5 p_6 p_7;
  27. set NEGATIVE_HYPEREDGES := n_1 n_2;
  28.  
  29. param positive_valuation:
  30. p_1 p_2 p_3 p_4 p_5 p_6 p_7 :=
  31. b_1 2 1 2 1 2 3 2
  32. b_2 2 1 3 3 2 1 1
  33. b_3 1 3 1 1 2 1 0;
  34.  
  35. param negative_valuation:
  36. n_1 n_2 :=
  37. b_1 2 2
  38. b_2 1 1
  39. b_3 3 1;
  40.  
  41. param occurs_in_positive:
  42. p_1 p_2 p_3 p_4 p_5 p_6 p_7 :=
  43. i_1 1 0 0 0 0 1 0
  44. i_2 0 1 0 0 0 0 1
  45. i_3 0 0 1 0 0 0 0
  46. i_4 0 0 0 1 0 0 1
  47. i_5 0 0 0 0 1 1 0;
  48.  
  49. param occurs_in_negative:
  50. n_1 n_2 :=
  51. i_1 0 1
  52. i_2 0 0
  53. i_3 1 1
  54. i_4 1 0
  55. i_5 0 1;
  56.  
  57. param num_items := 5;
  58.  
  59. end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement